Skip to content
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 and release pipeline #152

Merged
merged 9 commits into from
Aug 16, 2023
Merged

Build and release pipeline #152

merged 9 commits into from
Aug 16, 2023

Conversation

rtibbles
Copy link
Member

@rtibbles rtibbles commented Aug 12, 2023

This PR finalizes the Github Action to handle:

  • Code signing of assets for development and release builds
  • Proper versioning of assets, independent of action build numbers, to ensure that no matter where the workflow is invoked, it will properly increment the Android Version code - it does this by getting the max version code on the play store and incrementing it by 1
  • Building and uploading an AAB to the Play Store for a release - it will then download a generated Universal APK from the Play Store to be the output APK asset.
  • Adds an additional reusable workflow for rolling out an already uploaded version to the open testing track

For a complete spec of this work, see here: #151

Opening as a draft for now, as I have not had a chance to test a lot of this yet.

One last thing that probably needs to be done, is to do semver comparisons of the versionNames of the releases. This is necessary, as we do not want to release a Kolibri patch/minor release when a newer minor/major release already exists.

Copy link
Member

@jredrejo jredrejo left a comment

Choose a reason for hiding this comment

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

I think I can approve this, not because I'm confident enough that I understand all the changes, but because I understand part of it and I'm convinced @rtibbles did test it. Also, there's not an efficient way of testing it but letting these actions going into develop to run them.

Said that, wouldn't it be great ot have some tutorial/demo of the process in the dev meeting?

p4a_android_project: install-tar p4a_android_distro create-strings needs-version
$(P4A) bootstrap $(ARCH_OPTIONS) --version=$(APK_VERSION) --numeric-version=$(BUILD_NUMBER)
p4a_android_project: install-tar p4a_android_distro create-strings
$(P4A) bootstrap $(ARCH_OPTIONS) --version="None" --numeric-version=1
Copy link
Member

@jredrejo jredrejo Aug 14, 2023

Choose a reason for hiding this comment

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

not sure about this change as I don't know p4a enough. Following the code it looks to me that both version and numeric-version are useless and the apk version is overseed by the version.upgrade file that's built for gradle, but glad to have more information to understand it if that's not corect.

Copy link
Member Author

Choose a reason for hiding this comment

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

Yep, that's precisely it. P4A bakes this information into the build.gradle file during its bootstrapping of the build process, but I wanted to decouple from P4A as much as possible - mostly to make the Java project files stable, rather than continually changing based on P4A's builds (also it changes the build.gradle depending on whether it's a dev or production build, which didn't work well with committing these files to the repo).

@rtibbles
Copy link
Member Author

Have now tested this locally - had to make a few tweaks to ensure proper upload and download, but the 0.16.0b2 was successfully put on the internal testing track on the play store, and the generated universal APK subsequently downloaded.

@rtibbles rtibbles marked this pull request as ready for review August 16, 2023 22:39
@rtibbles rtibbles merged commit a196560 into develop Aug 16, 2023
@rtibbles rtibbles deleted the build_pipeline branch August 16, 2023 22:43
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.

2 participants