2020-08-29 10:51:46 +02:00

84 lines
2.6 KiB
YAML

name: golang/static
on: pull_request
jobs:
build:
name: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-go@v2
- run: go mod download
- run: go build -v .
vet:
name: vet
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-go@v2
- run: go mod download
- run: go vet ./...
shadow:
name: shadow
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-go@v2
- run: go get -v golang.org/x/tools/go/analysis/passes/shadow/cmd/shadow
- run: go mod download
- run: go vet -vettool=$HOME/go/bin/shadow ./...
imports:
name: imports
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-go@v2
- run: go get -v golang.org/x/tools/cmd/goimports
- run: d="$($HOME/go/bin/goimports -d ./)" && if [ -n "$d" ]; then echo "goimports generated output:" ; echo "$d"; exit 1; fi
staticcheck:
name: staticheck
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-go@v2
- run: go install honnef.co/go/tools/cmd/staticcheck
- run: $HOME/go/bin/staticcheck ./...
lint:
name: lint
runs-on: ubuntu-latest
steps:
- uses: actions/setup-go@v2
- uses: actions/checkout@v2
- run: go get -v golang.org/x/lint/golint
- run: set +e ; d="$($HOME/go/bin/golint -min_confidence 1 ./... | grep -v comment)" ; if [ -z "$d" ]; then exit 0 ; else echo "golint check output:" ; echo "$d" ; exit 1 ; fi ; set -e
exportloopref:
name: exportloopref
runs-on: ubuntu-latest
steps:
- uses: actions/setup-go@v2
- uses: actions/checkout@v2
- run: go get -v github.com/kyoh86/exportloopref/cmd/exportloopref
- run: $HOME/go/bin/exportloopref ./...
exhaustive:
name: exhaustive
runs-on: ubuntu-latest
steps:
- uses: actions/setup-go@v2
- uses: actions/checkout@v2
- run: go get -v github.com/nishanths/exhaustive/...
- run: $HOME/go/bin/exhaustive -default-signifies-exhaustive ./...
cyclo:
name: cyclo
runs-on: ubuntu-latest
steps:
- uses: actions/setup-go@v2
- uses: actions/checkout@v2
- run: go get -v github.com/fzipp/gocyclo
- run: $HOME/go/bin/gocyclo -over 19 $(find . -iname '*.go' -type f)
fmt:
name: fmt
runs-on: ubuntu-latest
steps:
- uses: actions/setup-go@v2
- uses: actions/checkout@v2
- run: test -z $(gofmt -s -l $(find . -iname '*.go' -type f))