env: GO_VERSION: 1.19 on: workflow_dispatch: pull_request: types: [opened, reopened,ready_for_review,synchronize] push: branches: - main - master name: Check jobs: check: runs-on: ubuntu-latest steps: - name: Install Go uses: actions/setup-go@v2 with: go-version: ${{ env.GO_VERSION }} - name: Get StaticCheck run: go install honnef.co/go/tools/cmd/staticcheck@7586196b2bb05a248f1934d8087c759d05910e60 # Version 2022.1.2 (v0.3.2) - name: Checkout uses: actions/checkout@v2 with: submodules: recursive - name: Gomod run: | go mod tidy if [[ -n $(git ls-files --other --exclude-standard --directory -- go.sum) ]]; then echo "go.sum was added by go mod tidy" exit 1 fi git diff --exit-code -- go.sum go.mod - name: Gofmt if: ${{ success() || failure() }} # run this step even if the previous one failed run: | out=$(gofmt -s -l .) if [[ -n "$out" ]]; then echo $out | awk '{print "::error file=" $0 ",line=0,col=0::File is not gofmt-ed."}' exit 1 fi - name: Vet if: ${{ success() || failure() }} # run this step even if the previous one failed run: go vet ./... - name: StaticCheck if: ${{ success() || failure() }} # run this step even if the previous one failed run: staticcheck ./...