From b46879af52ab80f8ecedfb00238ca80615c37160 Mon Sep 17 00:00:00 2001 From: Ariel Schulz Date: Wed, 11 Feb 2026 08:53:13 +0100 Subject: [PATCH 01/22] Update build-and-publish --- .github/workflows/build-and-publish.yml | 20 +++++++++++-------- .../github/workflows/build-and-publish.yml | 18 ++++++++++------- 2 files changed, 23 insertions(+), 15 deletions(-) diff --git a/.github/workflows/build-and-publish.yml b/.github/workflows/build-and-publish.yml index e16c84b05..4c003256e 100644 --- a/.github/workflows/build-and-publish.yml +++ b/.github/workflows/build-and-publish.yml @@ -7,32 +7,36 @@ on: required: true jobs: - - cd-job: - name: Continuous Delivery + build-and-publish: + name: Build & Publish runs-on: "ubuntu-24.04" permissions: contents: write steps: - - name: SCM Checkout + - name: Check out Repository + id: check-out-repository uses: actions/checkout@v6 - - name: Setup Python & Poetry Environment - uses: ./.github/actions/python-environment + - name: Set up Python & Poetry Environment + id: set-up-python-and-poetry-environment + uses: exasol/python-toolbox/.github/actions/python-environment@v5 with: python-version: "3.10" poetry-version: "2.3.0" - name: Build Artifacts + id: build-artifacts run: poetry build - - name: PyPi Release + - name: Publish Release to PyPi + id: publish-release-to-pypi env: POETRY_HTTP_BASIC_PYPI_USERNAME: "__token__" POETRY_HTTP_BASIC_PYPI_PASSWORD: "${{ secrets.PYPI_TOKEN }}" run: poetry publish - - name: GitHub Release + - name: Publish Release to GitHub + id: publish-release-to-github env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: >- diff --git a/exasol/toolbox/templates/github/workflows/build-and-publish.yml b/exasol/toolbox/templates/github/workflows/build-and-publish.yml index 74e4e5e21..3944152e9 100644 --- a/exasol/toolbox/templates/github/workflows/build-and-publish.yml +++ b/exasol/toolbox/templates/github/workflows/build-and-publish.yml @@ -7,32 +7,36 @@ on: required: true jobs: - - cd-job: - name: Continuous Delivery + build-and-publish: + name: Build & Publish runs-on: "(( os_version ))" permissions: contents: write steps: - - name: SCM Checkout + - name: Check out Repository + id: check-out-repository uses: actions/checkout@v6 - - name: Setup Python & Poetry Environment + - name: Set up Python & Poetry Environment + id: set-up-python-and-poetry-environment uses: exasol/python-toolbox/.github/actions/python-environment@v5 with: python-version: "(( minimum_python_version ))" poetry-version: "(( dependency_manager_version ))" - name: Build Artifacts + id: build-artifacts run: poetry build - - name: PyPi Release + - name: Publish Release to PyPi + id: publish-release-to-pypi env: POETRY_HTTP_BASIC_PYPI_USERNAME: "__token__" POETRY_HTTP_BASIC_PYPI_PASSWORD: "${{ secrets.PYPI_TOKEN }}" run: poetry publish - - name: GitHub Release + - name: Publish Release to GitHub + id: publish-release-to-github env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: > From 4afe4370aaf4f4c0c20d4ef31be49706a6b2d70b Mon Sep 17 00:00:00 2001 From: Ariel Schulz Date: Wed, 11 Feb 2026 09:17:12 +0100 Subject: [PATCH 02/22] Update cd --- .github/workflows/cd.yml | 14 ++++++++------ exasol/toolbox/templates/github/workflows/cd.yml | 14 ++++++++------ 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index 98a11f62a..0633d44c8 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -7,17 +7,18 @@ on: - '!v*' jobs: - - check-tag-version-job: + check-release-tag: name: Check Release Tag + id: check-release-tag uses: ./.github/workflows/check-release-tag.yml permissions: contents: read - cd-job: + build-and-publish: needs: - - check-tag-version-job - name: Continuous Delivery + - check-release-tag + name: Build & Publish + id: build-and-publish uses: ./.github/workflows/build-and-publish.yml permissions: contents: write @@ -26,8 +27,9 @@ jobs: publish-docs: needs: - - cd-job + - build-and-publish name: Publish Documentation + id: publish-documentation uses: ./.github/workflows/gh-pages.yml permissions: contents: read diff --git a/exasol/toolbox/templates/github/workflows/cd.yml b/exasol/toolbox/templates/github/workflows/cd.yml index 99e2201f4..ce4fafaf3 100644 --- a/exasol/toolbox/templates/github/workflows/cd.yml +++ b/exasol/toolbox/templates/github/workflows/cd.yml @@ -7,17 +7,18 @@ on: - '!v*' jobs: - - check-tag-version-job: + check-release-tag: name: Check Release Tag + id: check-release-tag uses: ./.github/workflows/check-release-tag.yml permissions: contents: read - cd-job: + build-and-publish: needs: - - check-tag-version-job - name: Continuous Delivery + - check-release-tag + name: Build & Publish + id: build-and-publish uses: ./.github/workflows/build-and-publish.yml permissions: contents: write @@ -26,8 +27,9 @@ jobs: publish-docs: needs: - - cd-job + - build-and-publish name: Publish Documentation + id: publish-documentation uses: ./.github/workflows/gh-pages.yml permissions: contents: read From 08a6a270813df6ca19ed386f5e5d74f1f49098f0 Mon Sep 17 00:00:00 2001 From: Ariel Schulz Date: Wed, 11 Feb 2026 09:18:54 +0100 Subject: [PATCH 03/22] Update check-release-tag --- .github/workflows/check-release-tag.yml | 14 ++++++++------ .../github/workflows/check-release-tag.yml | 12 +++++++----- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/.github/workflows/check-release-tag.yml b/.github/workflows/check-release-tag.yml index e047d22b0..80c618bb7 100644 --- a/.github/workflows/check-release-tag.yml +++ b/.github/workflows/check-release-tag.yml @@ -5,21 +5,23 @@ on: jobs: - check-tag-version-job: - name: Check Tag Version + check-release-tag: + name: Check Release Tag runs-on: "ubuntu-24.04" permissions: contents: read steps: - - name: SCM Checkout + - name: Check out Repository + id: check-out-repository uses: actions/checkout@v6 - - name: Setup Python & Poetry Environment - uses: ./.github/actions/python-environment + - name: Set up Python & Poetry Environment + id: set-up-python-and-poetry-environment + uses: exasol/python-toolbox/.github/actions/python-environment@v5 with: python-version: "3.10" poetry-version: "2.3.0" - - name: Check Tag Version + - name: Check Release Tag # make sure the pushed/created tag matched the project version run: "[[ `poetry version --short` == ${{ github.ref_name }} ]]" diff --git a/exasol/toolbox/templates/github/workflows/check-release-tag.yml b/exasol/toolbox/templates/github/workflows/check-release-tag.yml index 16ae112aa..7efdcc1d9 100644 --- a/exasol/toolbox/templates/github/workflows/check-release-tag.yml +++ b/exasol/toolbox/templates/github/workflows/check-release-tag.yml @@ -5,21 +5,23 @@ on: jobs: - check-tag-version-job: - name: Check Tag Version + check-release-tag: + name: Check Release Tag runs-on: "(( os_version ))" permissions: contents: read steps: - - name: SCM Checkout + - name: Check out Repository + id: check-out-repository uses: actions/checkout@v6 - - name: Setup Python & Poetry Environment + - name: Set up Python & Poetry Environment + id: set-up-python-and-poetry-environment uses: exasol/python-toolbox/.github/actions/python-environment@v5 with: python-version: "(( minimum_python_version ))" poetry-version: "(( dependency_manager_version ))" - - name: Check Tag Version + - name: Check Release Tag # make sure the pushed/created tag matched the project version run: "[[ `poetry version --short` == ${{ github.ref_name }} ]]" From e0cff2ff049e8d7c7004ef7dfb79dc696d94fde9 Mon Sep 17 00:00:00 2001 From: Ariel Schulz Date: Wed, 11 Feb 2026 09:32:18 +0100 Subject: [PATCH 04/22] Update checks --- .github/workflows/checks.yml | 149 +++++++++++------- .../templates/github/workflows/checks.yml | 118 ++++++++------ 2 files changed, 163 insertions(+), 104 deletions(-) diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml index 3e9036e7c..7be5f0e25 100644 --- a/.github/workflows/checks.yml +++ b/.github/workflows/checks.yml @@ -4,59 +4,66 @@ on: workflow_call: jobs: - Version-Check: - name: Version + check-version: + name: Check Version runs-on: "ubuntu-24.04" permissions: contents: read steps: - - name: SCM Checkout + - name: Check out Repository + id: check-out-repository uses: actions/checkout@v6 - with: - fetch-depth: 0 - - name: Setup Python & Poetry Environment - uses: ./.github/actions/python-environment + - name: Set up Python & Poetry Environment + id: set-up-python-and-poetry-environment + uses: exasol/python-toolbox/.github/actions/python-environment@v5 with: python-version: "3.10" poetry-version: "2.3.0" - - name: Check Version(s) + - name: Check Version + id: check-version run: poetry run -- nox -s version:check - Documentation: + build-documentation-and-check-links: name: Docs runs-on: "ubuntu-24.04" permissions: contents: read steps: - - name: SCM Checkout + - name: Check out Repository + id: check-out-repository uses: actions/checkout@v6 - - name: Setup Python & Poetry Environment - uses: ./.github/actions/python-environment + - name: Set up Python & Poetry Environment + id: set-up-python-and-poetry-environment + uses: exasol/python-toolbox/.github/actions/python-environment@v5 with: python-version: "3.10" poetry-version: "2.3.0" - name: Build Documentation + id: build-documentation run: poetry run -- nox -s docs:build - - name: Link Check + - name: Check Links + id: check-links run: poetry run -- nox -s links:check - Changelog: - name: Changelog Update Check + check-changelog-was-updated: + name: Check Changelog was Updated runs-on: "ubuntu-24.04" permissions: contents: read if: ${{ github.ref != 'refs/heads/main' && github.ref != 'refs/heads/master' }} steps: - - name: SCM Checkout + - name: Check out Repository + id: check-out-repository uses: actions/checkout@v6 - - name: Setup Python & Poetry Environment - uses: ./.github/actions/python-environment + - name: Set up Python & Poetry Environment + id: set-up-python-and-poetry-environment + uses: exasol/python-toolbox/.github/actions/python-environment@v5 with: python-version: "3.10" poetry-version: "2.3.0" @@ -64,8 +71,8 @@ jobs: - name: Run changelog update check run: poetry run -- nox -s changelog:updated - Lint: - name: Linting (Python-${{ matrix.python-versions }}) + lint-code: + name: Lint Code (Python-${{ matrix.python-versions }}) runs-on: "ubuntu-24.04" permissions: contents: read @@ -74,19 +81,23 @@ jobs: matrix: python-versions: ["3.10", "3.11", "3.12", "3.13", "3.14"] steps: - - name: SCM Checkout + - name: Check out Repository + id: check-out-repository uses: actions/checkout@v6 - - name: Setup Python & Poetry Environment - uses: ./.github/actions/python-environment + - name: Set up Python & Poetry Environment + id: set-up-python-and-poetry-environment + uses: exasol/python-toolbox/.github/actions/python-environment@v5 with: python-version: ${{ matrix.python-versions }} poetry-version: "2.3.0" - - name: Run lint + - name: Lint Code + id: lint-code run: poetry run -- nox -s lint:code - name: Upload Artifacts + id: upload-artifacts uses: actions/upload-artifact@v6 with: name: lint-python${{ matrix.python-versions }} @@ -95,8 +106,8 @@ jobs: .lint.json include-hidden-files: true - Type-Check: - name: Type Checking (Python-${{ matrix.python-versions }}) + lint-typing: + name: Lint Typing (Python-${{ matrix.python-versions }}) runs-on: "ubuntu-24.04" permissions: contents: read @@ -106,20 +117,23 @@ jobs: python-versions: ["3.10", "3.11", "3.12", "3.13", "3.14"] steps: - - name: SCM Checkout + - name: Check out Repository + id: check-out-repository uses: actions/checkout@v6 - - name: Setup Python & Poetry Environment - uses: ./.github/actions/python-environment + - name: Set up Python & Poetry Environment + id: set-up-python-and-poetry-environment + uses: exasol/python-toolbox/.github/actions/python-environment@v5 with: python-version: ${{ matrix.python-versions }} poetry-version: "2.3.0" - - name: Run type-check + - name: Lint Typing + id: lint-typing run: poetry run -- nox -s lint:typing - Security: - name: Security Checks (Python-${{ matrix.python-versions }}) + audit-security: + name: Audit Security (Python-${{ matrix.python-versions }}) runs-on: "ubuntu-24.04" permissions: contents: read @@ -129,82 +143,95 @@ jobs: python-versions: ["3.10", "3.11", "3.12", "3.13", "3.14"] steps: - - name: SCM Checkout + - name: Check out Repository + id: check-out-repository uses: actions/checkout@v6 - - name: Setup Python & Poetry Environment - uses: ./.github/actions/python-environment + - name: Set up Python & Poetry Environment + id: set-up-python-and-poetry-environment + uses: exasol/python-toolbox/.github/actions/python-environment@v5 with: python-version: ${{ matrix.python-versions }} poetry-version: "2.3.0" - - name: Run security linter + - name: Audit Security + id: audit-security run: poetry run -- nox -s lint:security - name: Upload Artifacts + id: upload-artifacts uses: actions/upload-artifact@v6 with: name: security-python${{ matrix.python-versions }} path: .security.json include-hidden-files: true - Format: - name: Format Check + check-format: + name: Check Format runs-on: "ubuntu-24.04" permissions: contents: read steps: - - name: SCM Checkout + - name: Check out Repository + id: check-out-repository uses: actions/checkout@v6 - - name: Setup Python & Poetry Environment - uses: ./.github/actions/python-environment + - name: Set up Python & Poetry Environment + id: set-up-python-and-poetry-environment + uses: exasol/python-toolbox/.github/actions/python-environment@v5 with: python-version: "3.10" poetry-version: "2.3.0" - - name: Run format check + - name: Check Format + id: check-format run: poetry run -- nox -s format:check - Build-Packages: - name: Build Package Check + build-package: + name: Build Package runs-on: "ubuntu-24.04" permissions: contents: read steps: - - name: SCM Checkout + - name: Check out Repository + id: check-out-repository uses: actions/checkout@v6 - - name: Setup Python & Poetry Environment - uses: ./.github/actions/python-environment + - name: Set up Python & Poetry Environment + id: set-up-python-and-poetry-environment + uses: exasol/python-toolbox/.github/actions/python-environment@v5 with: python-version: "3.10" poetry-version: "2.3.0" - - name: Run Distribution Check + - name: Build Package + id: build-package run: poetry run -- nox -s package:check - Lint-Imports: + lint-imports: name: Lint Imports runs-on: ubuntu-24.04 permissions: contents: read steps: - - name: SCM Checkout + - name: Check out Repository + id: check-out-repository uses: actions/checkout@v6 - - name: Setup Python & Poetry Environment - uses: ./.github/actions/python-environment + - name: Set up Python & Poetry Environment + id: set-up-python-and-poetry-environment + uses: exasol/python-toolbox/.github/actions/python-environment@v5 with: python-version: "3.10" poetry-version: "2.3.0" - - name: Run import linter + - name: Lint Imports + id: lint-imports run: poetry run -- nox -s lint:import - Tests: - name: Unit-Tests (Python-${{ matrix.python-versions }}) + run-unit-tests: + name: Run Unit Tests (Python-${{ matrix.python-versions }}) runs-on: "ubuntu-24.04" permissions: contents: read @@ -214,22 +241,26 @@ jobs: python-versions: ["3.10", "3.11", "3.12", "3.13", "3.14"] steps: - - name: SCM Checkout + - name: Check out Repository + id: check-out-repository uses: actions/checkout@v6 # The PTB has unit tests which require the fetch-depth to be 0. with: fetch-depth: 0 - - name: Setup Python & Poetry Environment - uses: ./.github/actions/python-environment + - name: Set up Python & Poetry Environment + id: set-up-python-and-poetry-environment + uses: exasol/python-toolbox/.github/actions/python-environment@v5 with: python-version: ${{ matrix.python-versions }} poetry-version: "2.3.0" - - name: Run Tests and Collect Coverage + - name: Run Unit Tests + id: run-unit-tests run: poetry run -- nox -s test:unit -- --coverage - name: Upload Artifacts + id: upload-artifacts uses: actions/upload-artifact@v6 with: name: coverage-python${{ matrix.python-versions }}-fast diff --git a/exasol/toolbox/templates/github/workflows/checks.yml b/exasol/toolbox/templates/github/workflows/checks.yml index c6e451782..03e4d564d 100644 --- a/exasol/toolbox/templates/github/workflows/checks.yml +++ b/exasol/toolbox/templates/github/workflows/checks.yml @@ -4,58 +4,65 @@ on: workflow_call: jobs: - Version-Check: - name: Version + check-version: + name: Check Version runs-on: "(( os_version ))" permissions: contents: read steps: - - name: SCM Checkout + - name: Check out Repository + id: check-out-repository uses: actions/checkout@v6 - with: - fetch-depth: 0 - - name: Setup Python & Poetry Environment + - name: Set up Python & Poetry Environment + id: set-up-python-and-poetry-environment uses: exasol/python-toolbox/.github/actions/python-environment@v5 with: python-version: "(( minimum_python_version ))" poetry-version: "(( dependency_manager_version ))" - - name: Check Version(s) + - name: Check Version + id: check-version run: poetry run -- nox -s version:check - Documentation: + build-documentation-and-check-links: name: Docs runs-on: "(( os_version ))" permissions: contents: read steps: - - name: SCM Checkout + - name: Check out Repository + id: check-out-repository uses: actions/checkout@v6 - - name: Setup Python & Poetry Environment + - name: Set up Python & Poetry Environment + id: set-up-python-and-poetry-environment uses: exasol/python-toolbox/.github/actions/python-environment@v5 with: python-version: "(( minimum_python_version ))" poetry-version: "(( dependency_manager_version ))" - name: Build Documentation + id: build-documentation run: poetry run -- nox -s docs:build - - name: Link Check + - name: Check Links + id: check-links run: poetry run -- nox -s links:check - Changelog: - name: Changelog Update Check + check-changelog-was-updated: + name: Check Changelog was Updated runs-on: "(( os_version ))" permissions: contents: read if: ${{ github.ref != 'refs/heads/main' && github.ref != 'refs/heads/master' }} steps: - - name: SCM Checkout + - name: Check out Repository + id: check-out-repository uses: actions/checkout@v6 - - name: Setup Python & Poetry Environment + - name: Set up Python & Poetry Environment + id: set-up-python-and-poetry-environment uses: exasol/python-toolbox/.github/actions/python-environment@v5 with: python-version: "(( minimum_python_version ))" @@ -64,8 +71,8 @@ jobs: - name: Run changelog update check run: poetry run -- nox -s changelog:updated - Lint: - name: Linting (Python-${{ matrix.python-versions }}) + lint-code: + name: Lint Code (Python-${{ matrix.python-versions }}) runs-on: "(( os_version ))" permissions: contents: read @@ -74,19 +81,23 @@ jobs: matrix: python-versions: (( python_versions | tojson )) steps: - - name: SCM Checkout + - name: Check out Repository + id: check-out-repository uses: actions/checkout@v6 - - name: Setup Python & Poetry Environment + - name: Set up Python & Poetry Environment + id: set-up-python-and-poetry-environment uses: exasol/python-toolbox/.github/actions/python-environment@v5 with: python-version: ${{ matrix.python-versions }} poetry-version: "(( dependency_manager_version ))" - - name: Run lint + - name: Lint Code + id: lint-code run: poetry run -- nox -s lint:code - name: Upload Artifacts + id: upload-artifacts uses: actions/upload-artifact@v6 with: name: lint-python${{ matrix.python-versions }} @@ -95,8 +106,8 @@ jobs: .lint.json include-hidden-files: true - Type-Check: - name: Type Checking (Python-${{ matrix.python-versions }}) + lint-typing: + name: Lint Typing (Python-${{ matrix.python-versions }}) runs-on: "(( os_version ))" permissions: contents: read @@ -106,20 +117,23 @@ jobs: python-versions: (( python_versions | tojson )) steps: - - name: SCM Checkout + - name: Check out Repository + id: check-out-repository uses: actions/checkout@v6 - - name: Setup Python & Poetry Environment + - name: Set up Python & Poetry Environment + id: set-up-python-and-poetry-environment uses: exasol/python-toolbox/.github/actions/python-environment@v5 with: python-version: ${{ matrix.python-versions }} poetry-version: "(( dependency_manager_version ))" - - name: Run type-check + - name: Lint Typing + id: lint-typing run: poetry run -- nox -s lint:typing - Security: - name: Security Checks (Python-${{ matrix.python-versions }}) + audit-security: + name: Audit Security (Python-${{ matrix.python-versions }}) runs-on: "(( os_version ))" permissions: contents: read @@ -129,64 +143,74 @@ jobs: python-versions: (( python_versions | tojson )) steps: - - name: SCM Checkout + - name: Check out Repository + id: check-out-repository uses: actions/checkout@v6 - - name: Setup Python & Poetry Environment + - name: Set up Python & Poetry Environment + id: set-up-python-and-poetry-environment uses: exasol/python-toolbox/.github/actions/python-environment@v5 with: python-version: ${{ matrix.python-versions }} poetry-version: "(( dependency_manager_version ))" - - name: Run security linter + - name: Audit Security + id: audit-security run: poetry run -- nox -s lint:security - name: Upload Artifacts + id: upload-artifacts uses: actions/upload-artifact@v6 with: name: security-python${{ matrix.python-versions }} path: .security.json include-hidden-files: true - Format: - name: Format Check + check-format: + name: Check Format runs-on: "(( os_version ))" permissions: contents: read steps: - - name: SCM Checkout + - name: Check out Repository + id: check-out-repository uses: actions/checkout@v6 - - name: Setup Python & Poetry Environment + - name: Set up Python & Poetry Environment + id: set-up-python-and-poetry-environment uses: exasol/python-toolbox/.github/actions/python-environment@v5 with: python-version: "(( minimum_python_version ))" poetry-version: "(( dependency_manager_version ))" - - name: Run format check + - name: Check Format + id: check-format run: poetry run -- nox -s format:check - Build-Packages: - name: Build Package Check + build-package: + name: Build Package runs-on: "(( os_version ))" permissions: contents: read steps: - - name: SCM Checkout + - name: Check out Repository + id: check-out-repository uses: actions/checkout@v6 - - name: Setup Python & Poetry Environment + - name: Set up Python & Poetry Environment + id: set-up-python-and-poetry-environment uses: exasol/python-toolbox/.github/actions/python-environment@v5 with: python-version: "(( minimum_python_version ))" poetry-version: "(( dependency_manager_version ))" - - name: Run Distribution Check + - name: Build Package + id: build-package run: poetry run -- nox -s package:check - Tests: - name: Unit-Tests (Python-${{ matrix.python-versions }}) + run-unit-tests: + name: Run Unit Tests (Python-${{ matrix.python-versions }}) runs-on: "(( os_version ))" permissions: contents: read @@ -196,19 +220,23 @@ jobs: python-versions: (( python_versions | tojson )) steps: - - name: SCM Checkout + - name: Check out Repository + id: check-out-repository uses: actions/checkout@v6 - - name: Setup Python & Poetry Environment + - name: Set up Python & Poetry Environment + id: set-up-python-and-poetry-environment uses: exasol/python-toolbox/.github/actions/python-environment@v5 with: python-version: ${{ matrix.python-versions }} poetry-version: "(( dependency_manager_version ))" - - name: Run Tests and Collect Coverage + - name: Run Unit Tests + id: run-unit-tests run: poetry run -- nox -s test:unit -- --coverage - name: Upload Artifacts + id: upload-artifacts uses: actions/upload-artifact@v6 with: name: coverage-python${{ matrix.python-versions }}-fast From bbd8ea575678ba804805b0341c3e1e91efc59b92 Mon Sep 17 00:00:00 2001 From: Ariel Schulz Date: Wed, 11 Feb 2026 09:33:40 +0100 Subject: [PATCH 05/22] Update ci --- .github/workflows/ci.yml | 7 +++---- exasol/toolbox/templates/github/workflows/ci.yml | 7 +++---- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5cba3e817..b529c2b01 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -8,16 +8,15 @@ on: - cron: "0 0 1/7 * *" jobs: - - CI: + merge-gate: uses: ./.github/workflows/merge-gate.yml secrets: inherit permissions: contents: read - Metrics: + report: needs: - - CI + - merge-gate uses: ./.github/workflows/report.yml secrets: inherit permissions: diff --git a/exasol/toolbox/templates/github/workflows/ci.yml b/exasol/toolbox/templates/github/workflows/ci.yml index 2cdd4db79..b363ed816 100644 --- a/exasol/toolbox/templates/github/workflows/ci.yml +++ b/exasol/toolbox/templates/github/workflows/ci.yml @@ -8,16 +8,15 @@ on: - cron: "0 0 1/7 * *" jobs: - - CI: + merge-gate: uses: ./.github/workflows/merge-gate.yml secrets: inherit permissions: contents: read - Metrics: + report: needs: - - CI + - merge-gate uses: ./.github/workflows/report.yml secrets: inherit permissions: From eded9f24679165c4ae4f4dd6d2e7fa6e6550fe63 Mon Sep 17 00:00:00 2001 From: Ariel Schulz Date: Wed, 11 Feb 2026 09:37:04 +0100 Subject: [PATCH 06/22] Update gh-pages --- .github/workflows/gh-pages.yml | 14 +++++++++----- .../templates/github/workflows/gh-pages.yml | 12 ++++++++---- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml index 330218150..d45b01066 100644 --- a/.github/workflows/gh-pages.yml +++ b/.github/workflows/gh-pages.yml @@ -11,23 +11,27 @@ jobs: permissions: contents: read steps: - - name: SCM Checkout + - name: Check out Repository + id: check-out-repository uses: actions/checkout@v6 with: fetch-depth: 0 - - name: Setup Python & Poetry Environment - uses: ./.github/actions/python-environment + - name: Set up Python & Poetry Environment + id: set-up-python-and-poetry-environment + uses: exasol/python-toolbox/.github/actions/python-environment@v5 with: python-version: "3.10" poetry-version: "2.3.0" - name: Build Documentation + id: build-documentation run: | poetry run -- nox -s docs:multiversion mv .html-documentation html-documentation - - name: Upload artifact + - name: Upload Artifact + id: upload-artifact uses: actions/upload-pages-artifact@v4 with: path: html-documentation @@ -45,5 +49,5 @@ jobs: runs-on: "ubuntu-24.04" steps: - name: Deploy to GitHub Pages - id: deployment + id: deploy-to-github-pages uses: actions/deploy-pages@v4 diff --git a/exasol/toolbox/templates/github/workflows/gh-pages.yml b/exasol/toolbox/templates/github/workflows/gh-pages.yml index 87f57ad54..565665cf9 100644 --- a/exasol/toolbox/templates/github/workflows/gh-pages.yml +++ b/exasol/toolbox/templates/github/workflows/gh-pages.yml @@ -11,23 +11,27 @@ jobs: permissions: contents: read steps: - - name: SCM Checkout + - name: Check out Repository + id: check-out-repository uses: actions/checkout@v6 with: fetch-depth: 0 - - name: Setup Python & Poetry Environment + - name: Set up Python & Poetry Environment + id: set-up-python-and-poetry-environment uses: exasol/python-toolbox/.github/actions/python-environment@v5 with: python-version: "(( minimum_python_version ))" poetry-version: "(( dependency_manager_version ))" - name: Build Documentation + id: build-documentation run: | poetry run -- nox -s docs:multiversion mv .html-documentation html-documentation - - name: Upload artifact + - name: Upload Artifact + id: upload-artifact uses: actions/upload-pages-artifact@v4 with: path: html-documentation @@ -45,5 +49,5 @@ jobs: runs-on: "(( os_version ))" steps: - name: Deploy to GitHub Pages - id: deployment + id: deploy-to-github-pages uses: actions/deploy-pages@v4 From 716e6fc5dd5f77429880c87dbdf994fd8d7354a6 Mon Sep 17 00:00:00 2001 From: Ariel Schulz Date: Wed, 11 Feb 2026 09:38:30 +0100 Subject: [PATCH 07/22] Update matrix-all --- .github/workflows/matrix-all.yml | 16 ++++++++++------ .../templates/github/workflows/matrix-all.yml | 14 +++++++++----- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/.github/workflows/matrix-all.yml b/.github/workflows/matrix-all.yml index ed1a4a769..3fd834051 100644 --- a/.github/workflows/matrix-all.yml +++ b/.github/workflows/matrix-all.yml @@ -8,24 +8,28 @@ on: value: ${{ jobs.all_versions.outputs.matrix }} jobs: - all_versions: + set-matrix-all: runs-on: "ubuntu-24.04" permissions: contents: read steps: - - name: SCM Checkout + - name: Check out Repository + id: check-out-repository uses: actions/checkout@v6 - - name: Setup Python & Poetry Environment - uses: ./.github/actions/python-environment + - name: Set up Python & Poetry Environment + id: set-up-python-and-poetry-environment + uses: exasol/python-toolbox/.github/actions/python-environment@v5 with: python-version: "3.10" poetry-version: "2.3.0" - - name: Generate matrix + - name: Generate Matrix + id: generate-matrix run: poetry run -- nox -s matrix:all - - id: set-matrix + - name: Set Matrix + id: set-matrix run: | echo "matrix=$(poetry run -- nox -s matrix:all)" >> $GITHUB_OUTPUT diff --git a/exasol/toolbox/templates/github/workflows/matrix-all.yml b/exasol/toolbox/templates/github/workflows/matrix-all.yml index cb66c81c7..37ab5e5cd 100644 --- a/exasol/toolbox/templates/github/workflows/matrix-all.yml +++ b/exasol/toolbox/templates/github/workflows/matrix-all.yml @@ -8,24 +8,28 @@ on: value: ${{ jobs.all_versions.outputs.matrix }} jobs: - all_versions: + set-matrix-all: runs-on: "(( os_version ))" permissions: contents: read steps: - - name: SCM Checkout + - name: Check out Repository + id: check-out-repository uses: actions/checkout@v6 - - name: Setup Python & Poetry Environment + - name: Set up Python & Poetry Environment + id: set-up-python-and-poetry-environment uses: exasol/python-toolbox/.github/actions/python-environment@v5 with: python-version: "(( minimum_python_version ))" poetry-version: "(( dependency_manager_version ))" - - name: Generate matrix + - name: Generate Matrix + id: generate-matrix run: poetry run -- nox -s matrix:all - - id: set-matrix + - name: Set Matrix + id: set-matrix run: | echo "matrix=$(poetry run -- nox -s matrix:all)" >> $GITHUB_OUTPUT From 251f3298d9f7e064dda3955c3c09a61b56f11cbe Mon Sep 17 00:00:00 2001 From: Ariel Schulz Date: Wed, 11 Feb 2026 09:39:46 +0100 Subject: [PATCH 08/22] Update matrix-exasol --- .github/workflows/matrix-exasol.yml | 13 ++++++++----- .../templates/github/workflows/matrix-exasol.yml | 11 +++++++---- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/.github/workflows/matrix-exasol.yml b/.github/workflows/matrix-exasol.yml index 617564d57..046d2182a 100644 --- a/.github/workflows/matrix-exasol.yml +++ b/.github/workflows/matrix-exasol.yml @@ -8,24 +8,27 @@ on: value: ${{ jobs.exasol_versions.outputs.matrix }} jobs: - exasol_versions: + set-matrix-exasol: runs-on: "ubuntu-24.04" permissions: contents: read steps: - - name: SCM Checkout + - name: Check out Repository + id: check-out-repository uses: actions/checkout@v6 - name: Setup Python & Poetry Environment - uses: ./.github/actions/python-environment + uses: exasol/python-toolbox/.github/actions/python-environment@v5 with: python-version: "3.10" poetry-version: "2.3.0" - - name: Generate matrix + - name: Generate Matrix + id: generate-matrix run: poetry run -- nox -s matrix:exasol - - id: set-matrix + - name: Set Matrix + id: set-matrix run: | echo "matrix=$(poetry run -- nox -s matrix:exasol)" >> $GITHUB_OUTPUT diff --git a/exasol/toolbox/templates/github/workflows/matrix-exasol.yml b/exasol/toolbox/templates/github/workflows/matrix-exasol.yml index d3e528c14..74efd495a 100644 --- a/exasol/toolbox/templates/github/workflows/matrix-exasol.yml +++ b/exasol/toolbox/templates/github/workflows/matrix-exasol.yml @@ -8,12 +8,13 @@ on: value: ${{ jobs.exasol_versions.outputs.matrix }} jobs: - exasol_versions: + set-matrix-exasol: runs-on: "(( os_version ))" permissions: contents: read steps: - - name: SCM Checkout + - name: Check out Repository + id: check-out-repository uses: actions/checkout@v6 - name: Setup Python & Poetry Environment @@ -22,10 +23,12 @@ jobs: python-version: "(( minimum_python_version ))" poetry-version: "(( dependency_manager_version ))" - - name: Generate matrix + - name: Generate Matrix + id: generate-matrix run: poetry run -- nox -s matrix:exasol - - id: set-matrix + - name: Set Matrix + id: set-matrix run: | echo "matrix=$(poetry run -- nox -s matrix:exasol)" >> $GITHUB_OUTPUT From 65f109c2b9462e105c0613c4c7b569452289477a Mon Sep 17 00:00:00 2001 From: Ariel Schulz Date: Wed, 11 Feb 2026 09:40:37 +0100 Subject: [PATCH 09/22] Update matrix-python --- .github/workflows/matrix-python.yml | 16 ++++++++++------ .../templates/github/workflows/matrix-python.yml | 14 +++++++++----- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/.github/workflows/matrix-python.yml b/.github/workflows/matrix-python.yml index 86c3c0de0..c04f2b40d 100644 --- a/.github/workflows/matrix-python.yml +++ b/.github/workflows/matrix-python.yml @@ -8,24 +8,28 @@ on: value: ${{ jobs.python_versions.outputs.matrix }} jobs: - python_versions: + set-matrix-python: runs-on: "ubuntu-24.04" permissions: contents: read steps: - - name: SCM Checkout + - name: Check out Repository + id: check-out-repository uses: actions/checkout@v6 - - name: Setup Python & Poetry Environment - uses: ./.github/actions/python-environment + - name: Set up Python & Poetry Environment + id: set-up-python-and-poetry-environment + uses: exasol/python-toolbox/.github/actions/python-environment@v5 with: python-version: "3.10" poetry-version: "2.3.0" - - name: Generate matrix + - name: Generate Matrix + id: generate-matrix run: poetry run -- nox -s matrix:python - - id: set-matrix + - name: Set Matrix + id: set-matrix run: | echo "matrix=$(poetry run -- nox -s matrix:python)" >> $GITHUB_OUTPUT diff --git a/exasol/toolbox/templates/github/workflows/matrix-python.yml b/exasol/toolbox/templates/github/workflows/matrix-python.yml index e83a91ad3..126bde5c5 100644 --- a/exasol/toolbox/templates/github/workflows/matrix-python.yml +++ b/exasol/toolbox/templates/github/workflows/matrix-python.yml @@ -8,24 +8,28 @@ on: value: ${{ jobs.python_versions.outputs.matrix }} jobs: - python_versions: + set-matrix-python: runs-on: "(( os_version ))" permissions: contents: read steps: - - name: SCM Checkout + - name: Check out Repository + id: check-out-repository uses: actions/checkout@v6 - - name: Setup Python & Poetry Environment + - name: Set up Python & Poetry Environment + id: set-up-python-and-poetry-environment uses: exasol/python-toolbox/.github/actions/python-environment@v5 with: python-version: "(( minimum_python_version ))" poetry-version: "(( dependency_manager_version ))" - - name: Generate matrix + - name: Generate Matrix + id: generate-matrix run: poetry run -- nox -s matrix:python - - id: set-matrix + - name: Set Matrix + id: set-matrix run: | echo "matrix=$(poetry run -- nox -s matrix:python)" >> $GITHUB_OUTPUT From 84a05cf5d715a5163923bfbfae2ebf46de859765 Mon Sep 17 00:00:00 2001 From: Ariel Schulz Date: Wed, 11 Feb 2026 09:42:39 +0100 Subject: [PATCH 10/22] Update merge-gate --- .github/workflows/merge-gate.yml | 23 ++++++++----------- .../templates/github/workflows/merge-gate.yml | 23 ++++++++----------- 2 files changed, 20 insertions(+), 26 deletions(-) diff --git a/.github/workflows/merge-gate.yml b/.github/workflows/merge-gate.yml index 74b3d93f9..46753e3e5 100644 --- a/.github/workflows/merge-gate.yml +++ b/.github/workflows/merge-gate.yml @@ -4,19 +4,17 @@ on: workflow_call: jobs: - - fast-checks: - name: Fast + run-fast-checks: + name: Run Fast Checks uses: ./.github/workflows/checks.yml permissions: contents: read - run-slow-tests: - name: Run Slow Tests? + approve-run-slow-tests: + name: Approve Running Slow Tests? runs-on: "ubuntu-24.04" permissions: contents: read - # Even though the environment "manual-approval" will be created automatically, # it still needs to be configured to require interactive review. # See project settings on GitHub (Settings / Environments / manual-approval). @@ -25,26 +23,25 @@ jobs: - name: Tests run: echo "Slow tests approved" - slow-checks: - name: Slow + run-slow-checks: + name: Run Slow Checks needs: - - run-slow-tests + - approve-run-slow-tests uses: ./.github/workflows/slow-checks.yml secrets: inherit permissions: contents: read # This job ensures inputs have been executed successfully. - approve-merge: + allow-merge: name: Allow Merge runs-on: "ubuntu-24.04" permissions: contents: read # If you need additional jobs to be part of the merge gate, add them below needs: - - fast-checks - - slow-checks - + - run-fast-checks + - run-slow-checks # Each job requires a step, so we added this dummy step. steps: - name: Approve diff --git a/exasol/toolbox/templates/github/workflows/merge-gate.yml b/exasol/toolbox/templates/github/workflows/merge-gate.yml index 516110dc7..9fb59c997 100644 --- a/exasol/toolbox/templates/github/workflows/merge-gate.yml +++ b/exasol/toolbox/templates/github/workflows/merge-gate.yml @@ -4,19 +4,17 @@ on: workflow_call: jobs: - - fast-checks: - name: Fast + run-fast-checks: + name: Run Fast Checks uses: ./.github/workflows/checks.yml permissions: contents: read - run-slow-tests: - name: Run Slow Tests? + approve-run-slow-tests: + name: Approve Running Slow Tests? runs-on: "(( os_version ))" permissions: contents: read - # Even though the environment "manual-approval" will be created automatically, # it still needs to be configured to require interactive review. # See project settings on GitHub (Settings / Environments / manual-approval). @@ -25,26 +23,25 @@ jobs: - name: Tests run: echo "Slow tests approved" - slow-checks: - name: Slow + run-slow-checks: + name: Run Slow Checks needs: - - run-slow-tests + - approve-run-slow-tests uses: ./.github/workflows/slow-checks.yml secrets: inherit permissions: contents: read # This job ensures inputs have been executed successfully. - approve-merge: + allow-merge: name: Allow Merge runs-on: "(( os_version ))" permissions: contents: read # If you need additional jobs to be part of the merge gate, add them below needs: - - fast-checks - - slow-checks - + - run-fast-checks + - run-slow-checks # Each job requires a step, so we added this dummy step. steps: - name: Approve From bbf94c8720c53f775e86136a7754e55f58bbc073 Mon Sep 17 00:00:00 2001 From: Ariel Schulz Date: Wed, 11 Feb 2026 09:44:56 +0100 Subject: [PATCH 11/22] Update pr-merge --- .github/workflows/pr-merge.yml | 10 ++++------ exasol/toolbox/templates/github/workflows/pr-merge.yml | 10 ++++------ 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/.github/workflows/pr-merge.yml b/.github/workflows/pr-merge.yml index 544c8a94e..482647ee8 100644 --- a/.github/workflows/pr-merge.yml +++ b/.github/workflows/pr-merge.yml @@ -7,12 +7,10 @@ on: - 'master' jobs: - # This job can be removed if certain preconditions are met. See # https://exasol.github.io/python-toolbox/user_guide/workflows.html#pr-merge-workflow - - ci-job: - name: Checks + run-fast-checks: + name: Run Fast Checks uses: ./.github/workflows/checks.yml permissions: contents: read @@ -25,9 +23,9 @@ jobs: pages: write id-token: write - metrics: + report: needs: - - ci-job + - run-fast-checks uses: ./.github/workflows/report.yml secrets: inherit permissions: diff --git a/exasol/toolbox/templates/github/workflows/pr-merge.yml b/exasol/toolbox/templates/github/workflows/pr-merge.yml index 8cf903f02..8397b92d8 100644 --- a/exasol/toolbox/templates/github/workflows/pr-merge.yml +++ b/exasol/toolbox/templates/github/workflows/pr-merge.yml @@ -7,12 +7,10 @@ on: - 'master' jobs: - # This job can be removed if certain preconditions are met. See # https://exasol.github.io/python-toolbox/user_guide/workflows.html#pr-merge-workflow - - ci-job: - name: Checks + run-fast-checks: + name: Run Fast Checks uses: ./.github/workflows/checks.yml permissions: contents: read @@ -25,9 +23,9 @@ jobs: pages: write id-token: write - metrics: + report: needs: - - ci-job + - run-fast-checks uses: ./.github/workflows/report.yml secrets: inherit permissions: From b0e610607f1bd72691ea8f06be9b1646a051ecb1 Mon Sep 17 00:00:00 2001 From: Ariel Schulz Date: Wed, 11 Feb 2026 09:46:32 +0100 Subject: [PATCH 12/22] Update report --- .github/workflows/report.yml | 18 +++++++++++++----- .../templates/github/workflows/report.yml | 16 ++++++++++++---- 2 files changed, 25 insertions(+), 9 deletions(-) diff --git a/.github/workflows/report.yml b/.github/workflows/report.yml index 39502c9db..1e1410356 100644 --- a/.github/workflows/report.yml +++ b/.github/workflows/report.yml @@ -11,45 +11,53 @@ jobs: contents: read env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - steps: - - name: SCM Checkout + - name: Check out Repository + id: check-out-repositor uses: actions/checkout@v6 with: fetch-depth: 0 - - name: Setup Python & Poetry Environment - uses: ./.github/actions/python-environment + - name: Set up Python & Poetry Environment + id: set-up-python-and-poetry-environment + uses: exasol/python-toolbox/.github/actions/python-environment@v5 with: python-version: "3.10" poetry-version: "2.3.0" - name: Download Artifacts + id: download-artifacts uses: actions/download-artifact@v7 with: path: ./artifacts - name: Copy Artifacts into Root Folder + id: copy-artifacts-into-root-folder run: poetry run -- nox -s artifacts:copy -- artifacts - name: Validate Artifacts + id: validate-artifacts run: poetry run -- nox -s artifacts:validate - - name: Upload to sonar + - name: Upload to Sonar + id: upload-to-sonar env: SONAR_TOKEN: "${{ secrets.SONAR_TOKEN }}" run: poetry run -- nox -s sonar:check - name: Generate Report + id: generate-report run: poetry run -- nox -s project:report -- --format json | tee metrics.json - name: Upload Artifacts + id: upload-artifacts uses: actions/upload-artifact@v6 with: name: metrics.json path: metrics.json - name: Generate GitHub Summary + id: generate-github-summary run: |- echo -e "# Summary\n" >> $GITHUB_STEP_SUMMARY poetry run -- nox -s project:report -- --format markdown >> $GITHUB_STEP_SUMMARY diff --git a/exasol/toolbox/templates/github/workflows/report.yml b/exasol/toolbox/templates/github/workflows/report.yml index e58592cd5..11bb61209 100644 --- a/exasol/toolbox/templates/github/workflows/report.yml +++ b/exasol/toolbox/templates/github/workflows/report.yml @@ -11,45 +11,53 @@ jobs: contents: read env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - steps: - - name: SCM Checkout + - name: Check out Repository + id: check-out-repositor uses: actions/checkout@v6 with: fetch-depth: 0 - - name: Setup Python & Poetry Environment + - name: Set up Python & Poetry Environment + id: set-up-python-and-poetry-environment uses: exasol/python-toolbox/.github/actions/python-environment@v5 with: python-version: "(( minimum_python_version ))" poetry-version: "(( dependency_manager_version ))" - name: Download Artifacts + id: download-artifacts uses: actions/download-artifact@v7 with: path: ./artifacts - name: Copy Artifacts into Root Folder + id: copy-artifacts-into-root-folder run: poetry run -- nox -s artifacts:copy -- artifacts - name: Validate Artifacts + id: validate-artifacts run: poetry run -- nox -s artifacts:validate - - name: Upload to sonar + - name: Upload to Sonar + id: upload-to-sonar env: SONAR_TOKEN: "${{ secrets.SONAR_TOKEN }}" run: poetry run -- nox -s sonar:check - name: Generate Report + id: generate-report run: poetry run -- nox -s project:report -- --format json | tee metrics.json - name: Upload Artifacts + id: upload-artifacts uses: actions/upload-artifact@v6 with: name: metrics.json path: metrics.json - name: Generate GitHub Summary + id: generate-github-summary run: | echo -e "# Summary\n" >> $GITHUB_STEP_SUMMARY poetry run -- nox -s project:report -- --format markdown >> $GITHUB_STEP_SUMMARY From 8bc6b6d8faa39b8309a3f17a8ecbc276cb2a2481 Mon Sep 17 00:00:00 2001 From: Ariel Schulz Date: Wed, 11 Feb 2026 09:51:49 +0100 Subject: [PATCH 13/22] Update slow-checks and pull out test-python-environment --- .github/workflows/merge-gate.yml | 8 +++ .github/workflows/slow-checks.yml | 59 ++++--------------- .github/workflows/test-python-environment.yml | 55 +++++++++++++++++ .../github/workflows/slow-checks.yml | 17 +++--- 4 files changed, 84 insertions(+), 55 deletions(-) create mode 100644 .github/workflows/test-python-environment.yml diff --git a/.github/workflows/merge-gate.yml b/.github/workflows/merge-gate.yml index 46753e3e5..24594d683 100644 --- a/.github/workflows/merge-gate.yml +++ b/.github/workflows/merge-gate.yml @@ -32,6 +32,14 @@ jobs: permissions: contents: read + test-python-environment: + name: Test python-environment Action + needs: + - approve-run-slow-tests + uses: ./.github/workflows/test-python-environment.yml + permissions: + contents: read + # This job ensures inputs have been executed successfully. allow-merge: name: Allow Merge diff --git a/.github/workflows/slow-checks.yml b/.github/workflows/slow-checks.yml index 4707eaf26..0ed2e1b98 100644 --- a/.github/workflows/slow-checks.yml +++ b/.github/workflows/slow-checks.yml @@ -5,13 +5,13 @@ on: jobs: build-matrix: - name: Generate Build Matrix + name: Build Matrix uses: ./.github/workflows/matrix-all.yml permissions: contents: read - tests: - name: Integration-Tests (Python-${{ matrix.python-version }}, Exasol-${{ matrix.exasol-version}}) + run-integration-tests: + name: Run Integration Tests (Python-${{ matrix.python-version }}, Exasol-${{ matrix.exasol-version}}) needs: - build-matrix runs-on: "ubuntu-24.04" @@ -22,63 +22,26 @@ jobs: strategy: fail-fast: false matrix: ${{ fromJson(needs.build-matrix.outputs.matrix) }} - steps: - - name: SCM Checkout + - name: Check out Repository + id: check-out-repository uses: actions/checkout@v6 - - name: Setup Python & Poetry Environment - uses: ./.github/actions/python-environment + - name: Set up Python & Poetry Environment + id: set-up-python-and-poetry-environment + uses: exasol/python-toolbox/.github/actions/python-environment@v5 with: python-version: ${{ matrix.python-version }} poetry-version: "2.3.0" - - name: Run Tests and Collect Coverage + - name: Run Integration Tests + id: run-integration-tests run: poetry run -- nox -s test:integration -- --coverage --db-version ${{ matrix.exasol-version }} - name: Upload Artifacts + id: upload-artifacts uses: actions/upload-artifact@v6 with: name: coverage-python${{ matrix.python-version }}-exasol${{ matrix.exasol-version }}-slow path: .coverage include-hidden-files: true - - - verify-poetry-installation: - needs: - - build-matrix - # This Job verifies if pipx installation is successful on each of the - # selected GitHub Runners. - strategy: - fail-fast: false - matrix: - runner: - - ubuntu-24.04 - - ubuntu-22.04 - - int-linux-x64-4core-gpu-t4-ubuntu24.04-1 - - int-linux-x64-4core-ubuntu24.04-1 - - int-linux-x64-2core-ubuntu24.04-1 - python-version: ${{ fromJson(needs.build-matrix.outputs.matrix).python-version }} - name: Install Pipx on ${{ matrix.runner }} (Python-${{ matrix.python-version }}) - runs-on: - labels: ${{ matrix.runner }} - - steps: - - name: SCM Checkout - uses: actions/checkout@v6 - - - name: Set up Python & Poetry Environment - uses: ./.github/actions/python-environment - with: - python-version: "${{ matrix.python-version }}" - poetry-version: "2.3.0" - - - name: Poetry version - run: poetry --version - - - name: Validate Python version - run: | - poetry run which python - poetry run python --version - poetry env list - poetry run python --version | grep "${{ matrix.python-version }}" diff --git a/.github/workflows/test-python-environment.yml b/.github/workflows/test-python-environment.yml new file mode 100644 index 000000000..a011bebfa --- /dev/null +++ b/.github/workflows/test-python-environment.yml @@ -0,0 +1,55 @@ +# This workflow verifies if the python-environment Action is successful on each +# of the selected GitHub Runners. + +name: Test python-environment Action + +on: + workflow_call: + +jobs: + build-matrix: + name: Build Matrix + uses: ./.github/workflows/matrix-all.yml + permissions: + contents: read + + verify-poetry-installation: + needs: + - build-matrix + strategy: + fail-fast: false + matrix: + runner: + - ubuntu-24.04 + - ubuntu-22.04 + - int-linux-x64-4core-gpu-t4-ubuntu24.04-1 + - int-linux-x64-4core-ubuntu24.04-1 + - int-linux-x64-2core-ubuntu24.04-1 + python-version: ${{ fromJson(needs.build-matrix.outputs.matrix).python-version }} + name: Install Pipx on ${{ matrix.runner }} (Python-${{ matrix.python-version }}) + runs-on: + labels: ${{ matrix.runner }} + + steps: + - name: Check out Repository + id: check-out-repository + uses: actions/checkout@v6 + + - name: Set up Python & Poetry Environment + id: set-up-python-and-poetry-environment + uses: ./.github/actions/python-environment + with: + python-version: "${{ matrix.python-version }}" + poetry-version: "2.3.0" + + - name: Check Poetry Version + id: check-poetry-version + run: poetry --version + + - name: Validate Python Version + id: validate-python-version + run: | + poetry run which python + poetry run python --version + poetry env list + poetry run python --version | grep "${{ matrix.python-version }}" diff --git a/exasol/toolbox/templates/github/workflows/slow-checks.yml b/exasol/toolbox/templates/github/workflows/slow-checks.yml index c58d358f1..4e9a96a8e 100644 --- a/exasol/toolbox/templates/github/workflows/slow-checks.yml +++ b/exasol/toolbox/templates/github/workflows/slow-checks.yml @@ -5,13 +5,13 @@ on: jobs: build-matrix: - name: Generate Build Matrix + name: Build Matrix uses: ./.github/workflows/matrix-all.yml permissions: contents: read - tests: - name: Integration-Tests (Python-${{ matrix.python-version }}, Exasol-${{ matrix.exasol-version}}) + run-integration-tests: + name: Run Integration Tests (Python-${{ matrix.python-version }}, Exasol-${{ matrix.exasol-version}}) needs: - build-matrix runs-on: "(( os_version ))" @@ -22,21 +22,24 @@ jobs: strategy: fail-fast: false matrix: ${{ fromJson(needs.build-matrix.outputs.matrix) }} - steps: - - name: SCM Checkout + - name: Check out Repository + id: check-out-repository uses: actions/checkout@v6 - - name: Setup Python & Poetry Environment + - name: Set up Python & Poetry Environment + id: set-up-python-and-poetry-environment uses: exasol/python-toolbox/.github/actions/python-environment@v5 with: python-version: ${{ matrix.python-version }} poetry-version: "(( dependency_manager_version ))" - - name: Run Tests and Collect Coverage + - name: Run Integration Tests + id: run-integration-tests run: poetry run -- nox -s test:integration -- --coverage --db-version ${{ matrix.exasol-version }} - name: Upload Artifacts + id: upload-artifacts uses: actions/upload-artifact@v6 with: name: coverage-python${{ matrix.python-version }}-exasol${{ matrix.exasol-version }}-slow From 179e35c23aa9d4a6b43938003d302b508ccc06ff Mon Sep 17 00:00:00 2001 From: Ariel Schulz Date: Wed, 11 Feb 2026 09:54:56 +0100 Subject: [PATCH 14/22] Fix cd as those were jobs & not steps --- .github/workflows/cd.yml | 3 --- exasol/toolbox/templates/github/workflows/cd.yml | 3 --- 2 files changed, 6 deletions(-) diff --git a/.github/workflows/cd.yml b/.github/workflows/cd.yml index 0633d44c8..23176904f 100644 --- a/.github/workflows/cd.yml +++ b/.github/workflows/cd.yml @@ -9,7 +9,6 @@ on: jobs: check-release-tag: name: Check Release Tag - id: check-release-tag uses: ./.github/workflows/check-release-tag.yml permissions: contents: read @@ -18,7 +17,6 @@ jobs: needs: - check-release-tag name: Build & Publish - id: build-and-publish uses: ./.github/workflows/build-and-publish.yml permissions: contents: write @@ -29,7 +27,6 @@ jobs: needs: - build-and-publish name: Publish Documentation - id: publish-documentation uses: ./.github/workflows/gh-pages.yml permissions: contents: read diff --git a/exasol/toolbox/templates/github/workflows/cd.yml b/exasol/toolbox/templates/github/workflows/cd.yml index ce4fafaf3..a1004456d 100644 --- a/exasol/toolbox/templates/github/workflows/cd.yml +++ b/exasol/toolbox/templates/github/workflows/cd.yml @@ -9,7 +9,6 @@ on: jobs: check-release-tag: name: Check Release Tag - id: check-release-tag uses: ./.github/workflows/check-release-tag.yml permissions: contents: read @@ -18,7 +17,6 @@ jobs: needs: - check-release-tag name: Build & Publish - id: build-and-publish uses: ./.github/workflows/build-and-publish.yml permissions: contents: write @@ -29,7 +27,6 @@ jobs: needs: - build-and-publish name: Publish Documentation - id: publish-documentation uses: ./.github/workflows/gh-pages.yml permissions: contents: read From e0fef474a99eeac03c5b7e053ce746b09fbe1363 Mon Sep 17 00:00:00 2001 From: Ariel Schulz Date: Wed, 11 Feb 2026 09:56:03 +0100 Subject: [PATCH 15/22] Update missed id in check-release-tag --- .github/workflows/check-release-tag.yml | 1 + exasol/toolbox/templates/github/workflows/check-release-tag.yml | 1 + 2 files changed, 2 insertions(+) diff --git a/.github/workflows/check-release-tag.yml b/.github/workflows/check-release-tag.yml index 80c618bb7..f03dba1fb 100644 --- a/.github/workflows/check-release-tag.yml +++ b/.github/workflows/check-release-tag.yml @@ -23,5 +23,6 @@ jobs: poetry-version: "2.3.0" - name: Check Release Tag + id: check-release-tag # make sure the pushed/created tag matched the project version run: "[[ `poetry version --short` == ${{ github.ref_name }} ]]" diff --git a/exasol/toolbox/templates/github/workflows/check-release-tag.yml b/exasol/toolbox/templates/github/workflows/check-release-tag.yml index 7efdcc1d9..15251d300 100644 --- a/exasol/toolbox/templates/github/workflows/check-release-tag.yml +++ b/exasol/toolbox/templates/github/workflows/check-release-tag.yml @@ -23,5 +23,6 @@ jobs: poetry-version: "(( dependency_manager_version ))" - name: Check Release Tag + id: check-release-tag # make sure the pushed/created tag matched the project version run: "[[ `poetry version --short` == ${{ github.ref_name }} ]]" From ba9f37305cbb7bd1b6f3eda5cbe4c65f1838b8a8 Mon Sep 17 00:00:00 2001 From: Ariel Schulz Date: Wed, 11 Feb 2026 09:57:52 +0100 Subject: [PATCH 16/22] update missed id in checks --- .github/workflows/checks.yml | 3 ++- exasol/toolbox/templates/github/workflows/checks.yml | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml index 7be5f0e25..3ccc4476f 100644 --- a/.github/workflows/checks.yml +++ b/.github/workflows/checks.yml @@ -68,7 +68,8 @@ jobs: python-version: "3.10" poetry-version: "2.3.0" - - name: Run changelog update check + - name: Check Changelog was Updated + id: check-changelog-was-updated run: poetry run -- nox -s changelog:updated lint-code: diff --git a/exasol/toolbox/templates/github/workflows/checks.yml b/exasol/toolbox/templates/github/workflows/checks.yml index 03e4d564d..5d44275a3 100644 --- a/exasol/toolbox/templates/github/workflows/checks.yml +++ b/exasol/toolbox/templates/github/workflows/checks.yml @@ -68,7 +68,8 @@ jobs: python-version: "(( minimum_python_version ))" poetry-version: "(( dependency_manager_version ))" - - name: Run changelog update check + - name: Check Changelog was Updated + id: check-changelog-was-updated run: poetry run -- nox -s changelog:updated lint-code: From 1a9dd9de12368e1a6ec0b588bb3a48696492fe52 Mon Sep 17 00:00:00 2001 From: Ariel Schulz Date: Wed, 11 Feb 2026 09:58:46 +0100 Subject: [PATCH 17/22] Updated missed id in matrix-exasol --- .github/workflows/matrix-exasol.yml | 3 ++- exasol/toolbox/templates/github/workflows/matrix-exasol.yml | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/matrix-exasol.yml b/.github/workflows/matrix-exasol.yml index 046d2182a..ea28203d9 100644 --- a/.github/workflows/matrix-exasol.yml +++ b/.github/workflows/matrix-exasol.yml @@ -17,7 +17,8 @@ jobs: id: check-out-repository uses: actions/checkout@v6 - - name: Setup Python & Poetry Environment + - name: Set up Python & Poetry Environment + id: set-up-python-and-poetry-environment uses: exasol/python-toolbox/.github/actions/python-environment@v5 with: python-version: "3.10" diff --git a/exasol/toolbox/templates/github/workflows/matrix-exasol.yml b/exasol/toolbox/templates/github/workflows/matrix-exasol.yml index 74efd495a..6acda392d 100644 --- a/exasol/toolbox/templates/github/workflows/matrix-exasol.yml +++ b/exasol/toolbox/templates/github/workflows/matrix-exasol.yml @@ -17,7 +17,8 @@ jobs: id: check-out-repository uses: actions/checkout@v6 - - name: Setup Python & Poetry Environment + - name: Set up Python & Poetry Environment + id: set-up-python-and-poetry-environment uses: exasol/python-toolbox/.github/actions/python-environment@v5 with: python-version: "(( minimum_python_version ))" From fa9e49c717671ae12e1320cf53c3298b510d5742 Mon Sep 17 00:00:00 2001 From: Ariel Schulz Date: Wed, 11 Feb 2026 09:59:30 +0100 Subject: [PATCH 18/22] Fix typo in report --- .github/workflows/report.yml | 2 +- exasol/toolbox/templates/github/workflows/report.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/report.yml b/.github/workflows/report.yml index 1e1410356..3a2a2b4ab 100644 --- a/.github/workflows/report.yml +++ b/.github/workflows/report.yml @@ -13,7 +13,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: - name: Check out Repository - id: check-out-repositor + id: check-out-repository uses: actions/checkout@v6 with: fetch-depth: 0 diff --git a/exasol/toolbox/templates/github/workflows/report.yml b/exasol/toolbox/templates/github/workflows/report.yml index 11bb61209..ea3310013 100644 --- a/exasol/toolbox/templates/github/workflows/report.yml +++ b/exasol/toolbox/templates/github/workflows/report.yml @@ -13,7 +13,7 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: - name: Check out Repository - id: check-out-repositor + id: check-out-repository uses: actions/checkout@v6 with: fetch-depth: 0 From f32d8cb31523f40859ad3dc7b8d69401f66bdac7 Mon Sep 17 00:00:00 2001 From: Ariel Schulz Date: Wed, 11 Feb 2026 10:00:13 +0100 Subject: [PATCH 19/22] Add changelog entry --- doc/changes/unreleased.md | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/changes/unreleased.md b/doc/changes/unreleased.md index d77d8d526..4dfeba0af 100644 --- a/doc/changes/unreleased.md +++ b/doc/changes/unreleased.md @@ -9,3 +9,4 @@ ## Refactoring * #664: Removed deprecation warning for projects to switch over to BaseConfig +* #637: Added id to workflow templates & synchronized on naming conventions From bd2eebf0361e44178c9adee49568da0a859e13c5 Mon Sep 17 00:00:00 2001 From: Ariel Schulz Date: Wed, 11 Feb 2026 11:37:56 +0100 Subject: [PATCH 20/22] Add test python-environment action to merge requirement --- .github/workflows/merge-gate.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/merge-gate.yml b/.github/workflows/merge-gate.yml index 24594d683..56941c029 100644 --- a/.github/workflows/merge-gate.yml +++ b/.github/workflows/merge-gate.yml @@ -50,6 +50,7 @@ jobs: needs: - run-fast-checks - run-slow-checks + - test-python-environment # Each job requires a step, so we added this dummy step. steps: - name: Approve From 5873c3d7ff9765eedfd3907a1fda5363db508705 Mon Sep 17 00:00:00 2001 From: Ariel Schulz Date: Wed, 11 Feb 2026 11:38:39 +0100 Subject: [PATCH 21/22] Outputs needed to be updated to changed job name --- .github/workflows/matrix-all.yml | 2 +- .github/workflows/matrix-exasol.yml | 2 +- .github/workflows/matrix-python.yml | 2 +- exasol/toolbox/templates/github/workflows/matrix-all.yml | 2 +- exasol/toolbox/templates/github/workflows/matrix-exasol.yml | 2 +- exasol/toolbox/templates/github/workflows/matrix-python.yml | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/matrix-all.yml b/.github/workflows/matrix-all.yml index 3fd834051..a9ffbb63f 100644 --- a/.github/workflows/matrix-all.yml +++ b/.github/workflows/matrix-all.yml @@ -5,7 +5,7 @@ on: outputs: matrix: description: "Generates the all versions build matrix" - value: ${{ jobs.all_versions.outputs.matrix }} + value: ${{ jobs.set-matrix-all.outputs.matrix }} jobs: set-matrix-all: diff --git a/.github/workflows/matrix-exasol.yml b/.github/workflows/matrix-exasol.yml index ea28203d9..2b9d33df2 100644 --- a/.github/workflows/matrix-exasol.yml +++ b/.github/workflows/matrix-exasol.yml @@ -5,7 +5,7 @@ on: outputs: matrix: description: "Generates the exasol version build matrix" - value: ${{ jobs.exasol_versions.outputs.matrix }} + value: ${{ jobs.set-matrix-exasol.outputs.matrix }} jobs: set-matrix-exasol: diff --git a/.github/workflows/matrix-python.yml b/.github/workflows/matrix-python.yml index c04f2b40d..2a377bca2 100644 --- a/.github/workflows/matrix-python.yml +++ b/.github/workflows/matrix-python.yml @@ -5,7 +5,7 @@ on: outputs: matrix: description: "Generates the python version build matrix" - value: ${{ jobs.python_versions.outputs.matrix }} + value: ${{ jobs.set-matrix-python.outputs.matrix }} jobs: set-matrix-python: diff --git a/exasol/toolbox/templates/github/workflows/matrix-all.yml b/exasol/toolbox/templates/github/workflows/matrix-all.yml index 37ab5e5cd..cd8653d40 100644 --- a/exasol/toolbox/templates/github/workflows/matrix-all.yml +++ b/exasol/toolbox/templates/github/workflows/matrix-all.yml @@ -5,7 +5,7 @@ on: outputs: matrix: description: "Generates the all versions build matrix" - value: ${{ jobs.all_versions.outputs.matrix }} + value: ${{ jobs.set-matrix-all.outputs.matrix }} jobs: set-matrix-all: diff --git a/exasol/toolbox/templates/github/workflows/matrix-exasol.yml b/exasol/toolbox/templates/github/workflows/matrix-exasol.yml index 6acda392d..42c0ee4b6 100644 --- a/exasol/toolbox/templates/github/workflows/matrix-exasol.yml +++ b/exasol/toolbox/templates/github/workflows/matrix-exasol.yml @@ -5,7 +5,7 @@ on: outputs: matrix: description: "Generates the exasol version build matrix" - value: ${{ jobs.exasol_versions.outputs.matrix }} + value: ${{ jobs.set-matrix-exasol.outputs.matrix }} jobs: set-matrix-exasol: diff --git a/exasol/toolbox/templates/github/workflows/matrix-python.yml b/exasol/toolbox/templates/github/workflows/matrix-python.yml index 126bde5c5..92b374152 100644 --- a/exasol/toolbox/templates/github/workflows/matrix-python.yml +++ b/exasol/toolbox/templates/github/workflows/matrix-python.yml @@ -5,7 +5,7 @@ on: outputs: matrix: description: "Generates the python version build matrix" - value: ${{ jobs.python_versions.outputs.matrix }} + value: ${{ jobs.set-matrix-python.outputs.matrix }} jobs: set-matrix-python: From a4c671cc8e4d246b342d29a2ad37da099ef8bc6e Mon Sep 17 00:00:00 2001 From: Ariel Schulz Date: Wed, 11 Feb 2026 13:05:30 +0100 Subject: [PATCH 22/22] Update name to match convention --- .github/workflows/test-python-environment.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test-python-environment.yml b/.github/workflows/test-python-environment.yml index a011bebfa..81c57b144 100644 --- a/.github/workflows/test-python-environment.yml +++ b/.github/workflows/test-python-environment.yml @@ -13,7 +13,7 @@ jobs: permissions: contents: read - verify-poetry-installation: + verify-poetry-setup: needs: - build-matrix strategy: @@ -22,14 +22,14 @@ jobs: runner: - ubuntu-24.04 - ubuntu-22.04 + - ubuntu-24.04-arm - int-linux-x64-4core-gpu-t4-ubuntu24.04-1 - int-linux-x64-4core-ubuntu24.04-1 - int-linux-x64-2core-ubuntu24.04-1 python-version: ${{ fromJson(needs.build-matrix.outputs.matrix).python-version }} - name: Install Pipx on ${{ matrix.runner }} (Python-${{ matrix.python-version }}) + name: Verify Poetry Setup for ${{ matrix.runner }} (Python-${{ matrix.python-version }}) runs-on: labels: ${{ matrix.runner }} - steps: - name: Check out Repository id: check-out-repository