fix(ci): declare FORCE_REBUILD as a UI variable and make it take effect #12
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/force-rebuild-effective"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Motivation
Two asks: make
FORCE_REBUILDselectable in the UI, and remove theNet debugstep.While wiring up the UI variable I found that #11 was necessary but not sufficient. Two further bugs stood between
FORCE_REBUILDand an actual republish, and each would have silently wasted the multi-hour rebuild.Declare it as a UI variable
The schema, read out of the crow binary (
crow lintaccepts unknown nested fields without complaint, so it is not authoritative here):optionsis what gives the UI a dropdown. Declared withoptions: ["false", "true"]anddefault: "false".Two bugs this exposed
1. A declared variable substitutes its default, which inverts the emptiness test.
defaultis a string. With a declared default,${FORCE_REBUILD}expands to the literalfalse— which is non-empty. The[ -n "$FORCE_REBUILD_VAR" ]check merged in #11 would therefore have been true on every cron run, rebuilding every platform nightly. Now matches on the value, acceptingtrue/1/yesand treating anything else as off.2.
overwrite: falseon the upload would have discarded the entire rebuild.From the plugin-s3 source:
It skips the object and still exits green. A
FORCE_REBUILDrun would have recompiled all 24 Alpine packages over several hours and published none of them, with a passing pipeline and no error to notice.Set to
true. Normal runs are unaffected: dedup means only not-yet-published versions are ever built, so no overwrite occurs.Cleanup
Removed the
Net debugstep, the commented-outPull upstreamstep, and a stray# docker info.Deliberately kept:
ip link set ... mtu 1280lines — the actual workaround the debug step was diagnosing, not debug scaffoldingalpine-320matrix entry — records a deliberately disabled platformVerification
crow lint .crow/passes. Truthiness across every input form:The first row is the one that matters most: it is the case #11 would have got wrong.