Diagnosing why v2026.06.01 shipped without the APK on the release.
Run 118's Attach APK to release step reported success but the release object ended up with zero assets — i.e. the curl exit code was being swallowed and the actual HTTP response was never logged. With ~0.5s total runtime, the upload almost certainly never landed.
This adds set -euxo pipefail, captures the upload HTTP code with curl -w '%{http_code}', and writes the response body to a temp file that gets printed. After merge I'll force-move v2026.06.01 to the new HEAD; the next android.yml run will either succeed visibly OR fail loudly with whatever the upload endpoint actually returned.
Diagnosing why `v2026.06.01` shipped without the APK on the release.
Run 118's `Attach APK to release` step reported success but the release object ended up with zero assets — i.e. the curl exit code was being swallowed and the actual HTTP response was never logged. With ~0.5s total runtime, the upload almost certainly never landed.
This adds `set -euxo pipefail`, captures the upload HTTP code with `curl -w '%{http_code}'`, and writes the response body to a temp file that gets printed. After merge I'll force-move `v2026.06.01` to the new HEAD; the next android.yml run will either succeed visibly OR fail loudly with whatever the upload endpoint actually returned.
The previous version of the Attach APK to release step ran without
set -x and without capturing the upload's HTTP response. Run 118
(v2026.06.01 tag-build) shows the step reporting success but the
release ended up with zero assets — i.e. the upload silently failed
without surfacing a non-zero exit.
New version:
- set -euxo pipefail so every command is echoed and any failure
surfaces.
- ls -lh the APK before upload so we can see if Gradle even produced
it at the expected path.
- curl -w '%{http_code}' captures the actual HTTP status into a var
and writes the response body to a temp file; both are printed.
- Explicit if check on the HTTP code (200-299 = success) bails
loudly when it isn't.
No behavioral change in success path; on failure the cause is
visible in the log instead of being eaten.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Diagnosing why
v2026.06.01shipped without the APK on the release.Run 118's
Attach APK to releasestep reported success but the release object ended up with zero assets — i.e. the curl exit code was being swallowed and the actual HTTP response was never logged. With ~0.5s total runtime, the upload almost certainly never landed.This adds
set -euxo pipefail, captures the upload HTTP code withcurl -w '%{http_code}', and writes the response body to a temp file that gets printed. After merge I'll force-movev2026.06.01to the new HEAD; the next android.yml run will either succeed visibly OR fail loudly with whatever the upload endpoint actually returned.The previous version of the Attach APK to release step ran without set -x and without capturing the upload's HTTP response. Run 118 (v2026.06.01 tag-build) shows the step reporting success but the release ended up with zero assets — i.e. the upload silently failed without surfacing a non-zero exit. New version: - set -euxo pipefail so every command is echoed and any failure surfaces. - ls -lh the APK before upload so we can see if Gradle even produced it at the expected path. - curl -w '%{http_code}' captures the actual HTTP status into a var and writes the response body to a temp file; both are printed. - Explicit if check on the HTTP code (200-299 = success) bails loudly when it isn't. No behavioral change in success path; on failure the cause is visible in the log instead of being eaten.