3333 - ' 3.11'
3434 - ' 3.10'
3535 airflow-version :
36+ # Latest release as of 2025-12-27
37+ # See: https://airflow.apache.org/docs/apache-airflow/stable/release_notes.html
3638 - ' 3.1.5'
39+ # GCP Cloud Composer latest as of 2025-12-27
40+ # See: https://docs.cloud.google.com/composer/docs/composer-versions
41+ - ' 3.1.0'
42+ # AWS MWAA latest as of 2025-12-27
43+ # See: https://docs.aws.amazon.com/mwaa/latest/userguide/airflow-versions.html
3744 - ' 3.0.6'
3845 dbt-version :
3946 - ' 1.11.2'
4653 runs-on : ubuntu-latest
4754 steps :
4855 - name : Harden Runner
49- uses : step-security/harden-runner@v2.10.4
56+ uses : step-security/harden-runner@v2.14.0
5057 with :
5158 egress-policy : block
5259 allowed-endpoints : >
@@ -74,16 +81,17 @@ jobs:
7481 sudo apt-get update
7582 sudo apt-get install --yes --no-install-recommends postgresql
7683
77- - uses : actions/checkout@v4.2.2
84+ - uses : actions/checkout@v6
85+
7886 - name : Set up Python ${{ matrix.python-version }}
79- uses : actions/setup-python@v5.4.0
87+ uses : actions/setup-python@v6
8088 with :
8189 python-version : ${{ matrix.python-version }}
8290
8391 - name : Install uv and set the python version
84- uses : astral-sh/setup-uv@v5
92+ uses : astral-sh/setup-uv@v7
8593 with :
86- version : 0.7.2
94+ version : 0.9.18
8795 python-version : ${{ matrix.python-version }}
8896
8997 - name : Install Airflow & dbt
@@ -130,7 +138,7 @@ jobs:
130138
131139 steps :
132140 - name : Harden Runner
133- uses : step-security/harden-runner@v2.10.4
141+ uses : step-security/harden-runner@v2.14.0
134142 with :
135143 egress-policy : block
136144 allowed-endpoints : >
@@ -139,15 +147,15 @@ jobs:
139147 api.github.com:443
140148 pypi.org:443
141149
142- - uses : actions/checkout@v4.2.2
143- - uses : actions/setup-python@v5.4.0
150+ - uses : actions/checkout@v6
151+ - uses : actions/setup-python@v7
144152 with :
145- python-version : ' 3.12 '
153+ python-version : ' 3.13 '
146154
147155 - name : Install uv and set the python version
148- uses : astral-sh/setup-uv@v5
156+ uses : astral-sh/setup-uv@v7
149157 with :
150- version : 0.7.2
158+ version : 0.9.18
151159 python-version : ${{ matrix.python-version }}
152160
153161 - name : Install airflow-dbt-python with uv
@@ -190,3 +198,42 @@ jobs:
190198 minColorRange : 50
191199 maxColorRange : 90
192200 valColorRange : ${{ env.total }}
201+
202+ deploy :
203+ runs-on : ubuntu-latest
204+ needs : test
205+ if : startsWith(github.ref, 'refs/tags/v')
206+ steps :
207+ - uses : actions/checkout@v6
208+ - uses : actions/setup-python@v6
209+ with :
210+ python-version : ' 3.13'
211+
212+ - name : Install uv and set the python version
213+ uses : astral-sh/setup-uv@v7
214+ with :
215+ version : 0.9.18
216+ python-version : 3.13
217+
218+ - name : Install airflow-dbt-python with uv
219+ run : uv sync --no-dev
220+
221+ - name : Build airflow-dbt-python with uv
222+ run : uv build
223+
224+ - name : Set prerelease variable
225+ run : echo "IS_PRERELEASE=$(if $(uv version --short | grep -qP '^[0-9]+\.[0-9]+\.[0-9]+$'); then echo 'false'; else echo 'true'; fi)" >> $GITHUB_ENV
226+
227+ - name : Set release git tag
228+ run : echo "RELEASE_TAG=${{ github.ref_name }}" >> $GITHUB_ENV
229+
230+ - name : Check tag matches package version
231+ run : if [[ "$(uv version --short)" == ${RELEASE_TAG/v/} ]]; then exit 0; else exit 1; fi
232+
233+ - name : Release new tag
234+ uses : softprops/action-gh-release@v1
235+ with :
236+ prerelease : ${{ fromJSON(env.IS_PRERELEASE) }}
237+ token : ${{ secrets.GH_DEPLOY_TOKEN }}
238+ files : |
239+ dist/*
0 commit comments