diff --git a/.github/workflows/snapshot-release.yml b/.github/workflows/snapshot-release.yml index c06d2e56..e3154ce1 100644 --- a/.github/workflows/snapshot-release.yml +++ b/.github/workflows/snapshot-release.yml @@ -14,7 +14,7 @@ jobs: if: | github.repository == 'apollographql/apollo-client-nextjs' && ( - github.event_name == 'workflow_dispatch' || + github.event_name == 'workflow_dispatch' || ( github.event.issue.pull_request && ( @@ -33,6 +33,38 @@ jobs: if: github.event_name == 'issue_comment' id: comment-branch + - name: Get sha + if: github.event_name == 'issue_comment' + id: parse-sha + continue-on-error: true + run: | + if [ "${{ steps.comment-branch.outputs.head_owner }}" == "apollographql" ]; then + echo "sha=${{ steps.comment-branch.outputs.head_sha }}" >> "${GITHUB_OUTPUT}" + else + sha_from_comment="$(echo $COMMENT_BODY | tr -s ' ' | cut -d ' ' -f2)" + + if [ $sha_from_comment == "/release:pr" ]; then + exit 1 + else + echo "sha=$sha_from_comment" >> "${GITHUB_OUTPUT}" + fi + fi + env: + COMMENT_BODY: ${{ github.event.comment.body }} + + - name: Comment sha reminder + if: steps.parse-sha.outcome == 'failure' + uses: peter-evans/create-or-update-comment@v2.1.0 + with: + issue-number: ${{ github.event.issue.number }} + body: | + Did you forget to add the sha? Please use `/release:pr ` + + - name: Fail job + if: steps.parse-sha.outcome == 'failure' + run: | + exit 1 + - name: Checkout head ref (comment trigger) if: github.event_name == 'issue_comment' uses: actions/checkout@v4 @@ -40,7 +72,7 @@ jobs: ## specify the owner + repository in order to checkout the fork ## for community PRs repository: ${{ steps.comment-branch.outputs.head_owner }}/${{ steps.comment-branch.outputs.head_repo }} - ref: ${{ steps.comment-branch.outputs.head_ref }} + ref: ${{ steps.parse-sha.outputs.sha }} fetch-depth: 0 - name: Checkout head ref (dispatch trigger)