11 Commits

Author SHA1 Message Date
Oleks bdc5a8961e chore(flake): add nixfmt-rfc-style formatter 2026-06-04 23:29:06 +03:00
Oleks efddfd3ec4 Remove dead Dockerfile — CI builds via nix2container (cluster #208) 2026-06-04 22:24:10 +03:00
Oleks 8cab1f8411 ci: echo build arch (uname -m) as first line of every step for visibility 2026-06-02 13:42:32 +03:00
Oleks 71ec9709a8 ci: convert OCI pipeline to parity-lib nix2container builder
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.
2026-06-02 09:26:57 +03:00
Oleks e8f3e954e7 ci: design nix2container migration + scaffold amd64 publish app (emmett#44)
Archetype: oci-image (buildx -> in-cluster remote buildkit), the HARD case.
DESIGN/PARTIAL, not a finished migration:

- ci/MIGRATION.md: concrete plan to escape buildkit via nix2container/skopeo
  +regctl. The app is pure-stdlib Python, so both arches are buildable on
  emmett (amd64-native + Nix-cross-from-amd64 python3 closure) with no
  buildkit/qemu/docker -> no foreign-arch leg needed; Dockerfile retired on
  cutover. Covers per-arch build, entrypoints, .woodpecker.yaml target,
  escape hatch (unused here), risks, remaining work.
- flake.nix: scaffolds the natively-buildable amd64 leg only
  (stage-amd64, publish-amd64), dry-run by default (PUBLISH=1 to push),
  $REGISTRY_TOKEN -> pass fallback, registry-down/empty-token blockers.
  Mirrors reference impl claude-plugin-registry@9850745.

arm64 leg, publish-index/publish, and YAML cutover are designed but NOT wired.
Verified: nix eval .#apps.x86_64-linux (-> stage-amd64, publish-amd64); no
image build run (downloads closure).
2026-06-02 03:39:20 +03:00
Oleks 3a2df3d6e1 ci: fix pod labels — use tag/branch instead of ref (slashes invalid) 2026-03-16 18:45:48 +02:00
Oleks 24abcdb316 ci: build multi-arch (amd64+arm64) image
ci/woodpecker/tag/woodpecker Pipeline failed
v0.1.0
2026-03-16 18:39:53 +02:00
Oleks cc49acf6d9 ci: add commit-ref and pipeline-number pod labels for log tracing 2026-03-16 17:46:06 +02:00
Oleks c2a46dc5a6 ci: use arm64 buildkit (amd64 builder is down)
ci/woodpecker/tag/woodpecker Pipeline was successful
2026-03-16 17:37:10 +02:00
Oleks ad7f55f4df ci: use manual clone to work around Woodpecker OAuth issue
ci/woodpecker/tag/woodpecker Pipeline failed
2026-03-16 17:34:30 +02:00
Oleks 4c7dcd9279 alertmanager-gotify-bridge: initial commit with bridge and CI
ci/woodpecker/tag/woodpecker Pipeline failed
2026-03-16 17:26:06 +02:00