Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
5c1212c
use both pull request and pull request target on destination workflows
sh-rp Jun 6, 2025
41a0514
remove additional triggers
sh-rp Jun 6, 2025
9095cf0
marks one test as smoke test and only runs this for the time being
sh-rp Jun 6, 2025
2851f10
only run one test in common, needs to be reverted later
sh-rp Jun 6, 2025
3e62cf9
run common tests only on linter success
sh-rp Jun 6, 2025
20481a2
fix common workflow
sh-rp Jun 6, 2025
7f4c04e
only start workflows on call (do not call them yet)
sh-rp Jun 6, 2025
34d09bf
test master workflow
sh-rp Jun 6, 2025
06b3be0
remove docs changes step from lint
sh-rp Jun 6, 2025
5a2a47f
remove local destinations docs change
sh-rp Jun 6, 2025
2c53ada
rename master trigger workflows
sh-rp Jun 6, 2025
85b9880
change concurrency key
sh-rp Jun 6, 2025
0e6068c
try other dependencies
sh-rp Jun 6, 2025
ca30439
add destination tests with authorize step
sh-rp Jun 6, 2025
2e31b94
remove authorize and docs step from destination tests
sh-rp Jun 6, 2025
1710687
fix destination test
sh-rp Jun 6, 2025
3c565ea
rename main workflow
sh-rp Jun 6, 2025
b01cb5b
test inherit secrets
sh-rp Jun 6, 2025
7b7a1bb
add more workflows to main file
sh-rp Jun 7, 2025
dd0208c
fix starting conditions for some workflows
sh-rp Jun 7, 2025
cfcf305
rename plus tests matrix job
sh-rp Jun 7, 2025
a886b05
remove concurrency settings for now
sh-rp Jun 7, 2025
e38d026
add first remote destinations workflow version
sh-rp Jun 9, 2025
ca0cbe3
move some more remote destinations
sh-rp Jun 9, 2025
da180ff
remove pytest args
sh-rp Jun 9, 2025
c3eba4b
try to fix extras string
sh-rp Jun 9, 2025
5c12021
add more remote destination tests
sh-rp Jun 9, 2025
4454cf0
rename some workflows and add concurrency settings to main workflow
sh-rp Jun 9, 2025
0d0e2f2
move test_destinations
sh-rp Jun 9, 2025
9ab6fe4
fix link to called workflow
sh-rp Jun 9, 2025
f5bb8e9
add better main workflow labels
sh-rp Jun 10, 2025
424635f
create local destinations test
sh-rp Jun 10, 2025
f8b9c28
disabled some workflows
sh-rp Jun 10, 2025
01d2625
disable clickhouse oss for now
sh-rp Jun 10, 2025
9cbbd0b
copy ssh agent key
sh-rp Jun 10, 2025
65aa27c
move all local destination secrets into template secrets file
sh-rp Jun 10, 2025
190544e
small fixes
sh-rp Jun 10, 2025
6c03fd1
enable all tests again
sh-rp Jun 10, 2025
2b40e7d
fix local tests
sh-rp Jun 10, 2025
afd246f
add missing openai dep
sh-rp Jun 10, 2025
8abaa17
try to fix qdrant creds
sh-rp Jun 10, 2025
83978ba
fix qdrant server / local file differentiation
sh-rp Jun 10, 2025
a17cb8f
fix cli test
sh-rp Jun 10, 2025
794b0a0
change workflow dependencies
sh-rp Jun 10, 2025
6056ad5
remove telemetry info and other small changes
sh-rp Jun 10, 2025
ad75252
run dummy destination with the local tests
sh-rp Jun 10, 2025
f21c342
remove duckdb from remote tests,
sh-rp Jun 10, 2025
2d26e45
enable clickhouse oss
sh-rp Jun 10, 2025
7e1c04d
fix condition for always running all tests
sh-rp Jun 10, 2025
653ed64
move cli commands to postgres tests
sh-rp Jun 11, 2025
3364064
rename clickhouse-compose to be inline with other services
sh-rp Jun 11, 2025
89992cc
fix clickhouse local credentials and disable tests which require stag…
sh-rp Jun 11, 2025
adf2b1a
adapt postgres to postgres example to new fixture
sh-rp Jun 11, 2025
1ca62f6
fix clickhouse excluded configs
sh-rp Jun 11, 2025
1149593
update essential test handling
sh-rp Jun 11, 2025
f0cffee
skip gcs compat test for local clickhouse tests
sh-rp Jun 11, 2025
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
14 changes: 1 addition & 13 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,25 +2,13 @@
name: lint | code & tests

on:
pull_request:
branches:
- master
- devel
workflow_call:
workflow_dispatch:

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
get_docs_changes:
name: docs changes
uses: ./.github/workflows/get_docs_changes.yml

run_lint:
name: lint
needs: get_docs_changes
if: needs.get_docs_changes.outputs.changes_outside_docs == 'true'
strategy:
fail-fast: true
matrix:
Expand Down
102 changes: 102 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
name: dlt

on:
pull_request:
branches: [ master, devel ]

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

so this workflow will cancel all the workflows it started?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes it will, it's pretty cool!

cancel-in-progress: true

jobs:

# checks wether anything outside docs has changed, if not, most of the tests can be skipped
# lint will check this and if lint is not run, no other tests will be run
get_docs_changes:
name: docs changes
uses: ./.github/workflows/get_docs_changes.yml

# if the PR is from a fork, we need to authorize the secrets access and remote destinations run with a lable
authorize_run_from_fork:
name: check if fork and if so wether secrets are available
# run when label is assigned OR when we are not a fork
if: ${{ github.event.label.name == 'ci from fork' || (github.event.pull_request.head.repo.full_name == github.repository && (github.event.action == 'opened' || github.event.action == 'synchronize'))}}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

