68 lines
2.6 KiB
YAML
68 lines
2.6 KiB
YAML
name: Backport Merged Pull Requests
|
|
|
|
on:
|
|
pull_request_target:
|
|
types: [closed]
|
|
|
|
permissions: {}
|
|
|
|
jobs:
|
|
cherry-pick:
|
|
# Ensures the PR was actually merged AND has the correct backport label
|
|
if: |
|
|
github.event.pull_request.merged == true &&
|
|
contains(github.event.pull_request.labels.*.name, 'cherry-pick')
|
|
|
|
runs-on: ubuntu-slim
|
|
|
|
steps:
|
|
- name: Generate a GitHub App Token
|
|
id: generate-token
|
|
uses: actions/create-github-app-token@64ab729a6294000f5aa4a4bc0b73d1f32bc45510 # v3
|
|
with:
|
|
client-id: ${{ secrets.AURORABOT_APP_ID }}
|
|
private-key: ${{ secrets.AURORABOT_PRIVATE_KEY }}
|
|
repositories: ${{ github.event.repository.name }}
|
|
permission-contents: write
|
|
permission-pull-requests: write
|
|
|
|
- name: Checkout
|
|
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
|
|
with:
|
|
# The backport action needs the creds to be available for pushing the backport PRs
|
|
persist-credentials: true
|
|
# Use the dynamically generated GitHub App token
|
|
token: ${{ steps.generate-token.outputs.token }}
|
|
# Explicitly check out the base branch (the PR is already merged into it).
|
|
# Avoids the default `refs/pull/<PR>/merge` ref, which actions/checkout
|
|
# refuses to check out for fork PRs on pull_request_target events.
|
|
ref: ${{ github.event.pull_request.base.ref }}
|
|
fetch-depth: 0
|
|
|
|
- name: Configure Git Author
|
|
run: |
|
|
git config --global user.name "Aurora-Backport[bot]"
|
|
git config --global user.email "aurora-backport[bot]@users.noreply.github.com"
|
|
|
|
- name: Create Backport Pull Requests
|
|
id: backport
|
|
uses: korthout/backport-action@8560fb503c275d433c56f05a2f64850093baa9f7 # v4.7.0
|
|
with:
|
|
# Use the dynamically generated GitHub App token here too
|
|
github_token: ${{ steps.generate-token.outputs.token }}
|
|
target_branches: ${{ vars.STABLE_BRANCH }}
|
|
add_labels: "backported-to-stable"
|
|
pull_title: '${pull_title} [Backport ${target_branch}]'
|
|
pull_description: |
|
|
This is an automated backport of PR #${pull_number} to `${target_branch}`.
|
|
|
|
**_Please review the changes._**
|
|
|
|
### Original PR Description:
|
|
${pull_description}
|
|
|
|
- name: Fail if backport was unsuccessful
|
|
if: steps.backport.outputs.was_successful == 'false'
|
|
run: |
|
|
echo "::error::Backport PR creation failed (e.g. cherry-pick conflicts). Check the step above for details."
|
|
exit 1
|