Releasing¶
The following workflow should be followed to create and publish a new Envoy Mobile release.
Prepare for release¶
Before cutting the release, submit and merge a PR with the following changes:
Bump the version in the VERSION file
Provide a brief overview of the release in the version history documentation
Publish release and artifacts¶
After merging the above changes, a new release may be tagged.
Upon tagging the release, jobs automatically kick off on main which:
Creates a GitHub release, along with iOS & Android build artifacts
Publishes the release to Maven & CocoaPods
Publishes the most recent version of the Envoy Mobile docs
Pre-release versioning¶
Pre-releases are published on a weekly basis. The versioning scheme we use is X.Y.Z.{yyyymmdd}
.
For example: January 25, 2020: 0.3.1.20200125
.
GPG Key¶
On 2024-04-20 the GPG key used to sign releases will expire. To extend the key’s expiration date, follow these steps:
Import the key locally:
$ echo $GPG_KEY | base64 --decode > signing-key
$ gpg --passphrase $GPG_PASSPHRASE --batch --import signing-key
$ gpg --list-keys
Follow the instructions here on Dealing with Expired Keys to extend the key and sub key expiration dates.
Re-distribute the new public key:
$ gpg –keyserver keyserver.ubuntu.com –send-keys $KEY_ID
Export the public/private keys, store them in a safe place:
$ gpg -a --export $KEY_ID > envoy.mobile.gpg.public
$ gpg -a --export-secret-keys $KEY_ID > envoy.mobile.gpg.private
Update the GitHub Action GPG_KEY
secret with the Base64 encoded value
of the private key.
$ cat envoy.mobile.gpg.private | base64