Some checks failed
check / check (push) Successful in 10s
Build and Deploy to Cloudflare Pages / build (push) Failing after 15s
probe / p1-bare-alpine-checkout (push) Failing after 3s
probe / p2-alpine-apk-checkout (push) Successful in 5s
probe / p3-alpine-apk-build (push) Successful in 15s
probe / p4-alpine-apk-upload (push) Failing after 11s
probe / p5-node20alpine-checkout (push) Successful in 8s
probe / p6-node20slim-checkout (push) Successful in 11s
Build and Deploy to Cloudflare Pages / deploy (push) Has been skipped
Restores the hash-pinning work reverted in3d17e22(originally3f91a7candb157bfd) verbatim -- all six pinned values were independently re-resolved and confirmed correct twice, so they are reused, not re-derived. What is different this time is that the path is observable before it reaches main. The previous attempt broke the deploy because deploy.yml triggers only on push to main, so every pre-merge check simulated the runner instead of being it, and two adversarial reviews could not catch what neither could execute. Three changes on top of the restored work: - A temporary development-only branch trigger on on.push.branches, so the build job actually executes under act_runner. Removed before merge. - if: github.ref_name == 'main' on the deploy job. Without it, a branch push would run wrangler pages deploy against the real Cloudflare project with the real token on every iteration. This guard is permanent: it is one line and it makes any future branch trigger, deliberate or accidental, unable to reach Cloudflare. - A temporary .gitea/workflows/probe.yml, also deleted before merge. The Actions jobs and logs API is not readable by this account; the commit-status API is, and it reports one entry per job. So the diagnosis is encoded as job topology rather than log output: six jobs, each isolating one hypothesis about the 22s failure (bare alpine vs apk prerequisites, checkout vs site build vs artifact upload, musl node vs glibc node), each surfacing as its own status context so a single push tests them all in parallel. make check is green. No pinned value is touched.
111 lines
4.3 KiB
YAML
111 lines
4.3 KiB
YAML
# TEMPORARY diagnostic workflow. Deleted before this branch is merged.
|
|
#
|
|
# The Actions jobs/logs API is not readable by this account, so the only
|
|
# available signal is the commit-status API, which reports one entry per
|
|
# *job*. This file therefore encodes the diagnosis as job topology: each job
|
|
# below isolates exactly one hypothesis about why the pinned-alpine build job
|
|
# failed after 22s on main (run 25), and each shows up as its own status
|
|
# context, so one push tests them all in parallel.
|
|
name: probe
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- pin-deploy-refs-observable
|
|
|
|
jobs:
|
|
# Control. If this passes, act_runner supplies its own node for JS actions
|
|
# and the whole "install node first" theory is wrong.
|
|
p1-bare-alpine-checkout:
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
# alpine 3.21, 2026-02-28
|
|
image: alpine@sha256:c3f8e73fdb79deaebaa2037150150191b9dcbfba68b4a46d70103204c53f4709
|
|
steps:
|
|
# actions/checkout v4.2.2, 2026-02-28
|
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
|
|
|
|
# Exactly the reverted prefix: apk prerequisites, then checkout. Isolates
|
|
# checkout from everything downstream of it.
|
|
p2-alpine-apk-checkout:
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
# alpine 3.21, 2026-02-28
|
|
image: alpine@sha256:c3f8e73fdb79deaebaa2037150150191b9dcbfba68b4a46d70103204c53f4709
|
|
defaults:
|
|
run:
|
|
shell: sh
|
|
steps:
|
|
- run: apk add --no-cache nodejs git tar
|
|
# actions/checkout v4.2.2, 2026-02-28
|
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
|
|
with:
|
|
submodules: recursive
|
|
|
|
# p2 plus the site build. Isolates script/bootstrap and script/test inside
|
|
# the Actions container from the JS-action machinery.
|
|
p3-alpine-apk-build:
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
# alpine 3.21, 2026-02-28
|
|
image: alpine@sha256:c3f8e73fdb79deaebaa2037150150191b9dcbfba68b4a46d70103204c53f4709
|
|
defaults:
|
|
run:
|
|
shell: sh
|
|
steps:
|
|
- run: apk add --no-cache nodejs git tar
|
|
# actions/checkout v4.2.2, 2026-02-28
|
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
|
|
with:
|
|
submodules: recursive
|
|
- run: script/bootstrap
|
|
- run: script/test
|
|
- run: tar -czf site.tar.gz public
|
|
|
|
# p2 plus the artifact upload. This is the one step whose protocol changed
|
|
# in this issue (v3 -> v4) and the ~22s timing is consistent with reaching
|
|
# it.
|
|
p4-alpine-apk-upload:
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
# alpine 3.21, 2026-02-28
|
|
image: alpine@sha256:c3f8e73fdb79deaebaa2037150150191b9dcbfba68b4a46d70103204c53f4709
|
|
defaults:
|
|
run:
|
|
shell: sh
|
|
steps:
|
|
- run: apk add --no-cache nodejs git tar
|
|
# actions/checkout v4.2.2, 2026-02-28
|
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
|
|
- run: tar -czf probe4.tar.gz hugo.toml
|
|
# actions/upload-artifact v4.6.2, 2026-08-09
|
|
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02
|
|
with:
|
|
name: probe4
|
|
path: probe4.tar.gz
|
|
|
|
# Fallback image direction, measured rather than assumed: an image that
|
|
# already carries node.
|
|
p5-node20alpine-checkout:
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
# node 20-alpine, 2026-08-09
|
|
image: node@sha256:fb4cd12c85ee03686f6af5362a0b0d56d50c58a04632e6c0fb8363f609372293
|
|
defaults:
|
|
run:
|
|
shell: sh
|
|
steps:
|
|
# actions/checkout v4.2.2, 2026-02-28
|
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
|
|
|
|
# The glibc control. If musl node is the problem, this passes where the
|
|
# alpine jobs do not.
|
|
p6-node20slim-checkout:
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
# node 20-bookworm-slim, 2026-08-09
|
|
image: node@sha256:2cf067cfed83d5ea958367df9f966191a942351a2df77d6f0193e162b5febfc0
|
|
steps:
|
|
# actions/checkout v4.2.2, 2026-02-28
|
|
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683
|