Skip to content

Commit a88bc12

Browse files
emmyoopdbeatty10
andauthored
Add support for bigquery testing in GitHub CI via tox (#203)
* add support for bigquery testing * add missing var in tox file * Temporarily only run CI tests for BigQuery * Prefix the schema for the data source in CI with the name of the target schema * Store artifacts for logs and target directories for BigQuery * Set up environment variable for BigQuery credentials (keyfile for service account JSON) * Set the custom schema in the source definition * Use the target schema * Try to align actual vs. expected when the schema name is variable * Remove extraneous storage of artifacts * Temporarily disable two failing CI tests * Revert "Temporarily disable two failing CI tests" This reverts commit d70d776. --------- Co-authored-by: Doug Beatty <[email protected]>
1 parent 972aa3f commit a88bc12

File tree

4 files changed

+29
-5
lines changed

4 files changed

+29
-5
lines changed

Diff for: .github/workflows/ci.yml

+4
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,9 @@ jobs:
2929
SNOWFLAKE_DATABASE: ${{ vars.SNOWFLAKE_DATABASE }}
3030
SNOWFLAKE_WAREHOUSE: ${{ vars.SNOWFLAKE_WAREHOUSE }}
3131
SNOWFLAKE_SCHEMA: "integration_tests_snowflake_${{ github.run_number }}"
32+
# bigquery
33+
BIGQUERY_PROJECT: ${{ vars.BIGQUERY_PROJECT }}
34+
BIGQUERY_SCHEMA: "integration_tests_bigquery_${{ github.run_number }}"
3235
# redshift
3336
REDSHIFT_HOST: ${{ vars.REDSHIFT_HOST }}
3437
REDSHIFT_USER: ${{ vars.REDSHIFT_USER }}
@@ -39,3 +42,4 @@ jobs:
3942
SNOWFLAKE_ACCOUNT: ${{ secrets.SNOWFLAKE_ACCOUNT }}
4043
DBT_ENV_SECRET_SNOWFLAKE_PASS: ${{ secrets.SNOWFLAKE_PASS }}
4144
DBT_ENV_SECRET_REDSHIFT_PASS: ${{ secrets.REDSHIFT_PASS }}
45+
BIGQUERY_KEYFILE_JSON: ${{ secrets.BIGQUERY_KEYFILE_JSON }}

Diff for: integration_tests/profiles.yml

+5-4
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,11 @@ integration_tests:
2828

2929
bigquery:
3030
type: bigquery
31-
method: service-account
32-
keyfile: "{{ env_var('BIGQUERY_SERVICE_KEY_PATH') }}"
33-
project: "{{ env_var('BIGQUERY_TEST_DATABASE') }}"
34-
schema: codegen_integration_tests_bigquery
31+
method: service-account-json
32+
keyfile_json:
33+
"{{ env_var('BIGQUERY_KEYFILE_JSON') | as_native}}"
34+
project: "{{ env_var('BIGQUERY_PROJECT') }}"
35+
dataset: "{{ env_var('BIGQUERY_SCHEMA') }}"
3536
threads: 1
3637

3738
snowflake:

Diff for: supported_adapters.env

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
SUPPORTED_ADAPTERS=postgres,snowflake,redshift
1+
SUPPORTED_ADAPTERS=postgres,snowflake,redshift,bigquery

Diff for: tox.ini

+19
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,10 @@ passenv =
1919
SNOWFLAKE_DATABASE
2020
SNOWFLAKE_WAREHOUSE
2121
SNOWFLAKE_SCHEMA
22+
# bigquery env vars
23+
BIGQUERY_PROJECT
24+
BIGQUERY_SCHEMA
25+
BIGQUERY_KEYFILE_JSON
2226
# redshift env vars
2327
REDSHIFT_HOST
2428
REDSHIFT_USER
@@ -57,6 +61,21 @@ commands =
5761
dbt --warn-error run --target snowflake
5862
dbt --warn-error test --target snowflake
5963

64+
# bigquery integration tests for centralized dbt testing
65+
# run dbt commands directly, assumes dbt is already installed in environment
66+
[testenv:dbt_integration_bigquery]
67+
changedir = integration_tests
68+
allowlist_externals =
69+
dbt
70+
skip_install = true
71+
commands =
72+
dbt --version
73+
dbt --warn-error deps --target bigquery
74+
dbt --warn-error run-operation create_source_table --target bigquery
75+
dbt --warn-error seed --target bigquery --full-refresh
76+
dbt --warn-error run --target bigquery
77+
dbt --warn-error test --target bigquery
78+
6079
# redshift integration tests for centralized dbt testing
6180
# run dbt commands directly, assumes dbt is already installed in environment
6281
[testenv:dbt_integration_redshift]

0 commit comments

Comments
 (0)