Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nodejs/node.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorAntoine du Hamel <duhamelantoine1995@gmail.com>2021-01-10 12:04:05 +0300
committerNode.js GitHub Bot <github-bot@iojs.org>2021-06-11 10:59:49 +0300
commit240c8bc190a8e6d389edde172403bd8540077b44 (patch)
tree41a140ab66d922ca9ce43b39f453c569acae6d5a /tools
parent864195bac9dc77d09d2fa36c17644ba10b914130 (diff)
tools: avoid crashing CQ when git push fails
PR-URL: https://github.com/nodejs/node/pull/36861 Reviewed-By: Mary Marchini <oss@mmarchini.me>
Diffstat (limited to 'tools')
-rwxr-xr-xtools/actions/commit-queue.sh43
1 files changed, 25 insertions, 18 deletions
diff --git a/tools/actions/commit-queue.sh b/tools/actions/commit-queue.sh
index 671ead5bdf2..22f306cc36b 100755
--- a/tools/actions/commit-queue.sh
+++ b/tools/actions/commit-queue.sh
@@ -37,6 +37,18 @@ gitHubCurl() {
--header 'content-type: application/json' "$@"
}
+commit_queue_failed() {
+ gitHubCurl "$(labelsUrl "${1}")" POST --data '{"labels": ["'"${COMMIT_QUEUE_FAILED_LABEL}"'"]}'
+
+ # shellcheck disable=SC2154
+ cqurl="${GITHUB_SERVER_URL}/${OWNER}/${REPOSITORY}/actions/runs/${GITHUB_RUN_ID}"
+ jq -n --arg content "<details><summary>Commit Queue failed</summary><pre>$(cat output)</pre><a href='$cqurl'>$cqurl</a></details>" '{body: $content}' > output.json
+ cat output.json
+
+ gitHubCurl "$(commentsUrl "${1}")" POST --data @output.json
+
+ rm output output.json
+}
# TODO(mmarchini): should this be set with whoever added the label for each PR?
git config --local user.email "github-bot@iojs.org"
@@ -64,30 +76,25 @@ for pr in "$@"; do
# TODO(mmarchini): workaround for ncu not returning the expected status code,
# if the "Landed in..." message was not on the output we assume land failed
- if ! tail -n 10 output | grep '. Post "Landed in .*/pull/'"${pr}"; then
- gitHubCurl "$(labelsUrl "$pr")" POST --data '{"labels": ["'"${COMMIT_QUEUE_FAILED_LABEL}"'"]}'
-
- # shellcheck disable=SC2154
- cqurl="${GITHUB_SERVER_URL}/${OWNER}/${REPOSITORY}/actions/runs/${GITHUB_RUN_ID}"
- jq -n --arg content "<details><summary>Commit Queue failed</summary><pre>$(cat output)</pre><a href='$cqurl'>$cqurl</a></details>" '{body: $content}' > output.json
- cat output.json
-
- gitHubCurl "$(commentsUrl "$pr")" POST --data @output.json
-
- rm output output.json
+ if ! grep -q '. Post "Landed in .*/pull/'"${pr}" output; then
+ commit_queue_failed "$pr"
# If `git node land --abort` fails, we're in unknown state. Better to stop
# the script here, current PR was removed from the queue so it shouldn't
# interfere again in the future.
git node land --abort --yes
- else
- rm output
+ continue
+ fi
+
+ commits="$(git rev-parse $UPSTREAM/$DEFAULT_BRANCH)...$(git rev-parse HEAD)"
- commits="$(git rev-parse $UPSTREAM/$DEFAULT_BRANCH)...$(git rev-parse HEAD)"
+ if ! git push $UPSTREAM $DEFAULT_BRANCH >> output 2>&1; then
+ commit_queue_failed "$pr"
+ continue
+ fi
- git push $UPSTREAM $DEFAULT_BRANCH
+ rm output
- gitHubCurl "$(commentsUrl "$pr")" POST --data '{"body": "Landed in '"$commits"'"}'
+ gitHubCurl "$(commentsUrl "$pr")" POST --data '{"body": "Landed in '"$commits"'"}'
- gitHubCurl "$(issueUrl "$pr")" PATCH --data '{"state": "closed"}'
- fi
+ gitHubCurl "$(issueUrl "$pr")" PATCH --data '{"state": "closed"}'
done