🔧 #220 Instrument API server (#255) #693
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: lint | |
on: | |
workflow_call: | |
push: | |
branches: | |
- "main" | |
- "develop" | |
pull_request: | |
branches: | |
- "main" | |
- "develop" | |
jobs: | |
lint: | |
name: Lint | |
runs-on: ubuntu-latest | |
timeout-minutes: 10 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Go | |
uses: actions/setup-go@v4 | |
with: | |
go-version: "1.22" | |
check-latest: true | |
- name: Install | |
run: go install mvdan.cc/gofumpt@latest | |
- name: Go Format | |
run: gofmt -s -w . && git diff --exit-code | |
- name: Gofumpt | |
run: gofumpt -l -w . && git diff --exit-code | |
- name: Go Vet | |
run: go vet ./... | |
- name: Go Tidy | |
run: go mod tidy && git diff --exit-code | |
- name: Go Mod | |
run: go mod download | |
- name: Go Mod Verify | |
run: go mod verify | |
build: | |
name: Build | |
runs-on: ubuntu-latest | |
timeout-minutes: 10 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Go | |
uses: actions/setup-go@v4 | |
with: | |
go-version: "1.22" | |
check-latest: true | |
- name: Build | |
run: go build -v ./... | |
static-checks: | |
name: Static Checks | |
runs-on: ubuntu-latest | |
timeout-minutes: 10 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Go | |
uses: actions/setup-go@v4 | |
with: | |
go-version: "1.22" | |
check-latest: true | |
- name: Install nilaway | |
run: go install go.uber.org/nilaway/cmd/nilaway@latest | |
- name: GolangCILint | |
uses: golangci/golangci-lint-action@v3.4.0 | |
with: | |
version: latest | |
args: --timeout 5m | |
# TODO: Ignore the issue in https://github.com/modelgateway/Glide/issues/32 | |
# - name: Nilaway | |
# run: nilaway ./... | |
tests: | |
name: Tests | |
runs-on: ubuntu-latest | |
timeout-minutes: 10 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Go | |
uses: actions/setup-go@v4 | |
with: | |
go-version: "1.22" | |
check-latest: true | |
- name: Test | |
run: go test -v -count=1 -race -shuffle=on -coverprofile=coverage.txt ./... | |
- name: Test | |
run: make test | |
- name: Upload Coverage | |
uses: codecov/codecov-action@v3 | |
continue-on-error: true # we don't care if it fails | |
with: | |
token: ${{secrets.CODECOV_TOKEN}} # set in repository settings | |
file: ./coverage.txt # file from the previous step | |
fail_ci_if_error: false | |
api-docs: | |
name: OpenAPI Specs | |
runs-on: ubuntu-latest | |
timeout-minutes: 10 | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Go | |
uses: actions/setup-go@v4 | |
with: | |
go-version: "1.22" | |
check-latest: true | |
- name: Generate OpenAPI Schema | |
run: make docs-api && git diff --exit-code |