name: static-analysis on: push: branches: - main pull_request: branches: - '*' - 'release-branch/*' concurrency: group: ${{ github.workflow }}-$${{ github.head_ref || github.run_id }} cancel-in-progress: true jobs: gofmt: runs-on: ubuntu-latest steps: - name: Check out code uses: actions/checkout@v3 - name: Set up Go uses: actions/setup-go@v3 with: go-version-file: go.mod - name: Run gofmt (goimports) run: | OUT=$(go run golang.org/x/tools/cmd/goimports -d --format-only .) [ -z "$OUT" ] || (echo "Not gofmt'ed: $OUT" && exit 1) - uses: k0kubun/action-slack@v2.0.0 with: payload: | { "attachments": [{ "text": "${{ job.status }}: ${{ github.workflow }} " + "() " + "of ${{ github.repository }}@" + "${{ github.ref }}".split('/').reverse()[0] + " by ${{ github.event.head_commit.committer.name }}", "color": "danger" }] } env: SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} if: failure() && github.event_name == 'push' vet: runs-on: ubuntu-latest steps: - name: Check out code uses: actions/checkout@v3 - name: Set up Go uses: actions/setup-go@v3 with: go-version-file: go.mod - name: Run go vet run: go vet ./... - uses: k0kubun/action-slack@v2.0.0 with: payload: | { "attachments": [{ "text": "${{ job.status }}: ${{ github.workflow }} " + "() " + "of ${{ github.repository }}@" + "${{ github.ref }}".split('/').reverse()[0] + " by ${{ github.event.head_commit.committer.name }}", "color": "danger" }] } env: SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} if: failure() && github.event_name == 'push' staticcheck: runs-on: ubuntu-latest strategy: matrix: goos: [linux, windows, darwin] goarch: [amd64] include: - goos: windows goarch: 386 steps: - name: Check out code uses: actions/checkout@v3 - name: Set up Go uses: actions/setup-go@v3 with: go-version-file: go.mod - name: Install staticcheck run: "GOBIN=~/.local/bin go install honnef.co/go/tools/cmd/staticcheck" - name: Print staticcheck version run: "staticcheck -version" - name: "Run staticcheck (${{ matrix.goos }}/${{ matrix.goarch }})" env: GOOS: ${{ matrix.goos }} GOARCH: ${{ matrix.goarch }} run: "staticcheck -- $(go list ./... | grep -v tempfork)" - uses: k0kubun/action-slack@v2.0.0 with: payload: | { "attachments": [{ "text": "${{ job.status }}: ${{ github.workflow }} " + "() " + "of ${{ github.repository }}@" + "${{ github.ref }}".split('/').reverse()[0] + " by ${{ github.event.head_commit.committer.name }}", "color": "danger" }] } env: SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} if: failure() && github.event_name == 'push'