Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
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
2 changes: 1 addition & 1 deletion .github/workflows/build_docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ on:

jobs:
build_docs:
name: docs | build docs
name: build
runs-on: blacksmith-8vcpu-ubuntu-2404

steps:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/fork_tests_with_secrets.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,15 +25,15 @@ jobs:
- run: echo "Fork PR authorized — running secret-requiring tests against ${{ github.event.pull_request.head.sha }}"

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

test_tools_dbt_runner:
name: test dbt runner (fork)
name: dbt
needs: [authorize]
uses: ./.github/workflows/test_tools_dbt_runner.yml
secrets: inherit
20 changes: 15 additions & 5 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,23 @@ on:
jobs:

run_lint:
name: lint
name: ${{ matrix.display_name }}
strategy:
fail-fast: true
matrix:
os:
- blacksmith-8vcpu-ubuntu-2404
python-version: ["3.10", "3.11", "3.12", "3.13"]
include:
- display_name: linux-3.10
os: blacksmith-8vcpu-ubuntu-2404
python-version: "3.10"
- display_name: linux-3.11
os: blacksmith-8vcpu-ubuntu-2404
python-version: "3.11"
- display_name: linux-3.12
os: blacksmith-8vcpu-ubuntu-2404
python-version: "3.12"
- display_name: linux-3.13
os: blacksmith-8vcpu-ubuntu-2404
python-version: "3.13"

defaults:
run:
Expand Down Expand Up @@ -62,7 +72,7 @@ jobs:


matrix_job_required_check:
name: lint | code & tests
name: lint-check
needs: run_lint
runs-on: blacksmith-2vcpu-ubuntu-2404
if: always()
Expand Down
65 changes: 47 additions & 18 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
# check for secret-requiring jobs: secrets are only available for internal (same-repo) PRs under pull_request.
# fork PRs with the `ci from fork` label are handled separately by fork_tests_with_secrets.yml (pull_request_target).
authorize_secrets:
name: secrets available (internal PRs only)
name: secrets (internal PRs)
if: ${{ github.event.pull_request.head.repo.full_name == github.repository && (github.event.action == 'opened' || github.event.action == 'synchronize') }}
runs-on: blacksmith-2vcpu-ubuntu-2404
steps:
Expand All @@ -28,7 +28,7 @@ jobs:
# testing and linting of docs snippets is always run to catch problems in the docs
# NOTE: we could splint linting and testing of docs so linter can also always run for fork PRs
test_docs:
name: lint and test snippets, examples and notebooks in docs, lints tools
name: docs
uses: ./.github/workflows/test_docs.yml
secrets: inherit

Expand All @@ -38,69 +38,98 @@ jobs:
uses: ./.github/workflows/build_docs.yml

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

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

test_dashboard:
name: run dashboard tests
name: dashboard
needs: [lint]
uses: ./.github/workflows/test_tools_dashboard.yml

#
# Destination and Sources local tests, do not provide secrets
# Other tests that do not require remote connections
# Destination and Sources local tests, do not provide secrets.
# With `test-destinations-early`, start without waiting for common (mutually exclusive pairs).
#
test_destinations_local_early:
name: local
if: contains(github.event.pull_request.labels.*.name, 'test-destinations-early')
uses: ./.github/workflows/test_destinations_local.yml

test_destinations_local:
name: run local destination tests without secrets
name: local
needs: test_common
if: ${{ !contains(github.event.pull_request.labels.*.name, 'test-destinations-early') }}
uses: ./.github/workflows/test_destinations_local.yml

test_sources_local_early:
name: src local
if: contains(github.event.pull_request.labels.*.name, 'test-destinations-early')
uses: ./.github/workflows/test_sources_local.yml

test_sources_local:
name: run local source tests without secrets
name: src local
needs: test_common
if: ${{ !contains(github.event.pull_request.labels.*.name, 'test-destinations-early') }}
uses: ./.github/workflows/test_sources_local.yml

test_hub:
name: test dlthub features
name: hub
needs: lint
uses: ./.github/workflows/test_hub.yml

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

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

#
# Remote destination tests and docs examples, needs secrets,
# so we depend on authorize and forward secrets
#
# Remote destination tests need secrets. With `test-destinations-early`, start after
# authorize only (mutually exclusive pairs, same check name for branch protection).

test_destinations_remote_early:
name: remote
needs: [authorize_secrets]
if: contains(github.event.pull_request.labels.*.name, 'test-destinations-early')
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' }}

test_destinations_remote:
name: test remote destinations with secrets
name: remote
needs: [authorize_secrets, test_common]
if: ${{ !contains(github.event.pull_request.labels.*.name, 'test-destinations-early') }}
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'}}
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_early:
name: dbt
needs: [authorize_secrets]
if: contains(github.event.pull_request.labels.*.name, 'test-destinations-early')
uses: ./.github/workflows/test_tools_dbt_runner.yml
secrets: inherit

test_tools_dbt_runner:
name: test dbt runner
name: dbt
needs: [test_common, authorize_secrets]
if: ${{ !contains(github.event.pull_request.labels.*.name, 'test-destinations-early') }}
uses: ./.github/workflows/test_tools_dbt_runner.yml
secrets: inherit

Expand Down
Loading
Loading