name: CI on: push: branches: [main, master] pull_request: branches: [main, master] jobs: test: name: Test runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Go uses: actions/setup-go@v5 with: go-version: '1.25' - name: Run tests with race detector run: go test -race ./... vet: name: Vet runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Go uses: actions/setup-go@v5 with: go-version: '1.25' - name: Run go vet run: go vet ./... build: name: Build runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Go uses: actions/setup-go@v5 with: go-version: '1.25' - name: Build static binary run: CGO_ENABLED=0 go build -o gateway ./cmd/gateway - name: Upload binary uses: actions/upload-artifact@v4 with: name: gateway path: gateway retention-days: 1 govulncheck: name: Security (govulncheck) runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Set up Go uses: actions/setup-go@v5 with: go-version: '1.25' - name: Run govulncheck run: go install golang.org/x/vuln/cmd/govulncheck@latest && govulncheck ./... continue-on-error: true