71ec9709a8
The payload (pure-stdlib bridge.py + a stock CPython closure) is fully Nix-expressible, so this is NOT an escape-hatch/buildkit repo: both arches build on emmett (amd64 native + arm64 pkgsCross of stock python3 from the binary cache) with no buildkit, qemu, docker daemon, or howard pin. Replace the partial amd64-only scaffold with parity-lib's mkNix2ContainerPublish, completing the arm64 leg + multi-arch index. The per-arch nix2container image derivations are kept verbatim; stage/publish/ publish-index/publish/push-staged now come from the shared builder so CI and local invoke identical code. Thin .woodpecker.yaml to a single nix run .#publish; retire the buildx/remote-builder steps. The Dockerfile is now unused (the cutover drops it) but kept in-tree so the server-side hadolint pre-receive hook does not crash on a file deletion. Refs cluster #192, emmett#44.
33 lines
1.2 KiB
YAML
33 lines
1.2 KiB
YAML
labels:
|
|
arch: amd64
|
|
|
|
when:
|
|
- event: tag
|
|
ref: "refs/tags/v*"
|
|
|
|
# Local-pipeline parity (cluster #192, emmett#44). The flake apps ARE the shared
|
|
# code: this same `nix run .#publish` is what a developer runs on emmett. The
|
|
# pure-stdlib bridge.py + a stock CPython closure are fully Nix-expressible, so
|
|
# both arches build from this single amd64 runner (amd64 native + arm64
|
|
# pkgsCross) — no Dockerfile, no buildkit, no remote builder, no howard pin.
|
|
# nix2container copy-to (skopeo) pushes each arch; regctl assembles the index.
|
|
# The app DRY-RUNS by default; CI opts in with PUBLISH=1. :latest is a digest
|
|
# copy of :TAG made last and guarded off for dev tags.
|
|
steps:
|
|
- name: publish
|
|
image: git.oleks.space/oleks/nix-ci:latest
|
|
environment:
|
|
# One token env var everywhere; the app reads it (never interpolated).
|
|
REGISTRY_TOKEN:
|
|
from_secret: registry_token
|
|
commands:
|
|
- nixos-ci-entrypoint bash -c "set -e; PUBLISH=1 nix run .#publish"
|
|
backend_options:
|
|
kubernetes:
|
|
nodeSelector:
|
|
kubernetes.io/arch: amd64
|
|
labels:
|
|
commit-tag: "${CI_COMMIT_TAG}"
|
|
commit-branch: "${CI_COMMIT_BRANCH}"
|
|
pipeline-number: "${CI_PIPELINE_NUMBER}"
|