2023-12-05 20:51:15 +00:00
|
|
|
name: Run go tests
|
|
|
|
on:
|
2023-12-06 22:33:34 +00:00
|
|
|
push:
|
|
|
|
paths:
|
|
|
|
- '**.go'
|
|
|
|
pull_request:
|
|
|
|
paths:
|
|
|
|
- '**.go'
|
2023-12-05 20:51:15 +00:00
|
|
|
|
|
|
|
env:
|
|
|
|
GOPATH: /go_path
|
|
|
|
GOCACHE: /go_cache
|
|
|
|
|
|
|
|
jobs:
|
|
|
|
test:
|
|
|
|
runs-on: ubuntu-latest
|
|
|
|
timeout-minutes: 5
|
|
|
|
env:
|
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v4
|
|
|
|
|
|
|
|
- name: Set up Go
|
|
|
|
uses: https://github.com/actions/setup-go@v4
|
|
|
|
with:
|
|
|
|
go-version: 1.21
|
|
|
|
use-latest: true
|
|
|
|
|
|
|
|
- name: Hash go.mod and go.sum
|
|
|
|
uses: https://gitea.com/actions/go-hashfiles@v0.0.1
|
|
|
|
id: hash-go
|
|
|
|
with:
|
|
|
|
patterns: |
|
|
|
|
go.mod
|
|
|
|
go.sum
|
|
|
|
|
|
|
|
- name: Cache go
|
|
|
|
uses: actions/cache@v3
|
2023-12-05 21:41:57 +00:00
|
|
|
id: cache-go
|
|
|
|
with:
|
|
|
|
path: |
|
|
|
|
/go_path
|
|
|
|
/go_cache
|
|
|
|
key: cache-go-${{ steps.hash-go.outputs.hash }}
|
2023-12-05 20:51:15 +00:00
|
|
|
|
|
|
|
- name: Go mod download
|
|
|
|
run: go mod download
|
|
|
|
|
|
|
|
- name: Go mod verify
|
|
|
|
run: go mod verify
|
|
|
|
|
|
|
|
- name: Go mod tidy
|
|
|
|
run: go mod tidy && git diff --exit-code
|
|
|
|
|
|
|
|
- name: Check gofmt
|
|
|
|
run: gofmt -s -w . && git diff --exit-code
|
|
|
|
|
|
|
|
- name: Check go vet
|
|
|
|
run: go vet ./...
|
|
|
|
|
|
|
|
- name: Build
|
|
|
|
run: go build -v ./...
|
|
|
|
|
|
|
|
- name: Test
|
2023-12-05 21:11:09 +00:00
|
|
|
run: go test -cover -coverprofile=/tmp/cov.out -v ./...
|
|
|
|
|
|
|
|
- name: Make coverage report
|
|
|
|
run: go tool cover -html=/tmp/cov.out -o /tmp/cov.html
|
|
|
|
|
|
|
|
- name: Publish coverage report
|
|
|
|
uses: actions/upload-artifact@v3
|
|
|
|
with:
|
|
|
|
name: coverage-report
|
|
|
|
path: /tmp/cov.html
|
|
|
|
|