3535 required : false
3636 type : string
3737
38+ permissions :
39+ id-token : write
40+ contents : read
41+
3842concurrency :
3943 group : ${{ github.workflow }}-${{ github.ref }}
4044 cancel-in-progress : true
4145
4246jobs :
4347 run-uc-cluster-e2e-tests :
44- runs-on : ubuntu-latest
48+ runs-on :
49+ group : databricks-protected-runner-group
50+ labels : linux-ubuntu-latest
4551 environment : azure-prod
4652 # Only run on internal PRs or manual dispatch - skip external forks to avoid secret access failures
4753 if : github.event_name == 'workflow_dispatch' || github.event.pull_request.head.repo.full_name == github.repository
5258 DBT_DATABRICKS_UC_INITIAL_CATALOG : peco
5359 DBT_DATABRICKS_LOCATION_ROOT : ${{ secrets.TEST_PECO_EXTERNAL_LOCATION }}test
5460 TEST_PECO_UC_CLUSTER_ID : ${{ secrets.TEST_PECO_UC_CLUSTER_ID }}
61+ UV_FROZEN : " 1"
5562 steps :
5663 - name : Check out repository
57- uses : actions/checkout@v4
64+ uses : actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
5865 with :
5966 # For pull_request: checkout the PR head commit
6067 # For workflow_dispatch with pr_number: checkout that PR's head
6471 # Fetch enough history for PR testing
6572 fetch-depth : 0
6673
74+ - name : Setup JFrog PyPI Proxy
75+ uses : ./.github/actions/setup-jfrog-pypi
76+
77+
6778 - name : Set up python
6879 id : setup-python
69- uses : actions/setup-python@v5
80+ uses : actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
7081 with :
7182 python-version : " 3.10"
7283
@@ -75,25 +86,27 @@ jobs:
7586 shell : sh
7687
7788 - name : Install uv
78- uses : astral-sh/setup-uv@v4
89+ uses : astral-sh/setup-uv@38f3f104447c67c051c4a08e39b64a148898af3a # v4
7990
8091 - name : Install Hatch
8192 id : install-dependencies
82- uses : pypa/hatch@install
93+ uses : pypa/hatch@257e27e51a6a5616ed08a39a408a21c35c9931bc # install
8394
8495 - name : Run UC Cluster Functional Tests
8596 run : DBT_TEST_USER=notnecessaryformosttests@example.com DBT_DATABRICKS_LOCATION_ROOT=$DBT_DATABRICKS_LOCATION_ROOT DBT_DATABRICKS_HOST_NAME=$DBT_DATABRICKS_HOST_NAME DBT_DATABRICKS_UC_CLUSTER_HTTP_PATH=$DBT_DATABRICKS_UC_CLUSTER_HTTP_PATH DBT_DATABRICKS_CLIENT_ID=$DBT_DATABRICKS_CLIENT_ID DBT_DATABRICKS_CLIENT_SECRET=$DBT_DATABRICKS_CLIENT_SECRET hatch -v run uc-cluster-e2e
8697
8798 - name : Upload UC Cluster Test Logs
8899 if : always()
89- uses : actions/upload-artifact@v4
100+ uses : actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
90101 with :
91102 name : uc-cluster-test-logs
92103 path : logs/
93104 retention-days : 5
94105
95106 run-sqlwarehouse-e2e-tests :
96- runs-on : ubuntu-latest
107+ runs-on :
108+ group : databricks-protected-runner-group
109+ labels : linux-ubuntu-latest
97110 environment : azure-prod
98111 # Only run on internal PRs or manual dispatch - skip external forks to avoid secret access failures
99112 if : github.event_name == 'workflow_dispatch' || github.event.pull_request.head.repo.full_name == github.repository
@@ -105,9 +118,10 @@ jobs:
105118 DBT_DATABRICKS_UC_INITIAL_CATALOG : peco
106119 DBT_DATABRICKS_LOCATION_ROOT : ${{ secrets.TEST_PECO_EXTERNAL_LOCATION }}test
107120 TEST_PECO_UC_CLUSTER_ID : ${{ secrets.TEST_PECO_UC_CLUSTER_ID }}
121+ UV_FROZEN : " 1"
108122 steps :
109123 - name : Check out repository
110- uses : actions/checkout@v4
124+ uses : actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
111125 with :
112126 # For pull_request: checkout the PR head commit
113127 # For workflow_dispatch with pr_number: checkout that PR's head
@@ -117,9 +131,13 @@ jobs:
117131 # Fetch enough history for PR testing
118132 fetch-depth : 0
119133
134+ - name : Setup JFrog PyPI Proxy
135+ uses : ./.github/actions/setup-jfrog-pypi
136+
137+
120138 - name : Set up python
121139 id : setup-python
122- uses : actions/setup-python@v5
140+ uses : actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
123141 with :
124142 python-version : " 3.10"
125143
@@ -128,25 +146,27 @@ jobs:
128146 shell : sh
129147
130148 - name : Install uv
131- uses : astral-sh/setup-uv@v4
149+ uses : astral-sh/setup-uv@38f3f104447c67c051c4a08e39b64a148898af3a # v4
132150
133151 - name : Install Hatch
134152 id : install-dependencies
135- uses : pypa/hatch@install
153+ uses : pypa/hatch@257e27e51a6a5616ed08a39a408a21c35c9931bc # install
136154
137155 - name : Run Sql Endpoint Functional Tests
138156 run : DBT_TEST_USER=notnecessaryformosttests@example.com DBT_DATABRICKS_LOCATION_ROOT=$DBT_DATABRICKS_LOCATION_ROOT DBT_DATABRICKS_HOST_NAME=$DBT_DATABRICKS_HOST_NAME DBT_DATABRICKS_UC_CLUSTER_HTTP_PATH=$DBT_DATABRICKS_UC_CLUSTER_HTTP_PATH DBT_DATABRICKS_CLIENT_ID=$DBT_DATABRICKS_CLIENT_ID DBT_DATABRICKS_CLIENT_SECRET=$DBT_DATABRICKS_CLIENT_SECRET hatch -v run sqlw-e2e
139157
140158 - name : Upload SQL Endpoint Test Logs
141159 if : always()
142- uses : actions/upload-artifact@v4
160+ uses : actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
143161 with :
144162 name : sql-endpoint-test-logs
145163 path : logs/
146164 retention-days : 5
147165
148166 run-cluster-e2e-tests :
149- runs-on : ubuntu-latest
167+ runs-on :
168+ group : databricks-protected-runner-group
169+ labels : linux-ubuntu-latest
150170 environment : azure-prod
151171 # Only run on internal PRs or manual dispatch - skip external forks to avoid secret access failures
152172 if : github.event_name == 'workflow_dispatch' || github.event.pull_request.head.repo.full_name == github.repository
@@ -156,9 +176,10 @@ jobs:
156176 DBT_DATABRICKS_CLIENT_SECRET : ${{ secrets.TEST_PECO_SP_SECRET }}
157177 TEST_PECO_CLUSTER_ID : ${{ secrets.TEST_PECO_CLUSTER_ID }}
158178 DBT_DATABRICKS_LOCATION_ROOT : ${{ secrets.TEST_PECO_EXTERNAL_LOCATION }}test
179+ UV_FROZEN : " 1"
159180 steps :
160181 - name : Check out repository
161- uses : actions/checkout@v4
182+ uses : actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
162183 with :
163184 # For pull_request: checkout the PR head commit
164185 # For workflow_dispatch with pr_number: checkout that PR's head
@@ -168,9 +189,13 @@ jobs:
168189 # Fetch enough history for PR testing
169190 fetch-depth : 0
170191
192+ - name : Setup JFrog PyPI Proxy
193+ uses : ./.github/actions/setup-jfrog-pypi
194+
195+
171196 - name : Set up python
172197 id : setup-python
173- uses : actions/setup-python@v5
198+ uses : actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
174199 with :
175200 python-version : " 3.10"
176201
@@ -179,18 +204,18 @@ jobs:
179204 shell : sh
180205
181206 - name : Install uv
182- uses : astral-sh/setup-uv@v4
207+ uses : astral-sh/setup-uv@38f3f104447c67c051c4a08e39b64a148898af3a # v4
183208
184209 - name : Install Hatch
185210 id : install-dependencies
186- uses : pypa/hatch@install
211+ uses : pypa/hatch@257e27e51a6a5616ed08a39a408a21c35c9931bc # install
187212
188213 - name : Run Cluster Functional Tests
189214 run : DBT_TEST_USER=notnecessaryformosttests@example.com DBT_DATABRICKS_LOCATION_ROOT=$DBT_DATABRICKS_LOCATION_ROOT DBT_DATABRICKS_HOST_NAME=$DBT_DATABRICKS_HOST_NAME DBT_DATABRICKS_HTTP_PATH=$DBT_DATABRICKS_CLUSTER_HTTP_PATH DBT_DATABRICKS_CLIENT_ID=$DBT_DATABRICKS_CLIENT_ID DBT_DATABRICKS_CLIENT_SECRET=$DBT_DATABRICKS_CLIENT_SECRET hatch -v run cluster-e2e
190215
191216 - name : Upload Cluster Test Logs
192217 if : always()
193- uses : actions/upload-artifact@v4
218+ uses : actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
194219 with :
195220 name : cluster-test-logs
196221 path : logs/
0 commit comments