backport.yml 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. name: backport
  2. on:
  3. pull_request_target:
  4. types: [closed, labeled]
  5. jobs:
  6. backport:
  7. permissions:
  8. contents: write
  9. pull-requests: write
  10. name: Backport Pull Request
  11. if: github.event.pull_request.merged
  12. runs-on: ubuntu-latest
  13. steps:
  14. - uses: actions/checkout@v4
  15. - uses: actions/create-github-app-token@v1
  16. id: app-token
  17. with:
  18. app-id: ${{ vars.BACKPORT_APP }}
  19. private-key: ${{ secrets.BACKPORT_KEY }}
  20. - name: Create backport PR
  21. id: backport
  22. uses: korthout/backport-action@v3
  23. with:
  24. pull_title: "${pull_title}"
  25. label_pattern: "^ci:backport ([^ ]+)$"
  26. github_token: ${{ steps.app-token.outputs.token }}
  27. - name: Create failed backport label
  28. if: ${{ steps.backport.outputs.was_successful == 'false' }}
  29. uses: actions/github-script@v7
  30. with:
  31. script: |
  32. github.rest.issues.addLabels({
  33. issue_number: context.issue.number,
  34. owner: context.repo.owner,
  35. repo: context.repo.repo,
  36. labels: ['needs:backport']
  37. })
  38. - name: Enable automerge
  39. if: ${{ steps.backport.outputs.was_successful == 'true' }}
  40. env:
  41. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  42. run: gh pr merge --rebase --auto ${{ steps.backport.outputs.created_pull_numbers }}