From 6d29bb1b1dec3db2667fe0d5630873cdb79695f8 Mon Sep 17 00:00:00 2001 From: jross Date: Mon, 6 Jul 2026 10:34:40 -0600 Subject: [PATCH] fix(ci): pass release tag to CD_production in manifest mode release-please cut v1.1.1 (tag + published release) but CD (Production) never deployed. The deploy-production job invoked the reusable CD_production workflow (release_created was true), but CD_production's job gate `startsWith(inputs.tag_name, 'v')` skipped it because inputs.tag_name arrived empty. Root cause: release-please-action@v5 in manifest mode exposes the unprefixed `release_created` boolean but only a path-scoped `.--tag_name` output; the unprefixed `tag_name` comes through empty. The job output mapping read the empty unprefixed value. Fall back to the path-scoped `.--tag_name` (and `.--release_created` for symmetry) so the real tag reaches CD_production and the deploy gate passes. Without this, every manifest-mode release silently skips the production deploy. Co-Authored-By: Claude Opus 4.8 --- .github/workflows/release-please.yml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml index 9269a3b1a..0aadf7d5d 100644 --- a/.github/workflows/release-please.yml +++ b/.github/workflows/release-please.yml @@ -15,8 +15,13 @@ jobs: release-please: runs-on: ubuntu-latest outputs: - release_created: ${{ steps.release.outputs.release_created }} - tag_name: ${{ steps.release.outputs.tag_name }} + # In manifest mode, release-please-action exposes the unprefixed + # `release_created` boolean but only a PATH-SCOPED `.--tag_name` (the + # unprefixed `tag_name` comes through empty). Fall back to the path-scoped + # key so the tag reaches CD_production; without it the deploy job's + # `startsWith(inputs.tag_name, 'v')` gate silently skips the release. + release_created: ${{ steps.release.outputs.release_created || steps.release.outputs['.--release_created'] }} + tag_name: ${{ steps.release.outputs.tag_name || steps.release.outputs['.--tag_name'] }} steps: # staging uses its own config/manifest pair: prerelease (rc) versioning, # separate changelog, and its own version state so the rc line never