generator: mark s390x entries no_build (hardware unavailable; reference-only)
ci/woodpecker/cron/drift Pipeline was successful

This commit is contained in:
2026-07-08 21:08:18 +03:00
parent d1f8297c46
commit bf36991833
2 changed files with 56 additions and 1 deletions
+33 -1
View File
@@ -19,6 +19,38 @@ HEADER = """# GENERATED by oleks/ci-scripts — do not hand-edit.
"""
def is_no_build(repo: dict) -> bool:
"""s390x = no-build: s390x hardware is currently unavailable, so those
wheels are not built/published (the repo code is kept as a cross-compile
reference only). Any manifest entry may opt in/out with an explicit
`no_build:` flag; otherwise entries under `s390x/` default to no-build.
See the ci-scripts wiki Spec/* pages and memory feedback-no-s390x-builds."""
return repo.get("no_build", str(repo.get("dir", "")).startswith("s390x/"))
def render_no_build(repo: dict) -> str:
"""Render a neutralized pipeline that does NOT build. Uses `event: manual`
so tag pushes never auto-trigger a build; a manual run just prints why."""
arch = repo.get("arch", "amd64")
return f"""{HEADER}# s390x = NO-BUILD: s390x hardware is currently unavailable, so this wheel is
# not built or published — the repo is kept as a cross-compile reference only.
# Re-enable by setting `no_build: false` on this repo in manifest.yaml.
labels:
arch: {arch}
when:
- event: manual
steps:
- name: build-disabled
image: alpine:3
commands:
- echo "s390x build disabled — hardware currently unavailable."
- echo "Repo kept as a cross-compile reference only; not built/published."
- echo "See oleks/ci-scripts wiki Spec/* and memory feedback-no-s390x-builds."
"""
def render(repo: dict) -> str:
arch = repo["arch"]
mem_req = repo["memory_request"]
@@ -246,7 +278,7 @@ def main():
]
for repo, render_fn in jobs:
target = BUILDING / repo["dir"] / ".woodpecker.yaml"
rendered = render_fn(repo)
rendered = render_no_build(repo) if is_no_build(repo) else render_fn(repo)
if check_only:
current = target.read_text() if target.exists() else ""
if current != rendered:
+23
View File
@@ -22,9 +22,18 @@
# cores - Nix `cores` setting written into /etc/nix/nix.conf
# max_jobs - whether to also cap `max-jobs = 1` (small/serial builds)
# attic - whether to run the inline `attic watch-store` accelerator
# no_build - if true, render a NEUTRALIZED pipeline (event: manual, no
# build/publish). s390x = no-build: s390x hardware is
# currently UNAVAILABLE, so those wheels are not built —
# the repo code is kept as a cross-compile reference only.
# Entries under s390x/ default to no_build even without the
# flag (generate.py is_no_build). Re-enable by setting
# no_build: false. arm64 builds are unaffected (arm64 hw is
# available). See wiki Spec/* + memory feedback-no-s390x-builds.
repos:
- dir: s390x/lxml-s390x
no_build: true
arch: amd64
memory_request: 2Gi
memory_limit: 6Gi
@@ -32,6 +41,7 @@ repos:
max_jobs: true
attic: true
- dir: s390x/pillow-s390x
no_build: true
arch: amd64
memory_request: 6Gi
memory_limit: 6Gi
@@ -39,6 +49,7 @@ repos:
max_jobs: true
attic: true
- dir: s390x/psycopg-s390x
no_build: true
arch: amd64
memory_request: 6Gi
memory_limit: 6Gi
@@ -46,6 +57,7 @@ repos:
max_jobs: true
attic: true
- dir: s390x/psycopg2-binary-s390x
no_build: true
arch: amd64
memory_request: 6Gi
memory_limit: 6Gi
@@ -53,6 +65,7 @@ repos:
max_jobs: true
attic: true
- dir: s390x/tiktoken-s390x
no_build: true
arch: amd64
memory_request: 6Gi
memory_limit: 6Gi
@@ -61,6 +74,7 @@ repos:
attic: true
redis_cache: true
- dir: s390x/duckdb-s390x
no_build: true
arch: amd64
memory_request: 8Gi
memory_limit: 32Gi
@@ -68,6 +82,7 @@ repos:
max_jobs: true
attic: true
- dir: s390x/faiss-cpu-s390x
no_build: true
arch: amd64
memory_request: 8Gi
memory_limit: 32Gi
@@ -75,6 +90,7 @@ repos:
max_jobs: true
attic: true
- dir: s390x/numpy-s390x
no_build: true
arch: amd64
memory_request: 8Gi
memory_limit: 32Gi
@@ -82,6 +98,7 @@ repos:
max_jobs: true
attic: true
- dir: s390x/pymupdf-s390x
no_build: true
arch: amd64
memory_request: 8Gi
memory_limit: 50Gi
@@ -89,6 +106,7 @@ repos:
max_jobs: false
attic: true
- dir: s390x/markupsafe-s390x
no_build: true
arch: amd64
memory_request: 2Gi
memory_limit: 6Gi
@@ -126,6 +144,7 @@ repos:
# bespoke hand-maintained file; flagged alongside fastuuid.
thin_repos:
- dir: s390x/asyncpg-s390x
no_build: true
arch: amd64
memory_request: 8Gi
memory_limit: 32Gi
@@ -136,6 +155,7 @@ thin_repos:
dead_secrets: []
gitea_clone_token: false
- dir: s390x/cryptography-s390x
no_build: true
arch: amd64
memory_request: 8Gi
memory_limit: 32Gi
@@ -147,6 +167,7 @@ thin_repos:
tags_full: false
dead_secrets: [attic_token, redis_password]
- dir: s390x/lightningcss-s390x
no_build: true
arch: amd64
memory_request: 8Gi
memory_limit: 32Gi
@@ -156,6 +177,7 @@ thin_repos:
tags_full: true
dead_secrets: [attic_token, redis_password]
- dir: s390x/nextjs-swc-s390x
no_build: true
arch: amd64
memory_request: 8Gi
memory_limit: 50Gi
@@ -165,6 +187,7 @@ thin_repos:
tags_full: true
dead_secrets: [attic_token, redis_password]
- dir: s390x/rollup-s390x
no_build: true
arch: amd64
memory_request: 8Gi
memory_limit: 32Gi