This document describes the initial GitHGub actions in the repo. They’re written by someone new to GitHub, so improvements are always welcome.
The approach to signing in build-app.yaml
is based on this description.
There are 5 secrets required, those are what were used when creating the signing keystore (in this case done from within Android Studio with Generate Signed App Bundle or APK):
keystore.jks
!keystore.jks
which was the end result of the aboveThe google-services.json
file is not super secret so long as the server is configured appropriately, but we protect it just in case. The approach taken is the same as for the keystore:
google-services.json
generated from the firebase console. This was generated on linux with cat google-services.json | openssl enc -A -base64
which generates bas64 without line breaks.google-services.json
There’s a mock google-services.json
file checked in to GitHub to allow builds without access to secrets to complete.
Authenticate for talking to the Firebase servers is done using google-github-actions/auth@v2. We pass in the credentials_json
, see this page for details of what this is and how to format it. (To remove line breaks run cat soundscape-android-CREDENTIALS-NAME.json | tr -d '\012\015'
).
credentials_json
.The run-test.yaml
action bumps the version number, committing the change back into the repo. The repo has branch protection enabled which requires a pull request for any commits. We pass in a token as described here to allow the pull request to be bypassed:
run-tests.yaml
is the action which is run on each Pull Request. It runs several layers of tests:
build-app.yaml
is the action used to build a release and is manually triggered. It’s steps are:
app/build.gradle.kts
and commit it back to the repo with a tag containing the version numbergoogle-service.json
and keystore.jks
from the secrets.jekyll-gh-pages.yml
is the action to build the GitHub Pages documentation site (including this page!). It’s triggered whenever there is a changes submitted within the /docs
directory. To work it needs GitHub Pages to be enabled on the repository and for them to be configured with the Source being GitHub Actions.