diff --git a/.github/workflows/static-analysis.yml b/.github/workflows/static-analysis.yml new file mode 100644 index 000000000..a9a68ac6b --- /dev/null +++ b/.github/workflows/static-analysis.yml @@ -0,0 +1,108 @@ +name: static-analysis + +on: + push: + branches: + - main + pull_request: + branches: + - '*' + +jobs: + gofmt: + runs-on: ubuntu-latest + steps: + - name: Set up Go + uses: actions/setup-go@v3 + with: + go-version: 1.19 + - name: Check out code + uses: actions/checkout@v3 + - name: Run gofmt (goimports) + run: go run golang.org/x/tools/cmd/goimports -d --format-only . + - 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: Set up Go + uses: actions/setup-go@v3 + with: + go-version: 1.19 + - name: Check out code + uses: actions/checkout@v3 + - 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: Set up Go + uses: actions/setup-go@v3 + with: + go-version: 1.19 + + - name: Check out code + uses: actions/checkout@v3 + + - 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' diff --git a/.github/workflows/staticcheck.yml b/.github/workflows/staticcheck.yml deleted file mode 100644 index a171da488..000000000 --- a/.github/workflows/staticcheck.yml +++ /dev/null @@ -1,73 +0,0 @@ -name: staticcheck - -on: - push: - branches: - - main - pull_request: - branches: - - '*' - -jobs: - build: - runs-on: ubuntu-latest - - steps: - - name: Set up Go - uses: actions/setup-go@v3 - with: - go-version: 1.19 - - - name: Check out code - uses: actions/checkout@v3 - - - name: Run gofmt (goimports) - run: go run golang.org/x/tools/cmd/goimports -d --format-only . - - - name: Run go vet - run: go vet ./... - - - 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 (linux/amd64) - env: - GOOS: linux - GOARCH: amd64 - run: "staticcheck -- $(go list ./... | grep -v tempfork)" - - - name: Run staticcheck (darwin/amd64) - env: - GOOS: darwin - GOARCH: amd64 - run: "staticcheck -- $(go list ./... | grep -v tempfork)" - - - name: Run staticcheck (windows/amd64) - env: - GOOS: windows - GOARCH: amd64 - run: "staticcheck -- $(go list ./... | grep -v tempfork)" - - - name: Run staticcheck (windows/386) - env: - GOOS: windows - GOARCH: "386" - 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'