019e0acd51
* [actions] Add github actions to auto cherry-pick prs to release branches * Add README, fix workflow
50 lines
1.9 KiB
YAML
50 lines
1.9 KiB
YAML
name: PostCherryPick
|
|
on:
|
|
pull_request_target:
|
|
types:
|
|
- closed
|
|
branches:
|
|
- '20*'
|
|
|
|
jobs:
|
|
post_cherry_pick:
|
|
if: github.event.pull_request.merged == true && contains(github.event.pull_request.labels.*.name, 'automerge') && github.event.pull_request.head.user.login == 'mssonicbld' && startsWith(github.event.pull_request.title, '[action]')
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Debug
|
|
env:
|
|
GITHUB_CONTEXT: ${{ toJson(github) }}
|
|
run: echo $GITHUB_CONTEXT | jq
|
|
- name: Checkout
|
|
uses: actions/checkout@v3
|
|
with:
|
|
persist-credentials: false
|
|
- name: Main
|
|
env:
|
|
GITHUB_CONTEXT: ${{ toJson(github) }}
|
|
TOKEN: ${{ secrets.TOKEN }}
|
|
run: |
|
|
set -e
|
|
pr_url=$(echo $GITHUB_CONTEXT | jq -r ".event.pull_request._links.html.href")
|
|
pr_id=$(echo $GITHUB_CONTEXT | jq -r ".event.number")
|
|
base_ref=$(echo $GITHUB_CONTEXT | jq -r ".base_ref")
|
|
echo ${TOKEN} | gh auth login --with-token
|
|
title=$(echo $GITHUB_CONTEXT | jq -r ".event.pull_request.title")
|
|
origin_pr_id=$(echo $title | grep -Eo "\[action\] \[PR:[0-9]*\]" | grep -Eo "[0-9]*")
|
|
origin_pr_url=$(echo $pr_url | sed "s/$pr_id/$origin_pr_id/")
|
|
echo =============================
|
|
echo pr_url: $pr_url
|
|
echo pr_id: $pr_id
|
|
echo base_ref: $base_ref
|
|
echo title: $title
|
|
echo origin_pr_id: $origin_pr_id
|
|
echo origin_pr_url: $origin_pr_url
|
|
echo =============================
|
|
# Add label
|
|
if [[ "$origin_pr_id" == "" ]];then
|
|
echo "original PR didn't found."
|
|
exit 1
|
|
fi
|
|
gh pr edit $origin_pr_url --add-label "Included in ${base_ref} Branch"
|
|
gh pr edit $origin_pr_url --remove-label "Created PR to ${base_ref} Branch,Request for ${base_ref} Branch,Approved for ${base_ref} Branch"
|