name: go on: push: branches: - main pull_request: jobs: build: strategy: matrix: goos: [darwin, linux, windows] goarch: [amd64, arm64] name: build ${{ matrix.goos }}/${{ matrix.goarch }} runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v7 - uses: actions/setup-go@v7 with: go-version: '1.26.5' - run: go build ./... env: CGO_ENABLED: "0" GOOS: ${{ matrix.goos }} GOARCH: ${{ matrix.goarch }} test: runs-on: ubuntu-24.04 steps: - uses: actions/checkout@v7 - uses: actions/setup-go@v7 with: go-version: '1.26.5' - name: install gotestsum run: go install gotest.tools/gotestsum@latest - name: install sqlc-gen-test run: go install github.com/sqlc-dev/sqlc-gen-test@v0.1.0 - name: install test-json-process-plugin run: go install ./scripts/test-json-process-plugin/ - name: install ./... run: go install ./... env: CGO_ENABLED: "0" - name: build internal/endtoend run: go build ./... working-directory: internal/endtoend/testdata env: CGO_ENABLED: "0" - name: install databases run: go run ./cmd/sqlc-test-setup install - name: start databases run: go run ./cmd/sqlc-test-setup start - name: test ./... run: gotestsum --junitfile junit.xml -- --tags=examples -timeout 20m -failfast ./... env: CI_SQLC_PROJECT_ID: ${{ secrets.CI_SQLC_PROJECT_ID }} CI_SQLC_AUTH_TOKEN: ${{ secrets.CI_SQLC_AUTH_TOKEN }} SQLC_AUTH_TOKEN: ${{ secrets.CI_SQLC_AUTH_TOKEN }} POSTGRESQL_SERVER_URI: "postgres://postgres:postgres@127.0.0.1:5432/postgres?sslmode=disable" MYSQL_SERVER_URI: "root:mysecretpassword@tcp(127.0.0.1:3306)/mysql?multiStatements=true&parseTime=true" CGO_ENABLED: "0" vuln_check: runs-on: ubuntu-24.04 timeout-minutes: 5 steps: - uses: golang/govulncheck-action@v1