Skip to content

Automated signed CI builds - #1769

Draft
UnicornsOnLSD wants to merge 7 commits into
redesignfrom
redesign-signed-ipas
Draft

UnicornsOnLSD wants to merge 7 commits into
redesignfrom
redesign-signed-ipas

Conversation

@UnicornsOnLSD

Copy link
Copy Markdown
Collaborator

This PR adds a new GH Actions step to create signed binaries on a tag. The end goal here is to be able to make Finamp releases autonomously without relying on me to make a signed build manually (to those snooping, this has delayed releases by a staggering amount of time 🫠)

iOS

For iOS, I've mostly copied from the GitHub docs, which conveniently has a section on importing provisioning profiles/certificates for use in runners. I've made a distribution profile for CI, which is all pulled from GH Actions secrets. There were some shenanigans required to use this profile in the build (flutter build ipa --release --export-method app-store doesn't work >:( ), but the result is clean enough and allows the Xcode project to stay in "automatic" mode by default (rather than having its signing settings forced to CI all the time (not that it really matters, you have to mess with it anyway unless you're me)).

Android

Still TODO, initially I was just going to bother with iOS since it's usually the most painful roadblock in getting releases out but we may as well get it done too. Theoretically this'll involve putting my Android signing key into GH Actions, will have a proper look on how to do it properly. From here we could both upload a bundle to Google Play and have a signed APK for those who get Finamp via GitHub Releases.

Future Scope

I've got this set to run on tags for now, but we might be able to set things up to run on every commit to redesign (or the main branch in the future). We'll probably run into issues with build numbers there though, so for now it makes sense to only make signed releases when actually making a release.

env:
if_condition: &integration_if github.event_name == 'workflow_dispatch' ||
(github.event_name == 'push' && github.repository == 'finamp-app/finamp' )
if_condition: &integration_if false

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TODO: revert this

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant