-
-
Notifications
You must be signed in to change notification settings - Fork 2.5k
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
Build & Sign Automation #8192
Build & Sign Automation #8192
Conversation
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.
I think once the workflow has been dispatched once, we could use gh
with the --ref
argument to run on a specific branch. But certainly it would be easier to trigger this from the web.
Do we have any options aside from the workflow dispatch?
packageFlavor: | ||
description: Package flavor | ||
required: true | ||
default: "foss" |
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.
The default should be full
, ideally we want all features to be included by default.
description: Release Type | ||
required: true | ||
default: "debug" | ||
signingKey: |
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.
To be on the safe side, you might want to use add-mask
on the signingKey, so it isn't inadvertently exposed.
description: key password | ||
required: true | ||
keyStorePassword: | ||
description: key store password |
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.
Same here
Actually, workflow_dispatch may work out. I misunderstood the docs before: |
This actually builds and signs. Need to test workflow_dispatch against the beta branch, it can be done apparently. The workflow file just needs to exist on the branch in question. |
a07fb61
to
7b16bfd
Compare
0732088
to
7c24bc5
Compare
7c24bc5
to
41524d2
Compare
Latest run on fork repo using a branch named "TB_BETA_8.0": https://github.com/jfx2006/thunderbird-android-ci/actions/runs/11195559719 I've set up the different environments necessary for doing a beta release as well. It's semi-scripted using the GitHub CLI - I'll get that cleaned up and file a PR this week so creating the release branch environments will be easier. VersionName & VersionCode bumps and Play Store upload are next up. |
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.
I'm going to approve this now and we'll see how well it works to build and sign the release.
strategy: | ||
matrix: | ||
include: "${{ fromJSON(needs.dump_config.outputs.matrixInclude) }}" | ||
environment: ${{ needs.dump_config.outputs.appName }}_${{ needs.dump_config.outputs.releaseType }}_${{ matrix.packageFlavor }} |
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.
Shouldn't we use ${{ needs.get_environment.outputs.releaseEnv }}
here and depend on get_environment as well?
Lint and build is done, I'm going to go ahead and merge as tests shouldn't be affected by this CI and previous commits have succeeded. |
token: ${{ steps.app-token.outputs.token }} | ||
target_commitish: ${{ github.sha }} | ||
tag_name: ${{ env.TAG_NAME }} | ||
fail_on_unmatched_files: true |
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.
Please add draft: true
so the release notes can be added by a human and then the release is published.
Now the release emails I receive have no notes, please fix this 😢
Build and signing automation.
Currently, there is a flaw in that it's set to be run on a "workflow_dispatch" trigger. That only works with the primary branch. A different trigger will be needed to use a beta or release branch.**
Requirements:
These are non-sensitive variables that configure the different builds needed. It is named (currently) based on an input to the workflow dispatch. That won't work probably, so something else is needed.
This is a JSON string used to create the jobs matrix. For example, for Thunderbird beta, the (YAML) value would be:
bundleFullBeta
andassembleFossBeta
.An "upload" secret environment and a "signing" secret environment are needed. Currently the environment names are based on the appName, releaseType, and packageFlavor. So
app-thunderbird_beta_full
which would have the upload signing configuration for Thunderbird Beta set up. This could be improved.The secrets themselves are from https://github.com/noriban/sign-android-release: