Consolidate s390x/arm64 cross-build fleet into one shared template #1
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?
23 files under building/s390x/ plus building/arm64/{angie,baml-py,devpi,mempalace} are near-byte-identical (diff between pillow-s390x and lxml-s390x is 3 substantive lines: label key, memory, comment casing). 13 carry the same hand-rolled attic block (attic login && attic watch-store & … kill $ATTIC_PID). Collapse ~1,200 lines into one shared template with per-package overrides (label, memory, package name). Biggest single win.
Templated the family of repos that are genuinely near-identical (single build-and-publish step, PLUGIN_TAGS=false/depth=1, optional inline
attic watch-storeaccelerator, PyPI wheel publish on tag):manifest.yaml+generate.pyin oleks/ci-scripts (7a434fa, on top of6b0d0d4) render.woodpecker.yamlfor 10 repos — lxml, pillow, psycopg, psycopg2-binary, tiktoken, duckdb, faiss-cpu, numpy, pymupdf, markupsafe-s390x.Regenerated + pushed to each repo's main:
Verification: render is idempotent (
generate.py --checkclean after a second run), all 10 regenerated files passwoodpecker-cli lint, and I diffed each against the pre-change original (parsed YAML, not text) confirming semantic equivalence modulo the intentional #5 node-pinning migration and the #6|| truefix. No pipelines fired from the push (these trigger ontag: v*, notpush: main).Deliberately NOT templated (documented in manifest.yaml + README):
asyncpg,cryptography,fastuuid,lightningcss,nextjs-swc,rollup,onnxruntime,scikit-learn,scipyrun a different "thin parity-lib publish" shape with real per-repo differences (Redis sccache wiring, pipeline-doctor gate,CI_REGISTRY_TOKENvsREGISTRY_TOKEN) — templating them would either lose functionality or bloat the manifest schema for differences that aren't accidental duplication.geesefs-s390x,sentry-cli-s390x,attic-client-s390x,angie-arm64,devpi-arm64,mempalaceare bespoke pipelines (OCI image publish, binary builds, multi-file workflows) — also out of scope. Consider a follow-up issue if the second family should get its own smaller template (redis+doctor toggles).Closing.