Skip to content

Commit

Permalink
Update release instructions
Browse files Browse the repository at this point in the history
  • Loading branch information
evan10s committed Jul 18, 2024
1 parent 1b00a68 commit 8427876
Showing 1 changed file with 9 additions and 35 deletions.
44 changes: 9 additions & 35 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,12 +73,6 @@ is a helpful resource.

Detekt is used for linting Kotlin code. The recommended command to run it is

_(Windows)_
```bash
./gradlew detektAll -PdetektAutoFix=true
```

_(*nix)_
```bash
./gradlew detektAll -PdetektAutoFix=true
```
Expand All @@ -87,7 +81,7 @@ The detektAutoFix parameter will automatically fix simple issues.

### Fastlane

We use Fastlane to automate steps of the Android release process, in combination with Concourse CI.
We use Fastlane to automate steps of the Android release process, in combination with Github Actions.

To install Fastlane, you'll need Ruby with the development kit installed. On Windows, install
the latest 64-bit version of Ruby+Devkit from https://rubyinstaller.org/downloads/.
Expand Down Expand Up @@ -115,44 +109,24 @@ App releases don't have to perfectly coincide with PRs being merged, especially
merged in close proximity. Our Concourse pipeline has jobs to automatically handle building,
signing, and uploading production releases of the app.

1. After you've merged all PRs to be included in the release, ensure the `.update-priority`
file is set correctly according to the table below. Use priority 1 as the default. If you want to
use priority 5, post in #apiary-mobile first.
1. Update priority affects if and how often users receive in-app update prompts to update the
app to the latest version.
2.
1. After you've merged all PRs to be included in the release, open the [Release to Internal Test](https://github.com/RoboJackets/apiary-mobile/actions/workflows/internal-test-release.yml)
Github Actions pipeline.
2. Find the `Run workflow` button. Use the table below to enter a value for the `update_priority`.
Update priority is an integer passed to Google Play, and it determines update nag behavior
(frequency/intensity) in the app.

| Update priority | Description | Examples |
|-----------------|-------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------|
| 1 | Optional update with prompts when the update is first available, then every 8 days. | UI touchups that don't impact functionality, releases with options to opt-in to beta features |
| 3 | Optional update with prompts when the update is first available, then every 4 days. | Medium-priority bug fixes, performance improvements, new features |
| 5 | Required update with immediate prompt and no option to decline. | Crashes/bugs impacting major features, urgent vulnerabilities |

2. Create a new release on `main` using a tag with a name like `v1.0.0`. Use semantic versioning
to determine how to increment the version number.
1. Go to https://github.com/RoboJackets/apiary-mobile/releases
2. Press the **Draft a new release** button.
3. Decide on the new version tag; it **must** start with `v`. In general, you should increment
the previous release's version using [semantic versioning](https://semver.org/) guidelines (most
releases will be a 0.1.0 (minor) or 0.0.1 (patch) increment). Press **Choose a tag**, then enter the
new tag name to create it on publish.
4. Leave **Release title** blank. Instead, press **Generate release notes**. The release title
and description should automatically fill in with the changes since the last release.
1. In general, you shouldn't need to manually set the value of the `Previous tag` field,
unless the release notes seem incorrect.
3. When you publish the release (which creates a new tag), a Concourse job to create a draft Google
Play internal test release will begin shortly.
1. If it doesn't start, a common reason is that it wasn't alphabetically the latest tag, so the
[`tagged-release`](https://concourse.sandbox.aws.robojackets.net/teams/information-technology/pipelines/apiary-mobile/resources/tagged-release)
resource didn't trigger a new build. We can disable old versions of the resource to trigger a new
build.
4. If the Concourse [build-release job](https://concourse.sandbox.aws.robojackets.net/teams/information-technology/pipelines/apiary-mobile/jobs/build-release)
finishes successfully, you'll find a new draft release on the Internal Test track in Google Play.
3. If the build runs successfully, you'll find a new draft release on the Internal Test track in Google Play.
At this point, you should do some small QA efforts to verify the new build. Post in #apiary-mobile
to have some people help you test. Note that access to the internal test track must be granted via
the Google Play Console.
1. Internal testers may need to uninstall the app to see the update if it was recently published.
6. If no issues are found, it's time to release! Promote the build to the Production track in
4. If no issues are found, it's time to release! Promote the build to the Production track in
Google Play, add release notes, and save the release.
7. Google Play typically spends a day or two reviewing the release, then makes it available. In
5. Google Play typically spends a day or two reviewing the release, then makes it available. In
general, expect it to take at least ~24 hours for a production release to be available to users.

0 comments on commit 8427876

Please sign in to comment.