mirror of
https://github.com/marcusDenslow/terminalShop.git
synced 2026-10-25 10:02:21 +01:00
* chore(test): add gotestsum + tparse runner with ci wiring * chore(tests): change the tests around a little
66 lines
1.5 KiB
YAML
66 lines
1.5 KiB
YAML
name: CI
|
|
|
|
on:
|
|
pull_request:
|
|
branches: [master]
|
|
|
|
jobs:
|
|
check:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
|
|
- uses: actions/setup-go@v6
|
|
with:
|
|
go-version-file: go.mod
|
|
|
|
- name: Build
|
|
run: go build ./...
|
|
|
|
- name: Vet
|
|
run: go vet ./...
|
|
|
|
- name: Format check
|
|
run: |
|
|
unformatted=$(gofmt -l $(go list -f '{{.Dir}}' ./...))
|
|
if [ -n "$unformatted" ]; then
|
|
echo "These files need gofmt:"
|
|
echo "$unformatted"
|
|
exit 1
|
|
fi
|
|
|
|
- name: Lint
|
|
if: ${{ !env.ACT }}
|
|
uses: golangci/golangci-lint-action@v7
|
|
with:
|
|
version: v2.4.0
|
|
|
|
- name: Install tparse
|
|
run: go install github.com/mfridman/tparse@v0.18.0
|
|
|
|
- name: Test (race detector)
|
|
run: |
|
|
set +e
|
|
go tool gotestsum \
|
|
--format pkgname \
|
|
--format-icons hivis \
|
|
--hide-summary=skipped,output,errors,failed \
|
|
--jsonfile test-output.json \
|
|
--junitfile test-report.xml \
|
|
--packages="./..." \
|
|
-- -count=1 -race -covermode=atomic -coverprofile=coverage.out
|
|
rc=$?
|
|
echo
|
|
tparse -all -notests -slow 10 -file=test-output.json || true
|
|
exit $rc
|
|
|
|
- name: Upload test report
|
|
if: always()
|
|
uses: actions/upload-artifact@v4
|
|
with:
|
|
name: test-report
|
|
path: |
|
|
test-output.json
|
|
test-report.xml
|
|
coverage.out
|