Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 20 additions & 18 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -28,31 +28,33 @@ jobs:
fail-fast: false
matrix:
python-version:
# TODO: Requires dbt 1.12 which is in beta at the time of check.
# - '3.14'
- '3.14'
- '3.13'
- '3.12'
- '3.11'
- '3.10'
airflow-version:
# Latest release as of 2026-05-24
# Latest release as of 2026-09-07
# See: https://airflow.apache.org/docs/apache-airflow/stable/release_notes.html
- '3.2.1'
# GCP Cloud Composer latest as of 2026-05-24
- '3.3.1'
# Previous minor, kept for backward-compat coverage.
- '3.2.2'
# GCP Cloud Composer latest and AWS MWAA latest both also match the
# latest release (3.3.1) as of 2026-09-07, so no separate entries needed.
# See: https://docs.cloud.google.com/composer/docs/composer-versions
- '3.1.7'
# AWS MWAA latest as of 2026-05-24
# See: https://docs.aws.amazon.com/mwaa/latest/userguide/airflow-versions.html
# TODO: Uncomment once latest stable no longer matches MWAA latest. At the
# time of check, they are the same.
# - '3.2.1'
dbt-version:
- '1.11.11'
- '1.10.17'
- '1.12.3'
- '1.11.14'
- '1.10.23'
exclude:
# Airflow added 3.14 support in >=3.2
- airflow-version: '3.1.7'
python-version: '3.14'
# dbt-core <1.12 pins mashumaro<3.15, which lacks Python 3.14 support
# (only added in mashumaro 3.17). See mashumaro release notes and
# https://github.com/dbt-labs/dbt-core/issues/12098.
- python-version: '3.14'
dbt-version: '1.11.14'
- python-version: '3.14'
dbt-version: '1.10.23'

runs-on: ubuntu-latest
steps:
Expand Down Expand Up @@ -84,7 +86,7 @@ jobs:

- run: |
sudo apt-get update
sudo apt-get install --yes --no-install-recommends postgresql
sudo apt-get install --yes --no-install-recommends postgresql unixodbc-dev

- name: Checkout
uses: actions/checkout@v6
Expand All @@ -111,8 +113,8 @@ jobs:
run: uv run ruff check .

- name: Static type checking with mypy
# We only run mypy on the latest supported versions of Airflow & dbt,
if: matrix.python-version == '3.13' && matrix.airflow-version == '3.1.1' && matrix.dbt-version == '1.11.12'
# We only run mypy on the latest supported versions of Python, Airflow, and dbt.
if: matrix.python-version == '3.14' && matrix.airflow-version == '3.3.1' && matrix.dbt-version == '1.12.3'
run: uv run mypy .

- name: Code formatting with ruff
Expand Down
2 changes: 1 addition & 1 deletion airflow_dbt_python/__version__.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,4 @@
__author__ = "Tomás Farías Santana"
__copyright__ = "Copyright 2021 Tomás Farías Santana"
__title__ = "airflow-dbt-python"
__version__ = "3.6.0"
__version__ = "3.7.0"
4 changes: 3 additions & 1 deletion airflow_dbt_python/hooks/target.py
Original file line number Diff line number Diff line change
Expand Up @@ -211,7 +211,9 @@ def get_db_conn_hook(cls, conn_id: str) -> DbtConnectionHook:
"""Get a dbt hook class depend on Airflow connection type."""
conn = cls.get_connection(conn_id)

if hook_cls := cls._dbt_hooks_by_conn_type.get(conn.conn_type):
if conn.conn_type is not None and (
hook_cls := cls._dbt_hooks_by_conn_type.get(conn.conn_type)
):
return hook_cls(conn=conn)
raise KeyError(
f"There are no DbtConnectionHook subclasses with conn_type={conn.conn_type}"
Expand Down
Loading
Loading