infra #3

Merged
liamjd merged 6 commits from infra into main 2026-07-27 21:15:48 +01:00
Owner

Fixes to actions runners for CD

Fixes to actions runners for CD
The Forgejo runner has no writable HOME, so pnpm falls back to a
.pnpm-store directory inside the checkout. `prettier --check .` then walks
into it and reports the content-addressed package blobs as unformatted
source, failing the Check step with 13 warnings before anything is built.

Ignored in prettier, eslint and git rather than worked around in the
workflow: the store lands there whenever HOME is unwritable, so any
contributor or runner can hit it, and neither linter has any business
reading package blobs.

Verified by planting a store directory matching the runner's layout and
confirming lint passes with it present.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The install step hardcoded the x86_64 archive, so on a runner of any other
architecture the download succeeded and the binary failed at exec time
with "Exec format error" — after the installer had already reported
success and written /usr/local/bin/aws.

Architecture now comes from uname, mapping amd64/x86_64 and arm64/aarch64
onto the two builds AWS publishes and failing with a clear message on
anything else. Alpine takes its own package instead, since the published
builds link against glibc and musl images cannot run them.

Two smaller traps closed along the way. The guard now tests that aws
actually runs rather than that the file exists, because the failed run
left behind an unexecutable binary that the old check would have accepted
and skipped past. And the installer gets --update so that leftover
install is replaced rather than aborting.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The README still said infrastructure and CI were unwritten, and listed two
samples rather than three. Adds a status table with the live URL and the
known gaps, chief among them that runner caching is not enabled: pnpm's
store lands in the workspace because its default directory is on a
different filesystem from the bind mount and pnpm cannot hardlink across
devices, so it is discarded with the workspace and every build
re-downloads everything. Records both candidate fixes and the fact that
nothing is broken by it — builds are only slower.

Also notes that the deploy workflow triggers on main, which nothing has
merged into yet, and that deep links answer 404 with the app's body.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
liamjd merged commit 8dbb5f9235 into main 2026-07-27 21:15:48 +01:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
liamjd/SBOMViewer!3
No description provided.