diff --git a/.github/workflows/pre-release.yml b/.github/workflows/pre-release.yml index 1ea3f85d..6a26ab76 100644 --- a/.github/workflows/pre-release.yml +++ b/.github/workflows/pre-release.yml @@ -2,12 +2,20 @@ name: Pre-Release (RC) on: workflow_dispatch: # Allows manual triggering from GitHub UI/API + inputs: + branch: + description: 'Branch to create pre-release from (e.g., next, develop)' + required: false + default: 'next' + type: string concurrency: pre-release-${{ github.ref }} jobs: rc: runs-on: ubuntu-latest + # Only allow pre-releases on non-main branches + if: github.ref != 'refs/heads/main' steps: - uses: actions/checkout@v4 with: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3ddb07dc..efb50edf 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -38,26 +38,26 @@ jobs: run: npm ci timeout-minutes: 2 - - name: Exit pre-release mode and clean up + - name: Check pre-release mode run: | - echo "๐Ÿ”„ Ensuring we're not in pre-release mode for main branch..." + echo "๐Ÿ” Checking pre-release mode status..." - # Exit pre-release mode if we're in it - npx changeset pre exit || echo "Not in pre-release mode" - - # Remove pre.json file if it exists (belt and suspenders approach) if [ -f .changeset/pre.json ]; then - echo "๐Ÿงน Removing pre.json file..." - rm -f .changeset/pre.json - fi - - # Verify the file is gone - if [ ! -f .changeset/pre.json ]; then - echo "โœ… pre.json successfully removed" - else - echo "โŒ Failed to remove pre.json" + echo "โŒ ERROR: Main branch is in pre-release mode!" + echo "" + echo "Pre-release mode should only be used on feature branches, not main." + echo "" + echo "To fix this, run the following commands locally:" + echo " npx changeset pre exit" + echo " git add .changeset/pre.json" + echo " git commit -m 'chore: exit pre-release mode'" + echo " git push origin main" + echo "" + echo "Then re-run this workflow." exit 1 fi + + echo "โœ… Not in pre-release mode - proceeding with release" - name: Create Release Pull Request or Publish to npm uses: changesets/action@v1