59
59
# Run tests from integration_tests sub dir
60
60
working-directory : ./integration_tests
61
61
strategy :
62
+ fail-fast : false
62
63
matrix :
63
64
dbt_version : ["1.*"]
64
- warehouse : ["postgres", "bigquery", "snowflake", "databricks", "redshift"] # TODO: Add RS self-hosted runner
65
+ warehouse : ["postgres", "bigquery", "snowflake", "databricks", "redshift", "spark_iceberg" ] # TODO: Add RS self-hosted runner
65
66
services :
66
67
postgres :
67
68
image : postgres:latest
82
83
steps :
83
84
- name : Check out
84
85
uses : actions/checkout@v3
85
-
86
+ - name : Configure Docker credentials
87
+ uses : docker/login-action@v2
88
+ with :
89
+ username : ${{ secrets.DOCKERHUB_SNOWPLOWCI_READ_USERNAME }}
90
+ password : ${{ secrets.DOCKERHUB_SNOWPLOWCI_READ_PASSWORD }}
91
+ - name : Configure AWS credentials
92
+ uses : aws-actions/configure-aws-credentials@v1
93
+ with :
94
+ aws-access-key-id : ${{ secrets.AWS_ACCESS_KEY_ID }}
95
+ aws-secret-access-key : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
96
+ aws-region : eu-west-1
97
+ - name : Set warehouse variables
98
+ id : set_warehouse
99
+ run : |
100
+ WAREHOUSE_PLATFORM=$(echo ${{ matrix.warehouse }} | cut -d'_' -f1)
101
+ WAREHOUSE_SPECIFIC=$(echo ${{ matrix.warehouse }} | cut -s -d'_' -f2)
102
+ echo "WAREHOUSE_PLATFORM=${WAREHOUSE_PLATFORM}" >> $GITHUB_ENV
103
+ echo "WAREHOUSE_SPECIFIC=${WAREHOUSE_SPECIFIC}" >> $GITHUB_ENV
104
+ echo "warehouse_platform=${WAREHOUSE_PLATFORM}" >> $GITHUB_OUTPUT
105
+ echo "warehouse_specific=${WAREHOUSE_SPECIFIC}" >> $GITHUB_OUTPUT
86
106
# Remove '*' and replace '.' with '_' in DBT_VERSION & set as SCHEMA_SUFFIX.
87
107
# SCHEMA_SUFFIX allows us to run multiple versions of dbt in parallel without overwriting the output tables
88
108
- name : Set SCHEMA_SUFFIX env
92
112
93
113
- name : Set DEFAULT_TARGET env
94
114
run : |
95
- echo "DEFAULT_TARGET=${{ matrix.warehouse }}" >> $GITHUB_ENV
115
+ echo "DEFAULT_TARGET=${{matrix.warehouse}}" >> $GITHUB_ENV
96
116
97
117
- name : Python setup
98
118
uses : actions/setup-python@v4
@@ -103,32 +123,46 @@ jobs:
103
123
uses : actions/cache@v3
104
124
with :
105
125
path : ~/.cache/pip
106
- key : ${{ runner.os }}-pip-${{ matrix.dbt_version }}-${{ matrix.warehouse }}
126
+ key : ${{ runner.os }}-pip-${{ matrix.dbt_version }}-${{env.WAREHOUSE_PLATFORM }}
107
127
restore-keys : |
108
- ${{ runner.os }}-pip-${{ matrix.dbt_version }}-${{ matrix.warehouse }}
128
+ ${{ runner.os }}-pip-${{ matrix.dbt_version }}-${{env.WAREHOUSE_PLATFORM }}
109
129
110
130
# Install latest patch version. Upgrade if cache contains old patch version.
111
131
- name : Install dependencies
112
132
run : |
113
133
pip install wheel setuptools
114
- pip install -Iv dbt-${{ matrix.warehouse }}==${{ matrix.dbt_version }} --upgrade
134
+ pip install -Iv dbt-${{env.WAREHOUSE_PLATFORM }}==${{ matrix.dbt_version }} --upgrade
115
135
dbt deps
116
- if : ${{matrix.warehouse != 'spark'}}
136
+ if : ${{env.WAREHOUSE_PLATFORM != 'spark'}}
117
137
118
138
- name : Install spark dependencies
119
139
run : |
120
140
pip install --upgrade pip wheel setuptools
121
- pip install -Iv "dbt-${{ matrix.warehouse }}[ODBC ]"==${{ matrix.dbt_version }} --upgrade
141
+ pip install -Iv "dbt-${{ env.WAREHOUSE_PLATFORM }}[PyHive ]"==${{ matrix.dbt_version }} --upgrade
122
142
dbt deps
123
- if : ${{matrix.warehouse == 'spark'}}
143
+ if : ${{env.WAREHOUSE_PLATFORM == 'spark'}}
144
+
145
+ - name : Install Docker Compose
146
+ run : |
147
+ sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
148
+ sudo chmod +x /usr/local/bin/docker-compose
124
149
150
+
151
+ - name : Build and start Spark cluster
152
+ working-directory : .github/workflows/spark_deployment
153
+ run : |
154
+ docker-compose up -d
155
+ echo "Waiting for Spark services to start..."
156
+ sleep 90
157
+ if : ${{env.WAREHOUSE_PLATFORM == 'spark'}}
158
+
125
159
- name : " Pre-test: Drop ci schemas"
126
160
run : |
127
- dbt run-operation post_ci_cleanup --target ${{ matrix.warehouse }}
161
+ dbt run-operation post_ci_cleanup --target ${{matrix.warehouse}}
128
162
129
163
- name : Run tests
130
- run : ./.scripts/integration_tests.sh -d ${{ matrix.warehouse }}
164
+ run : ./.scripts/integration_tests.sh -d ${{matrix.warehouse}}
131
165
132
166
- name : " Post-test: Drop ci schemas"
133
167
run : |
134
- dbt run-operation post_ci_cleanup --target ${{ matrix.warehouse }}
168
+ dbt run-operation post_ci_cleanup --target ${{matrix.warehouse}}
0 commit comments