From 534cb6e08551e49b1a0d3ac6e35db6831ac51245 Mon Sep 17 00:00:00 2001 From: Christoph Pirkl Date: Thu, 2 Jul 2026 10:09:12 +0200 Subject: [PATCH 1/5] #909: Let CD extension workflow depend on successful PyPi release --- doc/changes/unreleased.md | 2 ++ exasol/toolbox/templates/github/workflows/cd.yml | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/doc/changes/unreleased.md b/doc/changes/unreleased.md index fb4737052..de0d00cdd 100644 --- a/doc/changes/unreleased.md +++ b/doc/changes/unreleased.md @@ -1,3 +1,5 @@ # Unreleased ## Summary + +* Update `cd.yml` workflow so that `cd-extension.yml` workflow depends on `build-and-publish`. This ensures that the custom release workflow only runs when the PyPi release was successful. diff --git a/exasol/toolbox/templates/github/workflows/cd.yml b/exasol/toolbox/templates/github/workflows/cd.yml index 55fd7ae91..13ab7bf98 100644 --- a/exasol/toolbox/templates/github/workflows/cd.yml +++ b/exasol/toolbox/templates/github/workflows/cd.yml @@ -29,7 +29,7 @@ jobs: name: Extension uses: ./.github/workflows/cd-extension.yml needs: - - check-release-tag + - build-and-publish (% if custom_workflows["cd-extension"].secrets %) secrets: (% for secret_name in custom_workflows["cd-extension"].secrets %) @@ -50,4 +50,4 @@ jobs: contents: read pages: write id-token: write - (% endif %) \ No newline at end of file + (% endif %) From 30a9c479de8d66f6cc6040ddce4847e0744063ed Mon Sep 17 00:00:00 2001 From: Christoph Pirkl Date: Thu, 2 Jul 2026 10:21:20 +0200 Subject: [PATCH 2/5] Update documentation --- doc/user_guide/features/github_workflows/index.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/doc/user_guide/features/github_workflows/index.rst b/doc/user_guide/features/github_workflows/index.rst index 9b3e85b9b..0247b7547 100644 --- a/doc/user_guide/features/github_workflows/index.rst +++ b/doc/user_guide/features/github_workflows/index.rst @@ -171,6 +171,7 @@ and is maintained by the PTB and what is project-specific. * - ``cd-extension.yml`` - Workflow call - This extends the ``cd.yml``. Use it to add project-specific release steps. + Runs after ``build-and-publish.yml`` workflow has finished successfully. * - ``merge-gate-extension.yml`` - Workflow call - This extends the ``merge-gate.yml`` and the ``needs`` criteria of the job @@ -287,6 +288,7 @@ to main. This starts the release process by activating the ``cd.yml`` workflow. %% Dependencies / Waiting (Dotted Lines) check-release-tag -.->|needs| build-and-publish[build-and-publish.yml] + build-and-publish -.->|needs| cd-extension[cd-extension.yml] build-and-publish -.->|needs| gh-pages[gh-pages.yml] .. _automated_activities: From 8e3950193f1cab6fe9093b5d56ac35c450ac28f9 Mon Sep 17 00:00:00 2001 From: Christoph Pirkl Date: Thu, 2 Jul 2026 10:24:59 +0200 Subject: [PATCH 3/5] Add ticket to changelog --- doc/changes/unreleased.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/doc/changes/unreleased.md b/doc/changes/unreleased.md index de0d00cdd..8877f6117 100644 --- a/doc/changes/unreleased.md +++ b/doc/changes/unreleased.md @@ -2,4 +2,6 @@ ## Summary -* Update `cd.yml` workflow so that `cd-extension.yml` workflow depends on `build-and-publish`. This ensures that the custom release workflow only runs when the PyPi release was successful. +## Bug + +* #909: Update `cd.yml` workflow so that `cd-extension.yml` workflow depends on `build-and-publish`. This ensures that the custom release workflow only runs when the PyPi release was successful. From 76ad29f2bdd915bd94421618db343bba0e951bd5 Mon Sep 17 00:00:00 2001 From: Christoph Pirkl Date: Thu, 2 Jul 2026 10:41:04 +0200 Subject: [PATCH 4/5] Fix review finding --- exasol/toolbox/util/workflows/process_template.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exasol/toolbox/util/workflows/process_template.py b/exasol/toolbox/util/workflows/process_template.py index 44257b1f1..2939fccbb 100644 --- a/exasol/toolbox/util/workflows/process_template.py +++ b/exasol/toolbox/util/workflows/process_template.py @@ -118,7 +118,7 @@ def _remove_job_from_needs(self, job_name: str) -> None: needs_without_removed_job = [need for need in needs if need != job_name] if len(needs_without_removed_job) == 0: other_job.pop("needs") - return + continue other_job["needs"] = needs_without_removed_job def _verify_job_exists(self, job_name: str) -> None: From ae0d72689f6177000c32e8ca536b8fe8570f231e Mon Sep 17 00:00:00 2001 From: Christoph Pirkl Date: Thu, 2 Jul 2026 10:42:06 +0200 Subject: [PATCH 5/5] fix review finding --- doc/changes/unreleased.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/changes/unreleased.md b/doc/changes/unreleased.md index 8877f6117..8915db292 100644 --- a/doc/changes/unreleased.md +++ b/doc/changes/unreleased.md @@ -4,4 +4,4 @@ ## Bug -* #909: Update `cd.yml` workflow so that `cd-extension.yml` workflow depends on `build-and-publish`. This ensures that the custom release workflow only runs when the PyPi release was successful. +* #909: Updated `cd.yml` workflow so that `cd-extension.yml` workflow depends on `build-and-publish`. This ensures that the custom release workflow only runs when the PyPi release was successful.