build -> test -> lintをするためのgo用のテンプレートyaml
lintは以下を使ってます。
jobs: setup: runs-on: ubuntu-latest steps: - name: set up uses: actions/setup-go@v2 with: go-version: ^1.13 id: go - name: check out uses: actions/checkout@v2 - name: Cache uses: actions/cache@v2.1.0 with: path: ~/go/pkg/mod key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} restore-keys: | ${{ runner.os }}-go- build: needs: setup runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: build run: go build ./... test: needs: setup runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: test run: go test ./... -v lint: needs: setup runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: golangci-lint uses: golangci/golangci-lint-action@v1 with: version: v1.31
よく見るサンプルだとクロスコンパイルとか入っていて公開用ライブラリだと便利そうって思いもあるけどそもそもそんなにマルチアーキテクチャで動かすことがないので個人的にはこれくらいシンプルで良いかなって感じで使ってます。(タグ付でリリースジョブ定義も同じ理由でやってない)
- buildできる
- lintを通す
- testを通す
ぐらいが出来れば良い個人プロジェクトならこれで十分。