1
0
mirror of synced 2026-01-06 15:01:04 -05:00

fix: retry translation batch PR creation if we hit a 502 (#23633)

* Fix error on Pull Request creation

Fix https://github.com/github/docs-engineering/issues/1293. This
solution does not really handle the error, it just prevents the script
from stopping, since sometimes we get a timeout error from the load
balancer even though the request was successfully handled by rails.

* Add a nudge to the localization folks when a batch is created

Ever since the translation batches are created and merged automatically
it is difficult to see when they started or finished correctly. Also,
sometimes, docubot automatically closes some pull requests, and at the
time of this writing I don't know the reason.

This change intends to make batches not go unnoticed. We can revert it
later if this becomes too noisy and the process is stable.

* fix: remove ping to docs-localization team from batch PR body

Discussion: https://github.com/github/docs-internal/pull/23633/files#r771896816

* refactor: move report-reset-files into its own step

* refactor: move git push into its own step

* spike: move PR creation into its own script

* feat: annotate createTranslationBatchPullRequest fn

* enhancement: embed nwo#pr format in logger

* fix: import fs directly

* fix: import @actions/github directly

* docs: update annotations in fn block

* build: update step name to be self-documenting

* Retry on 502

* Rename method to reflect its behaviour

* Update codeowners

* Fix comment

* Update .github/actions-scripts/create-translation-batch-pr.js

Co-authored-by: Peter Bengtsson <peterbe@github.com>

* Update .github/actions-scripts/create-translation-batch-pr.js

Co-authored-by: Peter Bengtsson <peterbe@github.com>

* Update .github/actions-scripts/create-translation-batch-pr.js

Co-authored-by: Peter Bengtsson <peterbe@github.com>

* Appease linter and fix script

* Move options to main

* Rename var

* Refactor options

* Check for response

* First try to find and then to create the PR

* Update .github/actions-scripts/create-translation-batch-pr.js

Co-authored-by: Peter Bengtsson <peterbe@github.com>

* Update .github/actions-scripts/create-translation-batch-pr.js

Co-authored-by: Peter Bengtsson <peterbe@github.com>

* Update .github/actions-scripts/create-translation-batch-pr.js

Co-authored-by: Francis <15894826+francisfuzz@users.noreply.github.com>

* Remove unreachable conditional

* Lint

* fix: remove duplicate annotation

Co-authored-by: docubot <67483024+docubot@users.noreply.github.com>
Co-authored-by: Francis <15894826+francisfuzz@users.noreply.github.com>
Co-authored-by: Peter Bengtsson <peterbe@github.com>
This commit is contained in:
Marcelo Jacobus
2022-01-11 20:06:18 -03:00
committed by GitHub
parent 8e25d1e40d
commit cf2603ac01
3 changed files with 156 additions and 12 deletions

View File

@@ -166,26 +166,27 @@ jobs:
script/i18n/report-reset-files.js --report-type=csv --language=${{ matrix.language }} --log-file=/tmp/batch.log > $csvFile
git add -f $csvFile && git commit -m "Check in ${{ matrix.language }} CSV report" || echo "Nothing to commit"
- name: Write the reported files that were reset to /tmp/pr-body.txt
run: script/i18n/report-reset-files.js --report-type=pull-request-body --language=${{ matrix.language }} --log-file=/tmp/batch.log > /tmp/pr-body.txt
- name: Push filtered translations
run: git push origin ${{ steps.set-branch.outputs.BRANCH_NAME }}
- name: Close existing stale batches
uses: lee-dohm/close-matching-issues@e9e43aad2fa6f06a058cedfd8fb975fd93b56d8f
with:
token: ${{ secrets.OCTOMERGER_PAT_WITH_REPO_AND_WORKFLOW_SCOPE }}
query: 'type:pr label:translation-batch-${{ matrix.language }}'
- name: Create Pull Request
- name: Create translation batch pull request
env:
GITHUB_TOKEN: ${{ secrets.DOCUBOT_REPO_PAT }}
# We'll try to create the pull request based on the changes we pushed up in the branch.
# If there are actually no differences between the branch and `main`, we'll delete it.
run: |
script/i18n/report-reset-files.js --report-type=pull-request-body --language=${{ matrix.language }} --log-file=/tmp/batch.log > /tmp/pr-body.txt
git push origin ${{ steps.set-branch.outputs.BRANCH_NAME }}
gh pr create --title "New translation batch for ${{ matrix.language }}" \
--base=main \
--head=${{ steps.set-branch.outputs.BRANCH_NAME }} \
--label "translation-batch-${{ matrix.language }}" \
--label "translation-batch" \
--body-file /tmp/pr-body.txt || git push origin :${{ steps.set-branch.outputs.BRANCH_NAME }}
TITLE: 'New translation batch for ${{ matrix.language }}'
BASE: 'main'
HEAD: ${{ steps.set-branch.outputs.BRANCH_NAME }}
LANGUAGE: ${{ matrix.language }}
BODY_FILE: '/tmp/pr-body.txt'
run: .github/actions-scripts/create-translation-batch-pr.js
- name: Approve PR
if: github.ref_name == 'main'