From 9a65da3e78bd92934db2759d3083cbf2791c5e67 Mon Sep 17 00:00:00 2001 From: cliffhall Date: Wed, 17 Sep 2025 11:44:40 -0400 Subject: [PATCH 1/5] * In .github/workflows/release.yml - in create-release job condition - check for all combinations of publish results that should lead to a release creation - npm = success / pypi = skipped - npm = skipped / pypi = success - npm = success / pypi = success --- .github/workflows/release.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 64178c3ce8..26f3e4641b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -193,7 +193,12 @@ jobs: create-release: needs: [update-packages, create-metadata, publish-pypi, publish-npm] - if: needs.update-packages.outputs.changes_made == 'true' + if: | + needs.update-packages.outputs.changes_made == 'true' && + (always() && + (needs.publish-pypi.result == 'success' || needs.publish-pypi.result == 'skipped') && + (needs.publish-pypi.result == 'skipped' || needs.publish-npm.result == 'success') && + (needs.publish-pypi.result == 'success' || needs.publish-npm.result == 'success')) runs-on: ubuntu-latest environment: release permissions: From 7061c367c57420166f2b00701b14f8bd02cea102 Mon Sep 17 00:00:00 2001 From: cliffhall Date: Wed, 17 Sep 2025 13:27:44 -0400 Subject: [PATCH 2/5] * In .github/workflows/release.yml - in create-release job condition - check for all combinations of publish results that should lead to a release creation - npm = success / pypi = skipped - npm = skipped / pypi = success - npm = success / pypi = success --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 26f3e4641b..bc8dc3d19f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -196,7 +196,7 @@ jobs: if: | needs.update-packages.outputs.changes_made == 'true' && (always() && - (needs.publish-pypi.result == 'success' || needs.publish-pypi.result == 'skipped') && + (needs.publish-pypi.result == 'success' || needs.publish-npm.result == 'skipped') && (needs.publish-pypi.result == 'skipped' || needs.publish-npm.result == 'success') && (needs.publish-pypi.result == 'success' || needs.publish-npm.result == 'success')) runs-on: ubuntu-latest From e5459186188e82ef1c7cc2eeb8a541acc1e0a1dd Mon Sep 17 00:00:00 2001 From: cliffhall Date: Wed, 17 Sep 2025 13:31:29 -0400 Subject: [PATCH 3/5] * In .github/workflows/release.yml - in create-release job condition - check for all combinations of publish results that should lead to a release creation - npm = success / pypi = skipped - npm = skipped / pypi = success - npm = success / pypi = success --- .github/workflows/release.yml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index bc8dc3d19f..d1eba1dc64 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -194,11 +194,10 @@ jobs: create-release: needs: [update-packages, create-metadata, publish-pypi, publish-npm] if: | - needs.update-packages.outputs.changes_made == 'true' && - (always() && - (needs.publish-pypi.result == 'success' || needs.publish-npm.result == 'skipped') && - (needs.publish-pypi.result == 'skipped' || needs.publish-npm.result == 'success') && - (needs.publish-pypi.result == 'success' || needs.publish-npm.result == 'success')) + (needs.update-packages.outputs.changes_made == 'true' && always()) && + ((needs.publish-pypi.result == 'success' && needs.publish-npm.result == 'skipped') || + (needs.publish-pypi.result == 'skipped' && needs.publish-npm.result == 'success') || + (needs.publish-pypi.result == 'success' && needs.publish-npm.result == 'success')) runs-on: ubuntu-latest environment: release permissions: From 20430df0de5139af5e28fdcf267c518fe9c09d75 Mon Sep 17 00:00:00 2001 From: cliffhall Date: Thu, 18 Sep 2025 15:39:00 -0400 Subject: [PATCH 4/5] * In .github/workflows/release.yml - in create-release job condition - simplify condition --- .github/workflows/release.yml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d1eba1dc64..a3189102da 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -194,10 +194,9 @@ jobs: create-release: needs: [update-packages, create-metadata, publish-pypi, publish-npm] if: | - (needs.update-packages.outputs.changes_made == 'true' && always()) && - ((needs.publish-pypi.result == 'success' && needs.publish-npm.result == 'skipped') || - (needs.publish-pypi.result == 'skipped' && needs.publish-npm.result == 'success') || - (needs.publish-pypi.result == 'success' && needs.publish-npm.result == 'success')) + always() && + needs.update-packages.outputs.changes_made == 'true' && + (needs.publish-pypi.result == 'success' || needs.publish-npm.result == 'success') runs-on: ubuntu-latest environment: release permissions: From 888184493cb8d6f2eaeb7ef368b588492ee22c90 Mon Sep 17 00:00:00 2001 From: cliffhall Date: Thu, 18 Sep 2025 15:58:01 -0400 Subject: [PATCH 5/5] * In .github/workflows/release.yml - in create-release job condition - add comments about use of always --- .github/workflows/release.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a3189102da..0186ec86b7 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -194,6 +194,8 @@ jobs: create-release: needs: [update-packages, create-metadata, publish-pypi, publish-npm] if: | + # Always evaluate this condition, even if a dependency failed + # Create a release if changes were made and at least one publish succeeded always() && needs.update-packages.outputs.changes_made == 'true' && (needs.publish-pypi.result == 'success' || needs.publish-npm.result == 'success')