40 lines
919 B
Bash
Executable File
40 lines
919 B
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -exuo pipefail
|
|
|
|
merge_commit_sha=$(jq -r '.pull_request.merge_commit_sha' "$GITHUB_EVENT_PATH")
|
|
pull_request_id=$(jq -r '.pull_request.number' "$GITHUB_EVENT_PATH")
|
|
pr_shortcode="elastic/elasticsearch-js#$pull_request_id"
|
|
|
|
# generate patch file
|
|
cd "$GITHUB_WORKSPACE/stack"
|
|
git format-patch -1 --stdout "$merge_commit_sha" > /tmp/patch.diff
|
|
|
|
# apply patch file
|
|
cd "$GITHUB_WORKSPACE/serverless"
|
|
git checkout -b "apply-patch-$pull_request_id"
|
|
git am -C1 --reject /tmp/patch.diff || git am --quit
|
|
|
|
# generate PR body comment
|
|
comment="Patch applied from $pr_shortcode"
|
|
|
|
# enumerate rejected patches in PR comment
|
|
has_rejects='false'
|
|
for f in ./**/*.rej; do
|
|
has_rejects='true'
|
|
comment="$comment
|
|
|
|
## Rejected patch \`$f\` must be resolved:
|
|
|
|
\`\`\`diff
|
|
$(cat "$f")
|
|
\`\`\`
|
|
"
|
|
done
|
|
|
|
# send data to output parameters
|
|
{
|
|
echo "PR_BODY='$comment'"
|
|
echo "PR_DRAFT=$has_rejects"
|
|
} >> "$GITHUB_OUTPUT"
|