mirror of
https://github.com/pytorch/pytorch.git
synced 2025-10-20 21:14:14 +08:00
Pull Request resolved: https://github.com/pytorch/pytorch/pull/158720 Approved by: https://github.com/Skylion007
109 lines
4.2 KiB
YAML
109 lines
4.2 KiB
YAML
name: Validate and merge PR
|
|
|
|
on:
|
|
repository_dispatch:
|
|
types: [try-merge]
|
|
|
|
jobs:
|
|
do_merge:
|
|
name: try_merge_pr_${{ github.event.client_payload.pr_num }}
|
|
runs-on: linux.24_04.4x
|
|
environment: mergebot
|
|
permissions:
|
|
id-token: write
|
|
env:
|
|
GH_RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
|
|
steps:
|
|
- name: Checkout repo
|
|
id: checkout
|
|
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
|
with:
|
|
fetch-depth: 0
|
|
token: ${{ secrets.MERGEBOT_TOKEN }}
|
|
|
|
- name: Setup Python
|
|
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
|
|
with:
|
|
python-version: '3.9'
|
|
check-latest: false
|
|
cache: pip
|
|
architecture: x64
|
|
- run: pip install pyyaml==6.0.2
|
|
|
|
- name: Setup committer id
|
|
run: |
|
|
git config --global user.email "pytorchmergebot@users.noreply.github.com"
|
|
git config --global user.name "PyTorch MergeBot"
|
|
- name: Merge PR
|
|
shell: bash
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.MERGEBOT_TOKEN }}
|
|
PR_NUM: ${{ github.event.client_payload.pr_num }}
|
|
FORCE: ${{ github.event.client_payload.force}}
|
|
COMMENT_ID: ${{ github.event.client_payload.comment_id }}
|
|
REBASE: ${{ github.event.client_payload.rebase }}
|
|
IGNORE_CURRENT: ${{ github.event.client_payload.ignore_current }}
|
|
DRCI_BOT_KEY: ${{ secrets.DRCI_BOT_KEY }}
|
|
GITHUB_RUN_ID: ${{ github.run_id }}
|
|
run: |
|
|
set -x
|
|
if [ -n "${REBASE}" ]; then
|
|
# attempt to rebase, if it fails then comment on the PR that it failed
|
|
if ! python3 .github/scripts/tryrebase.py "${PR_NUM}" --branch "${REBASE}"; then
|
|
python3 .github/scripts/comment_on_pr.py "${PR_NUM}" "merge"
|
|
exit 0
|
|
fi
|
|
git checkout main
|
|
git fetch -p
|
|
# give github some time between the push and start workflows so that Github's messages
|
|
# on the PR appear in chronological order (timing issues can shuffle them around)
|
|
sleep 60
|
|
fi
|
|
if [ -n "${FORCE}" ]; then
|
|
if [ -n "${COMMENT_ID}" ]; then
|
|
python3 .github/scripts/trymerge.py --force --comment-id "${COMMENT_ID}" "${PR_NUM}"
|
|
else
|
|
python3 .github/scripts/trymerge.py --force "${PR_NUM}"
|
|
fi
|
|
elif [ -n "${IGNORE_CURRENT}" ]; then
|
|
if [ -n "${COMMENT_ID}" ]; then
|
|
python3 .github/scripts/trymerge.py --ignore-current --comment-id "${COMMENT_ID}" "${PR_NUM}"
|
|
else
|
|
python3 .github/scripts/trymerge.py --ignore-current "${PR_NUM}"
|
|
fi
|
|
elif [ -n "${COMMENT_ID}" ]; then
|
|
python3 .github/scripts/trymerge.py --comment-id "${COMMENT_ID}" "${PR_NUM}"
|
|
else
|
|
python3 .github/scripts/trymerge.py "${PR_NUM}"
|
|
fi
|
|
- name: Comment on Canceled
|
|
if: ${{ cancelled() && steps.checkout.outcome == 'success' }}
|
|
continue-on-error: true
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.MERGEBOT_TOKEN }}
|
|
PR_NUM: ${{ github.event.client_payload.pr_num }}
|
|
run: |
|
|
set -x
|
|
python3 .github/scripts/comment_on_pr.py "${PR_NUM}" "merge"
|
|
|
|
- name: configure aws credentials
|
|
uses: aws-actions/configure-aws-credentials@ececac1a45f3b08a01d2dd070d28d111c5fe6722 # v4.1.0
|
|
continue-on-error: true
|
|
with:
|
|
role-to-assume: arn:aws:iam::308535385114:role/upload_to_ossci_raw_job_status
|
|
aws-region: us-east-1
|
|
|
|
- name: Upload merge record to s3
|
|
if: always()
|
|
continue-on-error: true
|
|
uses: seemethere/upload-artifact-s3@baba72d0712b404f646cebe0730933554ebce96a # v5.1.0
|
|
with:
|
|
s3-bucket: ossci-raw-job-status
|
|
s3-prefix: merges/${{ github.repository }}/${{ github.event.client_payload.pr_num }}/${{ github.event.client_payload.comment_id }}/${{ github.run_id }}
|
|
path: merge_record.json
|
|
|
|
# We want newer merge commands to supersede old ones
|
|
concurrency:
|
|
group: try-merge-${{ github.event.client_payload.pr_num }}
|
|
cancel-in-progress: true
|