name: Tests ยท Go # Fast unit tests for the Go side of the monorepo. Runs on every push and pull # request whose path filter matches a Go source directory. The module list # grows as new go.work modules (gateway, pkg/*, platform/*) are added by later # stages. on: push: paths: - 'backend/**' - 'go.work' - 'go.work.sum' - '.gitea/workflows/go-unit.yaml' - '!**/*.md' pull_request: paths: - 'backend/**' - 'go.work' - 'go.work.sum' - '.gitea/workflows/go-unit.yaml' - '!**/*.md' jobs: test: runs-on: ubuntu-latest defaults: run: shell: bash steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Go uses: actions/setup-go@v5 with: go-version-file: go.work cache: true - name: gofmt run: | unformatted="$(gofmt -l .)" if [ -n "$unformatted" ]; then echo "gofmt needed on:"; echo "$unformatted"; exit 1 fi - name: vet run: go vet ./backend/... - name: build run: go build ./backend/... - name: test # -count=1 disables the test cache so a green run never depends on a # previous runner's cached state. run: go test -count=1 ./backend/...