1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Goをやるなら知らないとやばい‼︎ golangci-lintとGitHubActionsの導入方法

Last updated at Posted at 2024-11-29

golangci-lintとは

Goのコードを静的解析ツールです。

導入方法(Mac)

Macが前提で話していきます。以下のコマンドで最新版をインストールできます。

 go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest

バージョン確認

バージョンの設定ができれば、以下のコマンドで確認してください。

$ golangci-lint --version
golangci-lint has version v1.62.2 built with go1.23.1 from (unknown, modified: ?, mod sum: "h1:b8K5K9PN+rZN1+mKLtsZHz2XXS9aYKzQ9i25x3Qnxxw=") on (unknown)

起動方法

以下のコマンドで起動します。

golangci-lint run

main.goなどでこのような設定にしている場合は違うコマンドです。

main.go
r.Run("localhost:8080")

この場合だと以下のコマンドです。

golangci-lint

lint.yml

以下のコードを実装します。

lint.yml
linters:
  enable:
    - gocyclo  # サイクロマチック複雑度のチェック
    - govet    # 標準的なGoのバグチェック
    - errcheck # エラーハンドリングの確認
    - unused   # 未使用コードのチェック
    - revive   # 他のスタイルガイドに基づいたリント
  disable:
    - dupl
    - goimports
    - golint

run:
  timeout: 2m # タイムアウトを設定 (2分)

issues:
  exclude-rules:
    - text: "error strings should not be capitalized"
      linters:
        - revive

golangci.yml

ciのファイルを作成します。

.github/workflows/lint.yml
name: Lint

on: [push, pull_request]

jobs:
  lint:
    runs-on: ubuntu-latest
    steps:
      # ソースコードをチェックアウト
      - name: Checkout code
        uses: actions/checkout@v2

      # Goのセットアップ
      - name: Set up Go
        uses: actions/setup-go@v2
        with:
          go-version: 1.19  # 使用しているGoのバージョンを指定

      # golangci-lintのインストール
      - name: Install golangci-lint
        run: |
          curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh
          sudo mv ./bin/golangci-lint /usr/local/bin

      # インストールが成功したことを確認(バージョン確認)
      - name: Verify golangci-lint installation
        run: golangci-lint --version

      # golangci-lintの実行
      - name: Run golangci-lint
        run: golangci-lint

これで動作確認ができればlinterとCIの設定をGOでできます。

スクリーンショット 2024-11-30 0 22 45 スクリーンショット 2024-11-30 0 31 12

参考資料

ChatGPT

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?