From 5af78cd6281f8dfbdb38f71a9f6e299c6f5ddd2a Mon Sep 17 00:00:00 2001 From: Joe Martin Date: Tue, 2 Jun 2026 17:17:17 -0700 Subject: [PATCH 1/3] ci(test): delete stale test-release bundles before artifact cleanup Promoted release bundles lock their artifacts in dev-local repos. The cleanup step used jf rt delete with || true, silently swallowing 409s and leaving the paths locked for the next run. Add a step that deletes all versions of test-release in the test project first, so the artifact deletes below it succeed cleanly. Also fix the stale jf rbdell command in the expanded-integration example comment; the correct CLI v2 syntax is release-bundle-delete-local. --- .../workflows/example_expanded-integration.yaml | 2 +- .../test_deploy-artifacts-integration.yaml | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/.github/workflows/example_expanded-integration.yaml b/.github/workflows/example_expanded-integration.yaml index 7cef65ec..4a98dc7d 100644 --- a/.github/workflows/example_expanded-integration.yaml +++ b/.github/workflows/example_expanded-integration.yaml @@ -28,7 +28,7 @@ jobs: # Manual dispatches should not take arguments. # here we use a file (VERSION.example) to set the test version that will be used. # Since this action actually produces an immutable release bundle you must remove it or change the version - # to remove the test bundle use the command `jf rbdell test-release --project test 1.2.3` + # to remove the test bundle use the command `jf release-bundle-delete-local test-release 1.2.9 --project=test` # In a real CI/CD pipeline you could trigger on version tag or commit also. Here we use the file so we can show the behaviour on demand. extract-version: runs-on: ubuntu-latest diff --git a/.github/workflows/test_deploy-artifacts-integration.yaml b/.github/workflows/test_deploy-artifacts-integration.yaml index b5610e53..88b31509 100644 --- a/.github/workflows/test_deploy-artifacts-integration.yaml +++ b/.github/workflows/test_deploy-artifacts-integration.yaml @@ -320,6 +320,21 @@ jobs: # The fixture script creates deb, rpm, jar, nupkg, snupkg, npm, and generic # artifacts. Even though we only verify npm now, the deploy uploads everything. + - name: Cleanup release bundles locking test artifacts + if: always() + run: | + # Promoted bundles lock their artifacts and block re-deployment to the same + # paths. Delete all versions of test-release before wiping the repos so the + # artifact deletes below don't silently 409. + versions=$(jf release-bundle-search versions test-release \ + --project=test --format=json 2>/dev/null \ + || echo '{"release_bundles":[]}') + echo "$versions" | jq -r '.release_bundles[].release_bundle_version' \ + | while read -r v; do + echo "Deleting bundle: test-release $v" + jf release-bundle-delete-local test-release "$v" --project=test --quiet || true + done + - name: Cleanup all test artifacts if: always() run: | From 7c1db330d0cd28f0a213f32efb0de14851c983d2 Mon Sep 17 00:00:00 2001 From: Joe Martin Date: Tue, 2 Jun 2026 17:25:22 -0700 Subject: [PATCH 2/3] ci(hygiene): only require Jira for feat and fix types Drop ci, refactor, and docs from types-requiring-jira. Those types cover infra tweaks, internal restructuring, and doc updates that do not warrant a Jira ticket. feat and fix remain gated since they represent user-visible changes and bug reports respectively. --- .github/workflows/reusable_pr-hygiene.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/reusable_pr-hygiene.yml b/.github/workflows/reusable_pr-hygiene.yml index 39a8facf..b0421054 100644 --- a/.github/workflows/reusable_pr-hygiene.yml +++ b/.github/workflows/reusable_pr-hygiene.yml @@ -23,7 +23,7 @@ on: types-requiring-jira: required: false type: string - default: feat, fix, docs, ci, refactor + default: feat, fix description: > Comma-separated list of conventional commit types that require a JIRA ticket in the PR title. Types not in this list skip JIRA validation. From 7de052c510f7f435a6dca89243afdcc4edde81c7 Mon Sep 17 00:00:00 2001 From: "Joe M." Date: Tue, 2 Jun 2026 17:30:25 -0700 Subject: [PATCH 3/3] docs: rename cleanup steps in workflow file --- .github/workflows/test_deploy-artifacts-integration.yaml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test_deploy-artifacts-integration.yaml b/.github/workflows/test_deploy-artifacts-integration.yaml index 88b31509..80abbadc 100644 --- a/.github/workflows/test_deploy-artifacts-integration.yaml +++ b/.github/workflows/test_deploy-artifacts-integration.yaml @@ -318,9 +318,8 @@ jobs: # --- cleanup (always runs) --- # The fixture script creates deb, rpm, jar, nupkg, snupkg, npm, and generic - # artifacts. Even though we only verify npm now, the deploy uploads everything. - - name: Cleanup release bundles locking test artifacts + - name: Cleanup test release bundles if: always() run: | # Promoted bundles lock their artifacts and block re-deployment to the same @@ -335,7 +334,7 @@ jobs: jf release-bundle-delete-local test-release "$v" --project=test --quiet || true done - - name: Cleanup all test artifacts + - name: Cleanup test artifacts if: always() run: | echo "Cleaning up all test artifacts from JFrog..."