# This contains the workflow definitions that allow users to test backports # to the release branch using comments on issues. # # /cherry-pick <...> # # This comment will attempt to cherry-pick the given commits to the latest # release branch (release/Y.x) and if successful, push the result to a branch # on github. # # /branch // # # This comment will create a pull request from to the latest release # branch. name: Issue Release Workflow permissions: contents: read on: issue_comment: types: - created - edited issues: types: - opened env: COMMENT_BODY: ${{ github.event.action == 'opened' && github.event.issue.body || github.event.comment.body }} jobs: backport-commits: name: Backport Commits runs-on: ubuntu-latest if: >- (github.repository == 'llvm/llvm-project') && !startswith(github.event.comment.body, '') && contains(github.event.action == 'opened' && github.event.issue.body || github.event.comment.body, '/cherry-pick') steps: - name: Fetch LLVM sources uses: actions/checkout@v3 with: repository: llvm/llvm-project # GitHub stores the token used for checkout and uses it for pushes # too, but we want to use a different token for pushing, so we need # to disable persist-credentials here. persist-credentials: false fetch-depth: 0 - name: Setup Environment run: | pip install -r ./llvm/utils/git/requirements.txt ./llvm/utils/git/github-automation.py --token ${{ github.token }} setup-llvmbot-git - name: Backport Commits run: | printf "$COMMENT_BODY" | ./llvm/utils/git/github-automation.py \ --repo $GITHUB_REPOSITORY \ --token ${{ secrets.RELEASE_WORKFLOW_PUSH_SECRET }} \ release-workflow \ --issue-number ${{ github.event.issue.number }} \ --phab-token ${{ secrets.RELEASE_WORKFLOW_PHAB_TOKEN }} \ auto create-pull-request: name: Create Pull Request runs-on: ubuntu-latest if: >- (github.repository == 'llvm/llvm-project') && !startswith(github.event.comment.body, '') && contains(github.event.comment.body, '/branch') steps: - name: Fetch LLVM sources uses: actions/checkout@v3 with: persist-credentials: false - name: Setup Environment run: | pip install -r ./llvm/utils/git/requirements.txt - name: Create Pull Request run: | printf "$COMMENT_BODY" | ./llvm/utils/git/github-automation.py \ --repo $GITHUB_REPOSITORY \ --token ${{ secrets.RELEASE_WORKFLOW_PUSH_SECRET }} \ release-workflow \ --issue-number ${{ github.event.issue.number }} \ --phab-token ${{ secrets.RELEASE_WORKFLOW_PHAB_TOKEN }} \ auto