Manifest step must not be skipped on partial arch success #9
Reference in New Issue
Block a user
Delete Branch "%!s()"
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?
In the multi-arch quartet pipelines (amd64/arm64/manifest), the manifest step is currently skipped when any per-arch build fails or is absent. It should instead run whenever AT LEAST ONE arch image was built (e.g. only arm64 succeeded) and create the manifest containing just the arches that exist — a single-arch manifest is better than no manifest. Applies to the shared quartet generator (#2); guard the manifest step by probing which per-arch tags actually exist in the registry rather than by pipeline dependency status.
Fixed in the generator (commit
7fbf343):matrix/manifest.yaml.tmplnow sets workflow-levelruns_on: [success, failure]alongsidedepends_on: [build]. Without it, Woodpecker skips the wholemanifestworkflow outright the moment any per-arch matrix leg ofbuildfails — so a lone arm64 success would silently produce zero images. Withruns_on, the manifest workflow always executes afterbuild; the doc comment in the template makes explicit thatci/local.sh --manifestitself must probe the registry for which per-arch tags actually landed (not assume a fixed arch list, not gate on upstream success) and build a manifest from whatever exists. Verified the renderedmanifest.yamlstill parses as valid YAML and diffs cleanly against xonsh-image's real file (only the newruns_onblock + explanatory comment added). Closing alongside #2's initial migration.