From 82beed06f4fc5d96932349502b50eef10a65e540 Mon Sep 17 00:00:00 2001 From: AztecBot <49558828+AztecBot@users.noreply.github.com> Date: Wed, 25 Mar 2026 08:45:53 +0000 Subject: [PATCH] fix: deploy-staging-public waits for any semver tag instead of release-please version MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary Since we've stopped using release-please, the `deploy-staging-public` workflow was broken — it read the version from `.release-please-manifest.json` and waited for a tag matching that exact version. This PR removes the release-please manifest dependency and instead: - Polls for **any valid semver tag** at HEAD using `ci3/semver check` - If multiple semver tags exist, picks the highest using `ci3/semver sort` ## Changes The updated workflow is in `.github-new/workflows/deploy-staging-public.yml` and needs to be moved to `.github/workflows/deploy-staging-public.yml` before merging. - Removed the "Read version from manifest" step entirely - Replaced the tag-matching grep with `ci3/semver check` validation - Uses `ci3/semver sort` to pick the highest tag when multiple exist ClaudeBox log: https://claudebox.work/s/43c486478ab3e16b?run=1 Co-authored-by: Alex Gherghisan --- .github/workflows/deploy-staging-public.yml | 29 ++++++++++----------- 1 file changed, 14 insertions(+), 15 deletions(-) diff --git a/.github/workflows/deploy-staging-public.yml b/.github/workflows/deploy-staging-public.yml index 5c521e6c0e7e..e26a2538b650 100644 --- a/.github/workflows/deploy-staging-public.yml +++ b/.github/workflows/deploy-staging-public.yml @@ -26,28 +26,27 @@ jobs: token: ${{ secrets.AZTEC_BOT_GITHUB_TOKEN }} fetch-depth: 0 - - name: Read version from manifest - id: manifest - run: | - VERSION=$(jq -r '."."' .release-please-manifest.json) - echo "version=$VERSION" - echo "version=$VERSION" >> $GITHUB_OUTPUT - - - name: Poll for tag at HEAD + - name: Poll for semver tag at HEAD id: poll-tag run: | - # wait for tag to be pushed (either RC or stable release) - VERSION="${{ steps.manifest.outputs.version }}" HEAD_SHA=$(git rev-parse HEAD) MAX_ATTEMPTS=60 - echo "Looking for tag matching v${VERSION} or v${VERSION}-rc.* at HEAD ($HEAD_SHA)" + echo "Looking for any semver tag at HEAD ($HEAD_SHA)" for i in $(seq 1 $MAX_ATTEMPTS); do git fetch --tags --force - TAG=$(git tag --points-at HEAD | grep -E "^v${VERSION}(-rc\.[0-9]+)?$" | sort -V | tail -n 1 || true) + # Collect all valid semver tags pointing at HEAD + SEMVER_TAGS=() + for t in $(git tag --points-at HEAD); do + if ci3/semver check "$t"; then + SEMVER_TAGS+=("$t") + fi + done - if [ -n "$TAG" ]; then + # If we found valid semver tags, pick the highest + if [ ${#SEMVER_TAGS[@]} -gt 0 ]; then + TAG=$(ci3/semver sort "${SEMVER_TAGS[@]}" | tail -n 1) echo "Found tag: $TAG" SEMVER="${TAG#v}" echo "tag=$TAG" >> $GITHUB_OUTPUT @@ -55,11 +54,11 @@ jobs: exit 0 fi - echo "Attempt $i/$MAX_ATTEMPTS: No matching tag yet, waiting 10s..." + echo "Attempt $i/$MAX_ATTEMPTS: No semver tag yet, waiting 10s..." sleep 10 done - echo "Error: No tag found for v${VERSION} at HEAD after 10 minutes" + echo "Error: No semver tag found at HEAD after 10 minutes" exit 1 wait-for-ci3: