repo: csi-s3 kind: matrix explicit_clone: true image: git.oleks.space/oleks/nix-ci:latest script: ci/local.sh # oleks/ci-scripts#22: matches ci/local.sh's IMAGE_REPO default # ("csi-s3-driver"), NOT the `repo:` field above. Unlike xonsh-image there is # no live package under this name yet to cross-check (csi-s3's --publish path # has never run in CI: no pipeline history, no registry package) — this is # the intended target per the script, not a confirmed-live value. csi-s3 # remains EXCLUDED from the #17 migration regardless (oleks/ci-scripts#20: # too bespoke — build-args, dual per-arch tags, skip-if-published, dropped # clone/timeout overrides); this field is added for manifest correctness only. image_name: git.oleks.space/oleks/csi-s3-driver var_name: TARGET_ARCH arches: [amd64, arm64] commented_arches: - "s390x # disabled: no s390x builder available" buildkit_prefix: buildkit-rootless fixed_label: amd64 timeout: 240 node_selector: kubernetes.io/hostname: howard2404 manifest_arches_env: "amd64 arm64" manifest_buildkit_addr: "tcp://buildkit-amd64.infra.svc.cluster.local:1234" build_header: | # Thin wrapper (cluster #196 / emmett#44): CI runs the SAME ci/local.sh a # developer runs, so CI and local can't drift. csi-s3 keeps its Dockerfile # (s3fs-fuse from Alpine edge + a fetched geesefs binary are not cleanly # Nix-expressible), so this is the keep-Dockerfile escape hatch, not a # parity-lib conversion. The only CI-specific bits are env overrides: # BUILDKIT_ADDR -> the in-cluster native-arch remote buildkit # PUBLISH=1 -> actually push (local default is dry-run) # Each native-arch node builds + pushes its own per-arch tags; the manifest # workflow then combines them. manifest_header: | # Thin wrapper (cluster #196 / emmett#44): the SAME ci/local.sh combines the # per-arch tags into the multi-arch manifest. MANIFEST_ARCHES tracks which # per-arch tags exist; re-add s390x here and in build.yaml when a builder # returns.