name: CI on: push: pull_request: permissions: contents: read jobs: verify: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v6 - name: Set up Go uses: actions/setup-go@v6 with: go-version: "1.26.5" cache: true cache-dependency-path: go.sum - name: Verify formatting run: | files="$(gofmt -l .)" test -z "$files" || { printf '%s\n' "$files"; exit 1; } - name: Test run: go test ./... - name: Vet run: go vet ./... - name: Build run: go build ./... - name: Build Linux binary run: CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o /tmp/micrach-linux-amd64 . - name: Install govulncheck run: go install golang.org/x/vuln/cmd/govulncheck@v1.6.0 - name: Scan reachable vulnerabilities run: govulncheck ./... - name: Build container image run: docker build --tag micrach:ci .