@@ -104,3 +104,89 @@ jobs:
104104 path : internal/engine/sqlite/dialect
105105 - name : Fail if the committed dialect differs
106106 run : git add -N internal/engine/sqlite && git diff --exit-code --stat -- internal/engine/sqlite
107+
108+ mssql :
109+ name : generate mssql dialect
110+ runs-on : ubuntu-24.04
111+ services :
112+ mssql :
113+ image : mcr.microsoft.com/mssql/server:2025-latest
114+ env :
115+ ACCEPT_EULA : Y
116+ MSSQL_SA_PASSWORD : Mysecretpassword1!
117+ ports :
118+ - 1433:1433
119+ options : --health-cmd "/opt/mssql-tools18/bin/sqlcmd -C -S localhost -U sa -P 'Mysecretpassword1!' -Q 'SELECT 1'" --health-interval 10s --health-timeout 5s --health-retries 10
120+ steps :
121+ - uses : actions/checkout@v7
122+ - uses : actions/setup-go@v7
123+ with :
124+ go-version-file : internal/goldeneye/go.mod
125+ check-latest : true
126+ - run : go run ./cmd/goldeneye generate mssql
127+ working-directory : internal/goldeneye
128+ env :
129+ MSSQL_SERVER_URI : sqlserver://sa:Mysecretpassword1!@localhost:${{ job.services.mssql.ports['1433'] }}?encrypt=disable
130+ - name : Save results
131+ uses : actions/upload-artifact@v7
132+ with :
133+ name : dialect-mssql
134+ path : internal/engine/mssql/dialect
135+ - name : Fail if the committed dialect differs
136+ run : git add -N internal/engine/mssql && git diff --exit-code --stat -- internal/engine/mssql
137+
138+ spanner :
139+ name : generate googlesql dialect
140+ runs-on : ubuntu-24.04
141+ steps :
142+ - uses : actions/checkout@v7
143+ - uses : actions/setup-go@v7
144+ with :
145+ go-version-file : internal/goldeneye/go.mod
146+ check-latest : true
147+ # Spanner Omni is run the way its quickstart runs it, on the host
148+ # network, since a service container cannot be given a command.
149+ - name : Start Spanner Omni
150+ run : |
151+ docker run -d --name spanneromni --network host us-docker.pkg.dev/spanner-omni/images/spanner-omni:2026.r2.1-beta start-single-server
152+ for i in $(seq 1 60); do
153+ if docker exec spanneromni /google/spanner/bin/spanner databases list >/dev/null 2>&1; then exit 0; fi
154+ sleep 5
155+ done
156+ docker logs spanneromni
157+ exit 1
158+ - run : go run ./cmd/goldeneye generate spanner
159+ working-directory : internal/goldeneye
160+ env :
161+ SPANNER_SERVER_URI : localhost:15000
162+ - name : Save results
163+ uses : actions/upload-artifact@v7
164+ with :
165+ name : dialect-googlesql
166+ path : internal/engine/googlesql/dialect
167+ - name : Fail if the committed dialect differs
168+ run : git add -N internal/engine/googlesql && git diff --exit-code --stat -- internal/engine/googlesql
169+
170+ duckdb :
171+ name : generate duckdb dialect
172+ runs-on : ubuntu-24.04
173+ steps :
174+ - uses : actions/checkout@v7
175+ - uses : actions/setup-go@v7
176+ with :
177+ go-version-file : internal/goldeneye/go.mod
178+ check-latest : true
179+ # The current build of DuckDB's v2.0 preview channel, until 2.0 is
180+ # released: a later build than the dialect was generated from shows up
181+ # as a difference.
182+ - run : go run ./cmd/goldeneye install duckdb
183+ working-directory : internal/goldeneye
184+ - run : go run ./cmd/goldeneye generate duckdb
185+ working-directory : internal/goldeneye
186+ - name : Save results
187+ uses : actions/upload-artifact@v7
188+ with :
189+ name : dialect-duckdb
190+ path : internal/engine/duckdb/dialect
191+ - name : Fail if the committed dialect differs
192+ run : git add -N internal/engine/duckdb && git diff --exit-code --stat -- internal/engine/duckdb
0 commit comments