Skip to content

packaging(ns8): address code review - multi-arch module image and workflow hardening - #136

Closed
shockalotti wants to merge 19 commits into
mainfrom
packaging/ns8-review-fixes
Closed

shockalotti wants to merge 19 commits into
mainfrom
packaging/ns8-review-fixes

Conversation

@shockalotti

Copy link
Copy Markdown
Contributor

Follow-up to #102 and #135, from a code review of the NS8 packaging.

1. Module image was single-arch (high). The app image builds amd64+arm64 with qemu; the module image did not. NS8 runs modules as rootless containers on the node, so an arm64 node could not install Calnode. build-images.sh now honours TARGETARCH and pushes only per-arch :build-<arch> tags; new push-manifest.sh assembles the public tags. Publishing an assembled tag only, after every arch landed, means an interrupted release cannot ship a single-arch image under a version tag.

2. The exec-bit guard failed open (medium). The awk added in #135 exits 0 on empty input, so a pathspec that stopped matching would pass vacuously and silently reintroduce the non-executable-script bug that made configure a no-op. Now asserts non-empty first. Verified three ways: passes on the real tree, fails loudly on an empty pathspec, fails on a 100644 entry.

3-6. timeout-minutes on both jobs; permissions: contents: read on validate; GITHUB_TOKEN/actor/event_name moved into env: instead of being interpolated into run:; ui/node_modules cached like upstream NS8 (every PR was re-downloading the whole Vue/Carbon tree).

7. Stale step-4 comment in 20configure.

Also aligned actions/checkout (v7) and setup-qemu-action (v4) with the rest of the repo instead of diverging.

Not verified: no buildah on the dev machine, so the multi-arch manifest path could not be smoke-tested locally. Needs one CI run to confirm before release. The exec-bit guard, schemas, shell and YAML all validated locally.

Establish the invitation resource and effective scheduling context from Calnode discussion #47 and issue #92. Snapshot duration, host roles, and scheduling windows with hashed expiring token groundwork.

Keep public redemption, atomic booking claims, delivery, and webhook enrichment deferred.
@pullfrog

pullfrog Bot commented Oct 13, 2026

Copy link
Copy Markdown
Contributor

New pull request. Leaping into action...

Pullfrog  | View workflow run | via Pullfrog | 𝕏

@shockalotti

Copy link
Copy Markdown
Contributor Author

Closing this and reopening correctly. This PR was created with the wrong head content: the branch packaging/ns8-review-fixes on the remote holds the scheduling-invitations work (already tracked by #129), not the review fixes described below. The branch itself is left untouched. Correct PR follows on packaging/ns8-review-hardening-ocr.

@github-actions github-actions Bot locked and limited conversation to collaborators Oct 13, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants