android.yml: a red Android lane no longer publishes the server image (#5419)
server-image ran under always(), so a failed core check or APK build still
dispatched ci.yml. Run 8839 published :<sha> for 0ecdbfe while its APK lane
(8835) was red. Rule 177: nothing publishes on red. With always() dropped,
the dispatch needs rust and build to succeed. A skipped decide still skips
it, as before.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -324,7 +324,7 @@ jobs:
|
|||||||
server-image:
|
server-image:
|
||||||
name: Build the server image
|
name: Build the server image
|
||||||
needs: [decide, rust, build]
|
needs: [decide, rust, build]
|
||||||
if: always() && needs.decide.outputs.build == 'true' && (github.ref == 'refs/heads/dev' || github.ref == 'refs/heads/main')
|
if: needs.decide.outputs.build == 'true' && (github.ref == 'refs/heads/dev' || github.ref == 'refs/heads/main')
|
||||||
runs-on: flutter-ci
|
runs-on: flutter-ci
|
||||||
container:
|
container:
|
||||||
# The image the dispatch has always run in, so its curl is a known quantity.
|
# The image the dispatch has always run in, so its curl is a known quantity.
|
||||||
@@ -337,15 +337,15 @@ jobs:
|
|||||||
# push that touches the Android app (its `gate` job) and waits to be called
|
# push that touches the Android app (its `gate` job) and waits to be called
|
||||||
# from here — that is the other half of this.
|
# from here — that is the other half of this.
|
||||||
#
|
#
|
||||||
# `always()`: a FAILED Android build — or failed core checks, which skip the
|
# No `always()`: a red core check or APK build means no image for this
|
||||||
# build job entirely — must still let the server image through. There is no
|
# commit (rule 177, #5419). This used to run regardless, on the reasoning that
|
||||||
# new client in that case, so it bakes in the previous one, which is exactly
|
# a broken Android lane shouldn't block server delivery, and the image would
|
||||||
# right — the alternative is a broken Android lane silently blocking server
|
# bake in the previous client. Run 8839 is what that meant: `:<sha>` published
|
||||||
# delivery. Its own job for that reason: a step inside `build` never runs
|
# for 0ecdbfe while its APK lane (8835) was red, holding a client that wasn't
|
||||||
# when `build` is skipped.
|
# from that commit. The previous `:dev` stays where it is; fix forward.
|
||||||
#
|
#
|
||||||
# Not `if: success()` and not skipped on tags either: every ref that builds an
|
# Not skipped on tags: every ref that builds an image needs the call, since
|
||||||
# image needs the call, or nothing builds one at all.
|
# ci.yml stands down on these pushes and nothing else builds one.
|
||||||
- name: Build the server image now the client is published
|
- name: Build the server image now the client is published
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ github.token }}
|
GITHUB_TOKEN: ${{ github.token }}
|
||||||
|
|||||||
Reference in New Issue
Block a user