-
Notifications
You must be signed in to change notification settings - Fork 102
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Release Automation #289
Release Automation #289
Conversation
8513b03
to
981f402
Compare
abfc5fa
to
7feaf9a
Compare
34fcf48
to
44df244
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not a thorough review, just addressing what sticks out the most for now.
3f92114
to
8ef59c1
Compare
Spent the afternoon refactoring this. |
308de4c
to
e2065ca
Compare
2d7ea1a
to
a6c97c0
Compare
7bf7ab5
to
7701946
Compare
7701946
to
258ceea
Compare
d4bc2f6
to
4093180
Compare
39b1a83
to
21f582c
Compare
21f582c
to
d052f59
Compare
A bunch of changes since I last updated this PR.
|
81c851c
to
b08cdf2
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Everything looks good to land modulo comments. I hope this is my last review here. We can keep improving it for a long time, but this PR has been in the oven for way too long already. Great work!
Remaining comments resolved. There's currently an issue with macOS builds due to this issue, but the fix for that was merged and it should be deployed to the runner pool soon, which shouldn't require editing the workflow at all. |
A lot of trial-and-error went into this, but here it is.
General steps in this:
v*.*.*[-alpha/-rc/-etc]
branch, wait for theRelease Builds
job to finish, download the artifacts on the job page inActions
(near the bottom of the page) (or use the API), as well as the build logs, verify them.refs/tags/v*.*.*[-alpha/-rc/-etc]
).Most of what's present is already done in the CI pipeline, but using different machine files to release a more optimized build, as well as extra steps for packaging. There's a little bit of duplication between CI and Release, but it's easier to read and maintain than trying to write a bunch of conditionals inside a single
.yaml
file to do both CI and release builds.I've also made it so it produces
.sig
and.sha256
files for each one of the releases, and added some Python scripting to help that along.Here's what it looks like in action: https://github.com/StarWitch/taisei/releases/tag/v1.3.50 (ignore the
v1.3.50
, it's just for testing)Post-Merge Steps
GPG_PRIVATE_KEY
andGPG_PASSPHRASE
toSettings -> Secrets
inside the main Taisei project so the pipeline can generate.sig
files. These files are hidden in normal pipeline use and I've made sure to fork our version ofghaction-import-gpg
at taisei-project/ghaction-import-gpg.