CI: overhaul packaging workflow and mobile release options#677
CI: overhaul packaging workflow and mobile release options#677kevinaboos merged 11 commits intoproject-robius:mainfrom
Conversation
- add per-platform inputs and build matrices - create release once and upload assets via releaseId - add Android/iOS packaging with TestFlight envs - set macOS signing_identity placeholder
kevinaboos
left a comment
There was a problem hiding this comment.
Thanks Tyrese, I appreciate the overhaul of our packaging logic here.
I have one general concern: the code in release.yml is now a lot harder to read (and most importantly, harder for myself and others to maintain) due to lots of custom actions and python scripts interspersed throughout it. When I glance at the code, I cannot clearly understand what it's doing any more.
The older code was quite a bit easier to understand. Similarly, moly-ai's release.yml file is also easy to read — is there any reason why we wouldn't just copy that?
I'm a bit wary of bringing in a dependency on your new makepad-packaging-action since we (the project-robius org) do not have control over that nor the ability to modify it. If you insist on using that, I'd have to do a full audit of that as well. If you'd like to transfer it to the main project-robius org, that would make it easier for us to rely on it (of course you can maintain full ownership rights of it).
|
My ideal is to extract certain frequently rewritten packaging functions and processes for consolidated maintenance. Under normal circumstances, this should streamline the packaging workflow. This including GitHub Releases, iOS and macOS signing, and publish uploads to TestFlight. I shall proceed to modify another version accordingly.
yep, i can transfer it to the main |
|
I have in fact consulted moly-ai's release documentation, which currently supports only a limited number of platforms: Ubuntu 22.04, macOS 14, macOS 13, and Windows 2022. Given that Robrix requires support for multiple CPU architectures, the In fact the dora-studio https://github.com/dora-rs/dora-studio/blob/main/.github/workflows/package.yml is so simply when use the action. In any case, the current Release CI for Robrix is indeed somewhat complex and redundant. I shall look into where further improvements and optimisations can be made. |
That looks really good. Let's keep using the new packaging action, and copy the structure/style of Dora's action. I'd like to avoid all the complexity this PR introduces, especially the inline python scripts. |
|
@tyreseluo btw I noticed that the original CI builds were quite slow and large, especially Android builds because it was building using the default "dev" cargo profile, which generates full debug info and symbols. In PR #729, I introduced a new build profile called |
|
|
The current Robrix release CI file uses version v1. This version will continue to track the latest 1.x.x releases, with the current version being v1.5.3. |
kevinaboos
left a comment
There was a problem hiding this comment.
Excellent work, the release script is really easy to read now! Much appreciated.
What should I do to test this out? We can spin up a new alpha release as a test run.
|
@tyreseluo Oh, I assume we also need to set up various github secrets to let your new makepad-packaging-action succeed for macOS/iOS (the codesigning & notarization steps). Let me know which tokens/secrets/env vars are needed. |
- add macOS signing/App Store Connect env vars for packaging step - enable makepad-packaging-action macOS notarization mapping - merge iOS and iOS+TestFlight into a single package step - switch TestFlight control to upload_to_testflight input
|
oh, i forgot that, you can see these below: Required for all release jobs:
Desktop release setup:
APPLE_CERTIFICATE Important behavior:
Mobile release setup (iOS):
If uploading to TestFlight:
Recommended secret preparation:
|
SummaryFor the time being, you only need to add these:
But i think we can consider packaging linux/windows/android for test alpha version first to check this action. |
|
Thanks for the details! Supposedly we have access to the GOSIM account, I just need to set it up and grab the certificates. I'll try that out next week when Edward is back in town, as he's the one who manages that. |
PR Content
Use makepad-packaging-action to streamline the current makepad release CI workflow for easier centralized management.