59 lines
1.4 KiB
YAML
59 lines
1.4 KiB
YAML
name: Test
|
|
|
|
on: [push, pull_request]
|
|
|
|
env:
|
|
GO_VERSION: 1.18.1
|
|
|
|
jobs:
|
|
|
|
format:
|
|
name: Format (gofmt)
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@main
|
|
- uses: actions/setup-go@main
|
|
with:
|
|
go-version: '${{ env.GO_VERSION }}'
|
|
- name: Run gofmt
|
|
run: test -z $(gofmt -l .) || (gofmt -d . && exit 1)
|
|
|
|
lint:
|
|
name: Lint (golangci-lint)
|
|
runs-on: ubuntu-latest
|
|
needs: [format]
|
|
steps:
|
|
- uses: actions/checkout@main
|
|
- uses: actions/setup-go@main
|
|
with:
|
|
go-version: '${{ env.GO_VERSION }}'
|
|
- name: Run golangci-lint
|
|
run: |
|
|
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.45.2
|
|
golangci-lint run -v ./...
|
|
|
|
test:
|
|
name: Test (go test)
|
|
runs-on: ubuntu-latest
|
|
needs: [lint]
|
|
steps:
|
|
- uses: actions/checkout@main
|
|
- uses: actions/setup-go@main
|
|
with:
|
|
go-version: '${{ env.GO_VERSION }}'
|
|
- name: Run go test
|
|
run: go test -race ./...
|
|
|
|
build-cli:
|
|
name: Build CLI (go build)
|
|
runs-on: ubuntu-latest
|
|
needs: [lint]
|
|
steps:
|
|
- uses: actions/checkout@main
|
|
- uses: actions/setup-go@main
|
|
with:
|
|
go-version: '${{ env.GO_VERSION }}'
|
|
- name: Run go build
|
|
run: |
|
|
go build ./cli/battlesnake
|
|
./battlesnake --help
|