Condition variables and mutexes #2
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This contains the workflow definitions that allow users to test backports | |
# to the release branch using comments on issues. | |
# | |
# /cherry-pick <commit> <...> | |
# | |
# 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 <owner>/<repo>/<branch> | |
# | |
# This comment will create a pull request from <branch> 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, '<!--IGNORE-->') && | |
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, '<!--IGNORE-->') && | |
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 |