Merge pull request #259 from PDOK/PDOK/fix_keyword_breaks #663
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: test (go) | |
on: | |
push: | |
branches: | |
- master | |
pull_request: | |
permissions: | |
contents: write | |
jobs: | |
test: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Setup cgo dependencies | |
run: sudo apt-get update && sudo apt-get install libcurl4-openssl-dev libssl-dev libsqlite3-mod-spatialite | |
- name: Set up Go | |
uses: actions/setup-go@v4 | |
with: | |
go-version: '1.23' | |
- name: Download | |
run: go mod download all | |
- name: Generate (fail when generated code is not committed) | |
run: go generate -v ./... && git diff --exit-code ':!go.sum' | |
- name: Build | |
run: go build -v ./... | |
- name: Unit Test | |
uses: nick-fields/retry@v3 | |
with: | |
timeout_minutes: 5 | |
max_attempts: 2 | |
retry_on: error | |
command: | | |
go test -v -shuffle=on -coverpkg "$(go list || go list -m | head -1)/..." -coverprofile cover.out.tmp ./... | |
# remove generate code from coverage results | |
grep -v "zz_generated" cover.out.tmp > cover.out | |
- name: Test generating example CRD | |
run: hack/generate-crd.sh | |
# we don't (yet) fail on benchmark results, these are just to make sure | |
# the benchmarks keep working | |
- name: Benchmark | |
run: go test -v ./... -bench=. -run=^# -benchmem -count=1 | |
- name: Fail when coverage below threshold | |
uses: vladopajic/go-test-coverage@v2 | |
with: | |
profile: cover.out | |
local-prefix: github.com/PDOK/gokoala | |
threshold-total: 80 # 80% overall coverage is the minimum | |
- name: Update coverage report | |
uses: ncruces/go-coverage-report@v0 | |
with: | |
coverage-file: cover.out | |
report: true | |
chart: false | |
amend: false | |
reuse-go: true | |
if: | | |
github.event_name == 'push' | |
continue-on-error: false |