|
20 | 20 | - duckdb |
21 | 21 | - sqlserver |
22 | 22 | - fabric |
| 23 | + - vertica |
23 | 24 | elementary-ref: |
24 | 25 | type: string |
25 | 26 | required: false |
@@ -151,8 +152,26 @@ jobs: |
151 | 152 | if: startsWith(inputs.warehouse-type, 'databricks') && inputs.dbt-version < '1.7.0' |
152 | 153 | run: pip install databricks-sql-connector==2.9.3 |
153 | 154 |
|
| 155 | + - name: Reject unsupported Vertica + Fusion combination |
| 156 | + if: inputs.warehouse-type == 'vertica' && inputs.dbt-version == 'fusion' |
| 157 | + run: | |
| 158 | + echo "::error::dbt Fusion does not support third-party adapters such as dbt-vertica." |
| 159 | + exit 1 |
| 160 | +
|
| 161 | + - name: Install dbt-vertica |
| 162 | + if: inputs.warehouse-type == 'vertica' && inputs.dbt-version != 'fusion' |
| 163 | + run: | |
| 164 | + # dbt-vertica pins dbt-core~=1.8 which lacks native support for the |
| 165 | + # "arguments" test property used by the integration-test framework. |
| 166 | + # Install dbt-vertica without deps, then install the requested |
| 167 | + # dbt-core version separately (dbt-vertica works fine with newer |
| 168 | + # dbt-core versions). |
| 169 | + pip install dbt-vertica --no-deps |
| 170 | + pip install vertica-python \ |
| 171 | + "dbt-core${{ (!startsWith(inputs.dbt-version, 'latest') && format('=={0}', inputs.dbt-version)) || '' }}" |
| 172 | +
|
154 | 173 | - name: Install dbt |
155 | | - if: ${{ inputs.dbt-version != 'fusion' }} |
| 174 | + if: ${{ inputs.dbt-version != 'fusion' && inputs.warehouse-type != 'vertica' }} |
156 | 175 | run: |
157 | 176 | pip install${{ (inputs.dbt-version == 'latest_pre' && ' --pre') || '' }} |
158 | 177 | "dbt-core${{ (!startsWith(inputs.dbt-version, 'latest') && format('=={0}', inputs.dbt-version)) || '' }}" |
@@ -198,6 +217,18 @@ jobs: |
198 | 217 | ln -sfn ${{ github.workspace }}/dbt-data-reliability dbt_project/dbt_packages/elementary |
199 | 218 | pip install -r requirements.txt |
200 | 219 |
|
| 220 | + - name: Start Vertica |
| 221 | + if: inputs.warehouse-type == 'vertica' |
| 222 | + working-directory: ${{ env.TESTS_DIR }} |
| 223 | + run: docker compose -f docker-compose-vertica.yml up -d |
| 224 | + |
| 225 | + - name: Wait for Vertica to be ready |
| 226 | + if: inputs.warehouse-type == 'vertica' |
| 227 | + run: | |
| 228 | + echo "Waiting for Vertica to be healthy..." |
| 229 | + timeout 60 bash -c 'until [ "$(docker inspect --format="{{.State.Health.Status}}" vertica)" == "healthy" ]; do echo "Waiting..."; sleep 5; done' |
| 230 | + echo "Vertica is ready!" |
| 231 | +
|
201 | 232 | - name: Check DWH connection |
202 | 233 | working-directory: ${{ env.TESTS_DIR }} |
203 | 234 | run: | |
|
0 commit comments