golangci-lint
1. golangci-lintとは
- Goのlinterツールをオールインパッケージにしたもの
- 復数のlinterを搭載しているので、golangci-lint一つをinstallするだけでそれら全てのlinterを利用可能になる
2. インストール
- curlやwgetでインストールスクリプトをダウンロードしてくるタイプ
# binary will be $(go env GOPATH)/bin/golangci-lint curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.55.2 ># or install it into ./bin/ curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s v1.55.2 # In alpine linux (as it does not come with curl by default) wget -O- -nv https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s v1.55.2 golangci-lint --version
-
golangci-lint
は公式サイトからバイナリをDLすることを強く推奨している
IMPORTANT: It's highly recommended installing a specific version of golangci-lint available on the releases page.
- 手元でビルドするとライブラリや処理系の差異で公式が配布しているバイナリと挙動に差が出る可能性があるためとのこと(必ず発生するわけではなく、あくまでも可能性)
3. 使い方
- 基本的な使い方
golangci-lint run
- ディレクトリやファイルを指定して実行することも可能
golangci-lint run dir1 dir2/... dir3/file1.go
-
--fix
オプションを付けるとAuto Fixに対応したlinterの警告は自動的に修正してくれる
golangci-lint run --fix
- 特定のlinterのみ実行
golangci-lint run --dissable-all -E errorcheck
4. 設定ファイル
- 以下のファイル名(とフォーマット)が有効になる
.golangci.yml
.golangci.yaml
.golangci.toml
.golangci.json
- Linter毎の設定値は↓のページで確認できる
- Linters | golangci-lint
5. 開発ツールとの統合
VS Code
- WIP
各種CIツール
- WIP
参考資料
Appendix-1 その他雑多な情報
golangci-lintに含まれるlinter
- ↓のページでgolangci-lintに含まれるlinterを確認できる
- https://golangci-lint.run/usage/linters/