diff --git a/.github/workflows/automerge-transifex-app-prs.yml b/.github/workflows/automerge-transifex-app-prs.yml index 5df24a43cb5..67c08bd209c 100644 --- a/.github/workflows/automerge-transifex-app-prs.yml +++ b/.github/workflows/automerge-transifex-app-prs.yml @@ -15,15 +15,32 @@ jobs: uses: actions/checkout@v3 with: fetch-depth: 0 - - - name: Auto-merge pull request + - name: merge pull request + uses: nick-fields/retry@v2 + id: mergePR env: # secrets can't be used in job conditionals, so we set them to env here TRANSIFEX_APP_ACTOR_NAME: "${{ secrets.TRANSIFEX_APP_ACTOR_NAME }}" TRANSIFEX_APP_ACTOR_ID: "${{ secrets.TRANSIFEX_APP_ACTOR_ID }}" # This token requires Write access to the openedx-translations repo GITHUB_TOKEN: ${{ secrets.EDX_TRANSIFEX_BOT_GITHUB_TOKEN }} + PR_NUMBER: ${{ github.event.number }} if: "${{ github.actor == env.TRANSIFEX_APP_ACTOR_NAME && github.actor_id == env.TRANSIFEX_APP_ACTOR_ID }}" - run: | - # Add the pull request to the merge queue with --rebase commit strategy - gh pr merge ${{ github.head_ref }} --rebase --auto + with: + retry_wait_seconds: 180 + max_attempts: 5 + timeout_minutes: 15 + retry_on: error + command: | + # Attempt to merge the PR + gh pr merge ${{ github.head_ref }} --rebase --auto + + MERGE_DATE="$(gh pr view "$PR_NUMBER" --json mergedAt --jq '.mergedAt')" + + if [ -n "$MERGE_DATE" ]; then + echo "Success: PR merged at '$MERGE_DATE'" + exit 0 + else + echo "PR not merged yet, retrying via 'nick-fields/retry'..." + exit 1 + fi