Go codegen for ClickHouse, DuckDB, Spanner and SQL Server under database/sql #6685
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 | |
| services: | |
| clickhouse: | |
| image: clickhouse/clickhouse-server:25.8 | |
| ports: | |
| - 9000:9000 | |
| - 8123:8123 | |
| env: | |
| # A password opens the default user to connections from beyond | |
| # the container; without one the image restricts it to localhost. | |
| CLICKHOUSE_PASSWORD: "mysecretpassword" | |
| mssql: | |
| image: mcr.microsoft.com/mssql/server:2025-latest | |
| ports: | |
| - 1433:1433 | |
| env: | |
| ACCEPT_EULA: "Y" | |
| MSSQL_SA_PASSWORD: "Mysecretpassword1!" | |
| 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" | |
| # The DuckDB driver the generated code imports is cgo, so this build | |
| # keeps cgo on. | |
| - name: build internal/endtoend | |
| run: go build ./... | |
| working-directory: internal/endtoend/testdata | |
| - 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" | |
| CLICKHOUSE_SERVER_URI: "clickhouse://default:mysecretpassword@127.0.0.1:9000" | |
| MSSQL_SERVER_URI: "sqlserver://sa:Mysecretpassword1!@127.0.0.1:1433?encrypt=disable" | |
| CGO_ENABLED: "0" | |
| # The DuckDB example is its own module: its driver is cgo, which the | |
| # main module's builds keep off. | |
| - name: test examples/duckdb | |
| run: go test --tags=examples ./... | |
| working-directory: examples/duckdb | |
| vuln_check: | |
| runs-on: ubuntu-24.04 | |
| timeout-minutes: 5 | |
| steps: | |
| - uses: golang/govulncheck-action@v1 |