A pull request builds an APK somebody can install - #132
Merged
Merged
Conversation
main is protected by a required status check named "Debug APK", and nothing in this repository produced a check by that name. release.yml builds Android, but it runs on tags, so it never ran for a pull request. So every pull request sat BLOCKED for ever, waiting on a check that could not arrive, and the only way to merge anything was an administrator overriding the rule by hand. That means the protection was not protecting anything; it was a step somebody learned to skip. A rule that can only ever be bypassed teaches people to bypass rules. Either the check exists or the requirement should not, and of the two, a build on every pull request is worth having anyway. A handset app is not reviewable by reading it: a gesture that fights a tap, a sheet that opens under a thumb, a screen unreadable in a kitchen, are only visible on a phone. A branch that produces an installable build is one somebody can try on the shop floor before it reaches a waiter mid-service. Unsigned on purpose. Signing keys belong to a tag and a release, and a debug APK cannot be updated in place by a signed one later because Android treats a different signature as a different app. It is named so nobody mistakes one for the other. Node 22 and Java 21 kept in step with release.yml deliberately: a pull request that builds on a Node the release cannot use is a green tick that means nothing. It runs the same build-apk.js the release runs, without --release, so a pull request cannot pass through a build the release does not perform.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
mainis protected by a required status check named "Debug APK", and nothing in this repository produces a check by that name.release.ymlbuilds Android, but it runs on tags, so it has never run for a pull request.The effect: every pull request sits BLOCKED for ever, waiting on a check that cannot arrive, and the only way to merge anything is an administrator overriding the rule by hand. That is what happened to #127 through #131 today, and to this one until it merges.
So the protection was not protecting anything. It was a step somebody learned to skip, and a rule that can only ever be bypassed teaches people to bypass rules.
Either the check exists or the requirement should not. Of the two, a build on every pull request is worth having anyway.
Why it is worth having
A handset app is not reviewable by reading it. Half of what goes wrong here is only visible on a phone: a gesture that fights a tap, a sheet that opens under a thumb, a screen unreadable in a kitchen. A branch that produces an installable build is a branch somebody can try on the shop floor before it reaches a waiter mid-service.
Tonight's sold-out long press is exactly that shape. It is 18 tests green and nobody has held it.
Choices
release.yml. A pull request that builds on a Node the release cannot use is a green tick that means nothing. Both numbers already carry comments inrelease.ymlexplaining which failure they were bought with.build-apk.jsthe release runs, without--release, so a pull request cannot pass through a build the release does not perform.packages: ''for setup-android, because thetoolspackage no longer exists in the SDK repository and asking for it kills the job before any of our code runs.After this
This PR will itself be blocked, because the check only starts existing once it is merged. It needs one last admin merge, and then merges here are normal.
If you would rather not spend the build minutes, the alternative is to remove "Debug APK" from the protection rule instead. Either is fine; what is not fine is leaving a required check that nothing can satisfy.