now the pull_request_target is deactivated so this authorization is defunct (github.event.pull_request.head.repo.full_name == github.repository as always true)

we can enable PRs from forks in a separate ticket

runs-on: ubuntu-latest
steps:
- run: true

lint:
name: lint on all python versions
needs: get_docs_changes
if: needs.get_docs_changes.outputs.changes_outside_docs == 'true'
uses: ./.github/workflows/lint.yml

test_common:
name: run common tests on all python versions and OSes
needs: lint
uses: ./.github/workflows/test_common.yml

#
# Destination and Sources local tests, do not provide secrets
# Other tests that do not require remote connections
#
test_destinations_local:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

those run in parallel right?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, all tests that have their conditions met start immediately, so you have a bunch of tests running in parallel which also include matrixes.

name: run local destination tests without secrets
needs: test_common
uses: ./.github/workflows/test_destinations_local.yml

test_sources_local:
name: run local source tests without secrets
needs: test_common
uses: ./.github/workflows/test_sources_local.yml

test_plus:
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe those 3 workflows should only depend on lint?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I changed it

name: test dlt+ connection
needs: lint
uses: ./.github/workflows/test_plus.yml

test_tools_airflow:
name: test airflow helpers
needs: lint
uses: ./.github/workflows/test_tools_airflow.yml

test_tools_build_images:
name: test build images
needs: lint
uses: ./.github/workflows/test_tools_build_images.yml

#
# Remote destination tests and docs snippets, needs secrets,
# so we depend on authorize and forward secrets
#
test_docs_snippets:
name: test snippets in docs
needs: [test_common, authorize_run_from_fork]
uses: ./.github/workflows/test_docs_snippets.yml
secrets: inherit

test_destinations_remote:
name: test remote destinations with secrets
needs: [authorize_run_from_fork, test_common]
uses: ./.github/workflows/test_destinations_remote.yml
secrets: inherit
with:
run_full_test_suite: ${{ contains(github.event.pull_request.labels.*.name, 'ci full') || github.event_name == 'schedule'}}

#
# Other tools and tests that require secrets
#
test_tools_dbt_runner:
name: test dbt runner
needs: [test_common, authorize_run_from_fork]
uses: ./.github/workflows/test_tools_dbt_runner.yml
secrets: inherit

# dbt cloud tests currently are disabled, TODO: explain why
# test_tools_dbt_cloud:
# needs: [test_common, authorize_run_from_fork]
# uses: ./.github/workflows/test_tools_dbt_cloud.yml
# secrets: inherit



42 changes: 2 additions & 40 deletions .github/workflows/test_common.yml
Original file line number Diff line number Diff line change
@@ -1,19 +1,11 @@
name: common | common

on:
pull_request:
branches:
- master
- devel
workflow_dispatch:
workflow_call:

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

env:
RUNTIME__LOG_LEVEL: ERROR
RUNTIME__DLTHUB_TELEMETRY_ENDPOINT: ${{ secrets.RUNTIME__DLTHUB_TELEMETRY_ENDPOINT }}

# we need the secrets only for the rest_api_pipeline tests which are in tests/sources
# so we inject them only at the end
Expand All @@ -22,14 +14,8 @@ env:
SOURCES__GITHUB_API_PIPELINE__ACCESS_TOKEN: ${{ secrets.GITHUB_TOKEN }}

jobs:
get_docs_changes:
name: docs changes
uses: ./.github/workflows/get_docs_changes.yml

run_common:
name: test
needs: get_docs_changes
if: needs.get_docs_changes.outputs.changes_outside_docs == 'true'
strategy:
fail-fast: false
matrix:
Expand All @@ -39,29 +25,23 @@ jobs:
- os: macos-latest
python-version: "3.11.x"
shell: bash
pytest_args: ""

# linux tests
- os: ubuntu-latest
python-version: "3.9.x"
shell: bash
pytest_args: ""
- os: ubuntu-latest
python-version: "3.10.x"
shell: bash
pytest_args: ""
- os: ubuntu-latest
python-version: "3.11.x"
shell: bash
pytest_args: ""
- os: ubuntu-latest
python-version: "3.12.x"
shell: bash
pytest_args: ""
- os: ubuntu-latest
python-version: "3.13.x"
shell: bash
pytest_args: ""

# windows tests
- os: windows-latest
Expand Down Expand Up @@ -107,20 +87,9 @@ jobs:
installer-parallel: true
version: 1.8.5


# NOTE: do not cache. we want to have a clean state each run and we upgrade depdendencies later
# - name: Load cached venv
# id: cached-poetry-dependencies
# uses: actions/cache@v3
# with:
# # path: ${{ steps.pip-cache.outputs.dir }}
# path: .venv
# key: venv-${{ matrix.os }}-${{ matrix.python-version }}-${{ hashFiles('**/poetry.lock') }}


- name: Install dependencies
run: poetry install --no-interaction --with sentry-sdk

- name: Run common tests with minimum dependencies
run: |
poetry run pytest tests/common tests/normalize tests/reflection tests/plugins tests/load/test_dummy_client.py tests/extract/test_extract.py tests/extract/test_sources.py tests/pipeline/test_pipeline_state.py ${{ matrix.pytest_args }}
Expand Down Expand Up @@ -154,14 +123,7 @@ jobs:
- name: Run extract and pipeline tests
run: |
poetry run pytest tests/sources/sql_database


# - name: Install Pydantic 1.0
# run: pip install "pydantic<2"

# - name: Run extract and pipeline tests
# run: |
# poetry run pytest tests/libs


# test marimo app, does not work with python 3.13
Expand Down
94 changes: 0 additions & 94 deletions .github/workflows/test_destination_athena.yml

This file was deleted.

Loading
Loading