diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 9511bf29273..4695f9652a4 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -116,6 +116,60 @@ jobs: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} SHOPIFY_CLI_BUILD_REPO: ${{ github.repository }} + - name: Get version + id: version + if: steps.changesets.outputs.hasChangesets == 'false' + run: | + VERSION=$(node -p "require('./packages/cli/package.json').version") + echo "version=$VERSION" >> "$GITHUB_OUTPUT" + echo "Version: $VERSION" + + - name: Create tag + if: steps.changesets.outputs.hasChangesets == 'false' + env: + TAG: ${{ steps.version.outputs.version }} + run: | + set -euo pipefail + if git ls-remote --exit-code --tags origin "$TAG" >/dev/null 2>&1; then + echo "Tag $TAG already exists, skipping" + exit 0 + fi + git tag "$TAG" + git push origin "$TAG" + echo "Created tag $TAG" + + - name: Create stable branch + if: steps.changesets.outputs.hasChangesets == 'false' && github.ref_name == 'main' && endsWith(steps.version.outputs.version, '.0') + env: + VERSION: ${{ steps.version.outputs.version }} + run: | + set -euo pipefail + MINOR=${VERSION%.0} + BRANCH="stable/$MINOR" + if git ls-remote --exit-code --heads origin "$BRANCH" >/dev/null 2>&1; then + echo "Branch $BRANCH already exists, skipping" + exit 0 + fi + git push origin "HEAD:refs/heads/$BRANCH" + echo "Created branch $BRANCH" + + - name: Create GitHub release + if: steps.changesets.outputs.hasChangesets == 'false' + env: + TAG: ${{ steps.version.outputs.version }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + set -euo pipefail + if gh release view "$TAG" >/dev/null 2>&1; then + echo "Release $TAG already exists, skipping" + exit 0 + fi + gh release create "$TAG" \ + --title "$TAG" \ + --notes "" \ + --latest=legacy + echo "Created release $TAG" + # Manual/Cron release job - runs on schedule or manual trigger with tag manual-cron-release: name: Manual & Cron Release