goose
goose copied to clipboard
automate more of the release process
This automates release branching using PRs. It uses github actions to create PRs that, on merge, create release tags. It also includes a check on these PRs so that, when targeting main (for a minor release) we check that each change exists in main's history (has been cherry-picked).
The process looks like this:
flowchart TD
A[Weekly Schedule] --> B[Create Minor Release PR<br/>based on main]
C[Manual Trigger] --> B
D[Release PR Merged] --> E[Create Release Tag]
E --> F[Create New Patch Release PR<br/>based on new release tag]
B --> G{PR Status?}
F --> H{PR Status?}
G -->|Closed| I[No Action]
G -->|Merged| D
H -->|Closed| J[No Action]
H -->|Merged| E
style J fill:#ffcdd2
style A fill:#e1f5fe
style C fill:#e1f5fe
style D fill:#c8e6c9
style I fill:#ffcdd2
style J fill:#ffcdd2