diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 300e674e30..684d36dec3 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -15,9 +15,9 @@ on: - release - prerelease default: "prerelease" - prerelease_ref: - description: "The ref (branch, tag, or SHA) to checkout and release from (prerelease only)" - required: false + ref: + description: "The ref (branch, tag, or SHA) to checkout and release from" + required: true type: string prerelease_tag: description: "The npm dist-tag for the prerelease (e.g., 'v4-prerelease')" @@ -30,6 +30,21 @@ concurrency: cancel-in-progress: false jobs: + show-release-summary: + name: 📋 Release Summary + runs-on: ubuntu-latest + if: | + github.repository == 'triggerdotdev/trigger.dev' && + github.event_name == 'pull_request' && + github.event.pull_request.merged == true && + github.event.pull_request.head.ref == 'changeset-release/main' + steps: + - name: Show release summary + env: + PR_BODY: ${{ github.event.pull_request.body }} + run: | + echo "$PR_BODY" | sed -n '/^# Releases/,$p' >> $GITHUB_STEP_SUMMARY + release: name: 🚀 Release npm packages runs-on: ubuntu-latest @@ -53,7 +68,15 @@ jobs: uses: actions/checkout@v4 with: fetch-depth: 0 - ref: main + ref: ${{ github.event_name == 'workflow_dispatch' && github.event.inputs.ref || github.sha }} + + - name: Verify ref is on main + if: github.event_name == 'workflow_dispatch' + run: | + if ! git merge-base --is-ancestor ${{ github.event.inputs.ref }} origin/main; then + echo "Error: ref must be an ancestor of main (i.e., already merged)" + exit 1 + fi - name: Setup pnpm uses: pnpm/action-setup@v4 @@ -121,14 +144,7 @@ jobs: uses: actions/checkout@v4 with: fetch-depth: 0 - ref: ${{ github.event.inputs.prerelease_ref }} - - - name: Validate ref is on main - run: | - if ! git merge-base --is-ancestor ${{ github.event.inputs.prerelease_ref }} origin/main; then - echo "Error: ref must be an ancestor of main (i.e., already merged)" - exit 1 - fi + ref: ${{ github.event.inputs.ref }} - name: Setup pnpm uses: pnpm/action-setup@v4