4242 matrix :
4343 # Current docker version + next LTS
4444 node-version : [20.x, 22.x]
45+ python-version : [3.11]
4546 fail-fast : false
4647
4748 steps :
6566 uses : actions/setup-node@v4
6667 with :
6768 node-version : ${{ matrix.node-version }}
69+ - name : Install Python
70+ uses : actions/setup-python@v5
71+ with :
72+ python-version : ${{ matrix.python-version }}
6873 - name : Get yarn cache directory path
6974 id : yarn-cache-dir-path
7075 run : echo "dir=$(yarn cache dir)" >> "$GITHUB_OUTPUT"
9297 run : yarn tsc
9398 - name : Build client
9499 run : yarn build
100+ - name : Build cubejs-backend-native (with Python)
101+ run : yarn run native:build-release-python
102+ working-directory : ./packages/cubejs-backend-native
103+ env :
104+ PYO3_PYTHON : python${{ matrix.python-version }}
105+
95106 - name : Lerna test
96107 run : yarn lerna run --concurrency 1 --stream --no-prefix unit
97108# - uses: codecov/codecov-action@v1
@@ -313,13 +324,19 @@ jobs:
313324 runs-on : ubuntu-20.04
314325 timeout-minutes : 60
315326 if : (needs['latest-tag-sha'].outputs.sha != github.sha)
327+ env :
328+ CLOUD_DATABASES : >
329+ firebolt
330+ dremio
331+ # Athena (just to check for secrets availability)
332+ DRIVERS_TESTS_ATHENA_CUBEJS_AWS_KEY : ${{ secrets.DRIVERS_TESTS_ATHENA_CUBEJS_AWS_KEY }}
316333
317334 strategy :
318335 matrix :
319336 node-version : [20.x]
320337 db : [
321338 ' clickhouse' , 'druid', 'elasticsearch', 'mssql', 'mysql', 'postgres', 'prestodb',
322- ' mysql-aurora-serverless' , 'crate', 'mongobi'
339+ ' mysql-aurora-serverless' , 'crate', 'mongobi', 'firebolt', 'dremio', 'vertica'
323340 ]
324341 fail-fast : false
325342
@@ -370,6 +387,21 @@ jobs:
370387 retry_wait_seconds : 15
371388 timeout_minutes : 30
372389 command : ./.github/actions/integration/${{ matrix.db }}.sh
390+ # It's enough to test for any one secret because they are set all at once or not set all
391+ if : |
392+ (contains(env.CLOUD_DATABASES, matrix.db) && env.DRIVERS_TESTS_ATHENA_CUBEJS_AWS_KEY != '') ||
393+ (!contains(env.CLOUD_DATABASES, matrix.db))
394+ env :
395+ # Firebolt Integration
396+ DRIVERS_TESTS_FIREBOLT_CUBEJS_FIREBOLT_ENGINE_NAME : ${{ secrets.DRIVERS_TESTS_FIREBOLT_CUBEJS_FIREBOLT_ENGINE_NAME }}
397+ DRIVERS_TESTS_FIREBOLT_CUBEJS_DB_NAME : ${{ secrets.DRIVERS_TESTS_FIREBOLT_CUBEJS_DB_NAME }}
398+ DRIVERS_TESTS_FIREBOLT_CUBEJS_FIREBOLT_ACCOUNT : ${{ secrets.DRIVERS_TESTS_FIREBOLT_CUBEJS_FIREBOLT_ACCOUNT }}
399+ DRIVERS_TESTS_FIREBOLT_CUBEJS_DB_USER : ${{ secrets.DRIVERS_TESTS_FIREBOLT_CUBEJS_DB_USER }}
400+ DRIVERS_TESTS_FIREBOLT_CUBEJS_DB_PASS : ${{ secrets.DRIVERS_TESTS_FIREBOLT_CUBEJS_DB_PASS }}
401+ # Dremio Integration
402+ DRIVERS_TESTS_DREMIO_CUBEJS_DB_URL : ${{ secrets.DRIVERS_TESTS_DREMIO_CUBEJS_DB_URL }}
403+ DRIVERS_TESTS_DREMIO_CUBEJS_DB_NAME : ${{ secrets.DRIVERS_TESTS_DREMIO_CUBEJS_DB_NAME }}
404+ DRIVERS_TESTS_DREMIO_CUBEJS_DB_DREMIO_AUTH_TOKEN : ${{ secrets.DRIVERS_TESTS_DREMIO_CUBEJS_DB_DREMIO_AUTH_TOKEN }}
373405
374406 integration-smoke :
375407 needs : [ latest-tag-sha, build-cubestore ]
@@ -380,6 +412,7 @@ jobs:
380412 strategy :
381413 matrix :
382414 node-version : [ 20.x ]
415+ python-version : [ 3.11 ]
383416 fail-fast : false
384417
385418 steps :
@@ -405,6 +438,10 @@ jobs:
405438 uses : actions/setup-node@v4
406439 with :
407440 node-version : ${{ matrix.node-version }}
441+ - name : Install Python
442+ uses : actions/setup-python@v5
443+ with :
444+ python-version : ${{ matrix.python-version }}
408445 - name : Get yarn cache directory path
409446 id : yarn-cache-dir-path
410447 run : echo "dir=$(yarn cache dir)" >> "$GITHUB_OUTPUT"
@@ -432,6 +469,11 @@ jobs:
432469 uses : GoodManWEN/oracle-client-action@main
433470 - name : Build client
434471 run : yarn build
472+ - name : Build cubejs-backend-native (with Python)
473+ run : yarn run native:build-release-python
474+ working-directory : ./packages/cubejs-backend-native
475+ env :
476+ PYO3_PYTHON : python${{ matrix.python-version }}
435477 - name : Lerna tsc
436478 run : yarn tsc
437479 - name : Download cubestored-x86_64-unknown-linux-gnu-release artifact
0 commit comments