sonic-buildimage/.github/workflows
Liu Shilong 52568ceab0
[action] Update workflow to parse & monitor pending automation PRs. (#16446)
Why I did it
There are many automation PRs pending for PR checker failure issue.
As PR number grows, github api to list prs comes to its limit.
We need to monitor and send alert for these PRs.

Work item tracking
Microsoft ADO (number only): 25064441
How I did it
For auto-cherry pick PRs:
- more than 3 days, comment @author to check
- more than 10 days, stop comment.
- more than 28 days, comment @author PR will be closed
- more than 30 days, close PR

For submodule update HEAD PRs:
- more than 3 days, send alert(submodule PR)

How to verify it
Which release bra
2023-09-07 13:34:34 +08:00
..
automerge_scan.yml [action] Update workflow to parse & monitor pending automation PRs. (#16446) 2023-09-07 13:34:34 +08:00
automerge.yml [action] Update automerge version, change log level and change auto cherry-pick branch name. (#12455) 2022-10-20 13:03:39 +08:00
codeql-analysis.yml [action] Update github actions on trigger and label. (#13542) 2023-01-30 16:57:39 +08:00
label.yml [action] Only add 'automerge' label on master version upgrade PR. (#15112) 2023-05-17 18:09:12 +08:00
pr_cherrypick_poststep.yml [action] Update github actions on trigger and label. (#13542) 2023-01-30 16:57:39 +08:00
pr_cherrypick_prestep.yml [action] Update github workflows about automerge_scan and pr_cherrypick_prestep. (#15090) 2023-05-17 11:06:50 +08:00
README.md [actions] Add auto cherry-pick actions to release branch (#11496) 2022-10-10 16:55:00 +08:00
semgrep.yml [action] Update github actions on trigger and label. (#13542) 2023-01-30 16:57:39 +08:00

Github actions README

This is an introduction about auto-cherry-pick workflow. take 202205 branch for example:

  1. pr_cherrypick_prestep:
graph
Start(Origin PR) --> A{merged?}
A -- NO --> STOP
A -- YES --> A1{Approved<br> for 202205<br> Branch?}
A1 -- NO --> STOP
A1 -- YES --> A2(pr_cherrypick_prestep)
B(pr_cherrypick_prestep)
B --> B1{cherry pick<br>conflict?}
B1 -- YES --> B2(Add tag:<br>Cherry Pick Confclit_202205) --> B3(Add comment:<br>refer author code conflict) --> STOP1(STOP)
B1 -- NO --> B4(Create New PR) -- success --> B5(New PR add tag:<br> automerge) --> B6(New PR add comment:<br>Origin PR link) --> B7(Origin PR add tag:<br>Created PR to 202205 Branch) --> B8(Origin PR add comment:<br>New PR link)
B4 -- fail --> STOP1
  1. automerge:
graph
Start(PR azp finished successfully) --> A{author:<br>mssonicbld?}
A -- NO --> STOP
A -- YES --> B{tag:<br>automerge?} -- YES --> C(Merge PR)
B -- NO --> STOP
  1. pr_cherrypick_poststep:
graph
A(PR is Merged) --> B{tag:<br>automerge?}
B -- YES --> B1{author:<br>mssonicbld?}
B1 -- YES --> B2{"title starts:<br>[action] [PR:123]"}
B2 -- YES --> C(Origin PR remove tag:<br> Created PR to 202205 Branch) --> D(Origin PR add tag:<br> Included in 202205 Branch)
B -- NO --> STOP
B1 -- NO --> STOP
B2 -- NO --> STOP