diff --git a/.github/workflows/add-backport-label.yml b/.github/workflows/add-backport-label.yml new file mode 100644 index 000000000..9b04dce14 --- /dev/null +++ b/.github/workflows/add-backport-label.yml @@ -0,0 +1,14 @@ +name: Add Backport Label +on: + pull_request_target: + branches: main + types: opened + +jobs: + add_labels: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions-ecosystem/action-add-labels@v1 + with: + labels: backport 2.x \ No newline at end of file diff --git a/.github/workflows/backport.yml b/.github/workflows/backport.yml new file mode 100644 index 000000000..2463e8782 --- /dev/null +++ b/.github/workflows/backport.yml @@ -0,0 +1,39 @@ +name: Backport +on: + pull_request_target: + types: + - closed + - labeled + +jobs: + backport: + name: Backport + runs-on: ubuntu-latest + # Only react to merged PRs for security reasons. + # See https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#pull_request_target. + if: > + github.event.pull_request.merged + && ( + github.event.action == 'closed' + || ( + github.event.action == 'labeled' + && contains(github.event.label.name, 'backport') + ) + ) + permissions: + contents: write + pull-requests: write + steps: + - name: GitHub App token + id: github_app_token + uses: tibdex/github-app-token@v1 + with: + app_id: ${{ secrets.APP_ID }} + private_key: ${{ secrets.APP_PRIVATE_KEY }} + installation_id: 22958780 + + - name: Backport + uses: VachaShah/backport@v2.2.0 + with: + github_token: ${{ steps.github_app_token.outputs.token }} + head_template: backport/backport-<%= number %>-to-<%= base %> \ No newline at end of file diff --git a/.github/workflows/delete-backport-branch.yml b/.github/workflows/delete-backport-branch.yml new file mode 100644 index 000000000..5881df927 --- /dev/null +++ b/.github/workflows/delete-backport-branch.yml @@ -0,0 +1,15 @@ +name: Delete merged branch of the backport PRs +on: + pull_request: + types: + - closed + +jobs: + delete-branch: + runs-on: ubuntu-latest + if: startsWith(github.event.pull_request.head.ref,'backport/') + steps: + - name: Delete merged branch + uses: SvanBoxel/delete-merged-branch@main + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file