-
-
Notifications
You must be signed in to change notification settings - Fork 7.8k
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
CI: Auto upload macOS/Linux releases to github #3351
Conversation
As with nightlies, these'd be unsigned (including the game capture DLLs). As we know, the macOS signing process is a lot of waiting and a bit of user input (purposefully not designed to be automated by Apple). I don't know the Windows signing well enough, but I assume that's best done manually too (after building?). It's certainly possible to package the Windows build into an installer automatically, but that also depends on Jim's custom folder structure pre-package. I personally think the PPA would be the best place to start automating on the CI, especially nightlies. That process is (from what I understand) pretty lengthy. |
b8f5250
to
773e657
Compare
Signing for macOS can be fully automated if we feel comfortable uploading our macOS developer keys to CI as a secret (AES-encrypted BASE64-string that is decrypted with a key stored as another secret). I've implemented this once for obs-websocket: https://github.com/PatTheMav/obs-websocket/blob/a479f529af1e5bf4214d39cec36fad6e6f101a14/.github/workflows/tag_release.yml#L395 On obs-deps I added it as a wholly separate step that always requires on the other build processes to finish successful and of course only trigger when a commit is tagged. I think that uploading the different release assets should be contained in that job and not added to the normal build jobs (also avoids having to check all those requirements for every event that's not a tag). We might need to codesign all binaries on macOS even for nightlies anyway (requirement for Apple Silicon binaries on Big Sur) and notarization can be done on the final |
We used to do this. See the old macOS build/package/deploy scripts. |
62d459f
to
a8057b8
Compare
I've finally got it working properly. |
44909db
to
ce40ce3
Compare
ee5ee4d
to
0f3ba17
Compare
I've currently simplified this to only upload Mac releases, as it is the only OS with the full build process in the Git workflow. Windows and Linux can be done at a different time when their builds are more automated. |
24f09ab
to
8225d67
Compare
It is updated now to create the release in draft mode. |
There are some issues with this. First issue is that the file names are not going to be the desired filenames. For example, the 26.1.2 macOS release name was Another issue dodgepong pointed out is just wanting to get all three versions released at the same time so things are synchronized. |
Reopened because the cmake rewrite is now merged. |
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.
Just a quick review. @PatTheMav ?
I would like to see the checksums being generated and added to the release (see here: https://github.com/obsproject/obs-plugintemplate/blob/077615678bc8513ed34d9e3fd290abe56822615e/.github/workflows/main.yml#L349). |
I've have now added checksum generation. |
Looks good to me. |
66b0a43
to
7b270f9
Compare
Needs #6241 to be merged first, so marked this as draft for now. |
Updated to include Linux flatpak and deb |
Now that #6241 has been merged, I'll need to see an example of this in action with current git before approving/merging. |
When a tag is released, the workflow will automatically create a release and upload the artifacts.
This has been added with 96a48e8 |
Description
This automatically uploads releases when a new tag is published.
Motivation and Context
The release process needs to automated.
How Has This Been Tested?
Tested with CI on fork.
Types of changes
Checklist: