1010 - main
1111
1212permissions :
13- id-token : write
1413 contents : read
15- pull-requests : write
1614
1715concurrency :
1816 group : ${{ github.workflow }}-${{ github.ref }}
@@ -27,21 +25,25 @@ jobs:
2725 if : github.event_name == 'pull_request' && !github.event.pull_request.draft && !github.event.pull_request.head.repo.fork
2826 environment : tool
2927 runs-on : larger
28+ permissions :
29+ # Access to the integration testing infrastructure.
30+ id-token : write
31+ # Write test results to the PR.
32+ pull-requests : write
3033 steps :
3134 - name : Checkout Code
3235 uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
3336 with :
3437 fetch-depth : 0
3538
36- - name : Install Python
37- uses : actions /setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
39+ - name : Setup uv
40+ uses : astral-sh /setup-uv@5a095e7a2014a4212f075830d4f7277575a9d098 # v7.3.1
3841 with :
39- cache : ' pip'
40- cache-dependency-path : ' **/pyproject.toml'
41- python-version : ' 3.12'
42+ version : " 0.11.2"
43+ checksum : " 7ac2ca0449c8d68dae9b99e635cd3bc9b22a4cb1de64b7c43716398447d42981"
4244
43- - name : Install hatch
44- run : pip install hatch==1.16.5
45+ - name : Setup for JFrog
46+ uses : ./.github/actions/jfrog-auth
4547
4648 - name : Run unit tests and generate test coverage report
4749 run : make test
7274 COVERAGE_FILE : ${{ github.workspace }}/.coverage # make sure the coverage report is preserved
7375
7476 - name : Merge coverage reports and convert them to XML
75- run : |
76- hatch run combine_coverage
77+ run : make combine-coverage
7778
7879 # Recursively search the entire workspace directory for all coverage reports.
7980 # All uploaded test coverage reports will be used even if publish is done multiple time.
8990 if : github.event_name == 'pull_request' && !github.event.pull_request.draft && !github.event.pull_request.head.repo.fork
9091 environment : tool
9192 runs-on : larger
93+ permissions :
94+ id-token : write
95+ pull-requests : write
9296 env :
9397 DATABRICKS_SERVERLESS_COMPUTE_ID : auto
9498 steps :
@@ -97,15 +101,14 @@ jobs:
97101 with :
98102 fetch-depth : 0
99103
100- - name : Install Python
101- uses : actions /setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
104+ - name : Setup uv
105+ uses : astral-sh /setup-uv@5a095e7a2014a4212f075830d4f7277575a9d098 # v7.3.1
102106 with :
103- cache : ' pip'
104- cache-dependency-path : ' **/pyproject.toml'
105- python-version : ' 3.12'
107+ version : " 0.11.2"
108+ checksum : " 7ac2ca0449c8d68dae9b99e635cd3bc9b22a4cb1de64b7c43716398447d42981"
106109
107- - name : Install hatch
108- run : pip install hatch==1.16.5
110+ - name : Setup for JFrog
111+ uses : ./.github/actions/jfrog-auth
109112
110113 # Integration tests are run from within tests/integration folder.
111114 # Create .coveragerc with correct relative path to source code.
@@ -131,8 +134,7 @@ jobs:
131134 COVERAGE_FILE : ${{ github.workspace }}/.coverage # make sure the coverage report is preserved
132135
133136 - name : Merge coverage reports and convert them to XML
134- run : |
135- hatch run combine_coverage
137+ run : make combine-coverage
136138
137139 # collects all coverage reports
138140 - name : Publish test coverage
@@ -144,43 +146,27 @@ jobs:
144146 if : github.event_name == 'pull_request' && !github.event.pull_request.draft && !github.event.pull_request.head.repo.fork
145147 environment : tool
146148 runs-on : larger
149+ permissions :
150+ id-token : write
151+ pull-requests : write
147152 steps :
148153 - name : Checkout Code
149154 uses : actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
150155 with :
151156 fetch-depth : 0
152157
153- - name : Install Python
154- uses : actions /setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
158+ - name : Setup uv
159+ uses : astral-sh /setup-uv@5a095e7a2014a4212f075830d4f7277575a9d098 # v7.3.1
155160 with :
156- cache : ' pip'
157- cache-dependency-path : ' **/pyproject.toml'
158- python-version : ' 3.12'
161+ version : " 0.11.2"
162+ checksum : " 7ac2ca0449c8d68dae9b99e635cd3bc9b22a4cb1de64b7c43716398447d42981"
159163
160- - name : Install hatch
161- run : pip install hatch==1.16.5
162-
163- - name : Install dbt
164- run : |
165- pip install dbt-core==1.10.9 dbt-databricks==1.10.9
164+ - name : Setup for JFrog
165+ uses : ./.github/actions/jfrog-auth
166166
167+ # Required for DAB (Databricks Asset Bundle) e2e tests
167168 - name : Install Databricks CLI
168- run : |
169- curl -fsSL https://raw.githubusercontent.com/databricks/setup-cli/main/install.sh | sh
170- databricks --version
171-
172- - name : Azure login (OIDC)
173- uses : azure/login@a457da9ea143d694b1b9c7c869ebb04ebe844ef5 # v2.3.0
174- with :
175- client-id : ${{ secrets.ARM_CLIENT_ID }}
176- tenant-id : ${{ secrets.ARM_TENANT_ID }}
177- allow-no-subscriptions : true
178-
179- - name : Set env vars for Azure CLI auth
180- run : |
181- val=$(az keyvault secret show --id "${{ secrets.VAULT_URI }}/secrets/DATABRICKS-HOST" --query value -o tsv)
182- echo "DATABRICKS_HOST=$val" >> $GITHUB_ENV
183- echo "DATABRICKS_AUTH_TYPE=azure-cli" >> $GITHUB_ENV
169+ uses : databricks/setup-cli@acd0e77a1ed7f15f528faca1e1f7f5590bcfdff8 # v0.296.0
184170
185171 - name : Run e2e tests
186172 uses : databrickslabs/sandbox/acceptance@3313d06ce86227537b3f37f5974f7eecb2a8e59a # acceptance/v0.4.4
@@ -198,6 +184,9 @@ jobs:
198184 if : github.event_name == 'pull_request' && !github.event.pull_request.draft && !github.event.pull_request.head.repo.fork
199185 environment : tool
200186 runs-on : larger
187+ permissions :
188+ id-token : write
189+ pull-requests : write
201190 env :
202191 DATABRICKS_SERVERLESS_COMPUTE_ID : auto
203192 steps :
@@ -206,37 +195,18 @@ jobs:
206195 with :
207196 fetch-depth : 0
208197
209- - name : Install Python
210- uses : actions /setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
198+ - name : Setup uv
199+ uses : astral-sh /setup-uv@5a095e7a2014a4212f075830d4f7277575a9d098 # v7.3.1
211200 with :
212- cache : ' pip'
213- cache-dependency-path : ' **/pyproject.toml'
214- python-version : ' 3.12'
215-
216- - name : Install hatch
217- run : pip install hatch==1.16.5
201+ version : " 0.11.2"
202+ checksum : " 7ac2ca0449c8d68dae9b99e635cd3bc9b22a4cb1de64b7c43716398447d42981"
218203
219- - name : Install dbt
220- run : |
221- pip install dbt-core==1.10.9 dbt-databricks==1.10.9
204+ - name : Setup for JFrog
205+ uses : ./.github/actions/jfrog-auth
222206
207+ # Required for DAB (Databricks Asset Bundle) e2e tests
223208 - name : Install Databricks CLI
224- run : |
225- curl -fsSL https://raw.githubusercontent.com/databricks/setup-cli/main/install.sh | sh
226- databricks --version
227-
228- - name : Azure login (OIDC)
229- uses : azure/login@a457da9ea143d694b1b9c7c869ebb04ebe844ef5 # v2.3.0
230- with :
231- client-id : ${{ secrets.ARM_CLIENT_ID }}
232- tenant-id : ${{ secrets.ARM_TENANT_ID }}
233- allow-no-subscriptions : true
234-
235- - name : Set env vars for Azure CLI auth
236- run : |
237- val=$(az keyvault secret show --id "${{ secrets.VAULT_URI }}/secrets/DATABRICKS-HOST" --query value -o tsv)
238- echo "DATABRICKS_HOST=$val" >> $GITHUB_ENV
239- echo "DATABRICKS_AUTH_TYPE=azure-cli" >> $GITHUB_ENV
209+ uses : databricks/setup-cli@acd0e77a1ed7f15f528faca1e1f7f5590bcfdff8 # v0.296.0
240210
241211 - name : Run e2e tests on serverless cluster
242212 uses : databrickslabs/sandbox/acceptance@3313d06ce86227537b3f37f5974f7eecb2a8e59a # acceptance/v0.4.4
0 commit comments