name: Test on: push: branches: [development] pull_request: branches: [development] jobs: vet: runs-on: fedora steps: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: go-version: "1.26" - name: Download dependencies run: go mod download - name: gofmt # `gofmt -l` prints the names of unformatted files. An empty # output is the only acceptable result. run: | unformatted=$(gofmt -l cmd internal pkg) if [ -n "$unformatted" ]; then echo "The following files need gofmt:" echo "$unformatted" exit 1 fi - name: go vet run: go vet ./... test: runs-on: fedora needs: vet steps: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: go-version: "1.26" - name: Download dependencies run: go mod download - name: go test -race run: go test -race -count=1 ./... - name: go test ./examples run: go build ./examples/... build: runs-on: fedora needs: test steps: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: go-version: "1.26" - name: Download dependencies run: go mod download - name: Build run: go build -ldflags="-s -w" -o bin/nuntius ./cmd/server - name: Test run: go test ./... - name: Smoke test run: ./bin/nuntius --version