ci: publish crucible image under deployment/ namespace
registry.westgate.pw/sow/crucible -> /deployment/crucible across build-image + release workflows, flake.nix image name, Dockerfile, docs. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
# Build the Crucible image. PR-first (D7): PRs build only; push to main also
|
# Build the Crucible image. PR-first (D7): PRs build only; push to main also
|
||||||
# publishes registry.westgate.pw/sow/crucible:<git-sha>. Never a mutable tag.
|
# publishes registry.westgate.pw/deployment/crucible:<git-sha>. Never a mutable tag.
|
||||||
#
|
#
|
||||||
# Daemonless: the host-mode runner has no container runtime, so the image is
|
# Daemonless: the host-mode runner has no container runtime, so the image is
|
||||||
# built by Nix (`nix build .#image`, see flake.nix) and pushed with skopeo
|
# built by Nix (`nix build .#image`, see flake.nix) and pushed with skopeo
|
||||||
@@ -13,7 +13,7 @@ on:
|
|||||||
|
|
||||||
env:
|
env:
|
||||||
REGISTRY: registry.westgate.pw
|
REGISTRY: registry.westgate.pw
|
||||||
IMAGE: sow/crucible
|
IMAGE: deployment/crucible
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-image:
|
build-image:
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ on:
|
|||||||
|
|
||||||
env:
|
env:
|
||||||
REGISTRY: registry.westgate.pw
|
REGISTRY: registry.westgate.pw
|
||||||
IMAGE: sow/crucible
|
IMAGE: deployment/crucible
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
release:
|
release:
|
||||||
@@ -34,5 +34,5 @@ jobs:
|
|||||||
name: crucible-${{ github.ref_name }}
|
name: crucible-${{ github.ref_name }}
|
||||||
path: dist/*
|
path: dist/*
|
||||||
|
|
||||||
# TODO(phase-6): re-tag registry.westgate.pw/sow/crucible:<sha> as :<tag>
|
# TODO(phase-6): re-tag registry.westgate.pw/deployment/crucible:<sha> as :<tag>
|
||||||
# and pin it from sow-platform releases/*.yml once the registry is live.
|
# and pin it from sow-platform releases/*.yml once the registry is live.
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ This retires the old habit of checking in `nwn-tool` / `sow-toolkit`.
|
|||||||
PR-first (D7): every check runs on pull requests and on push to `main`.
|
PR-first (D7): every check runs on pull requests and on push to `main`.
|
||||||
|
|
||||||
- `test.yml` — vet, test, shellcheck, yamllint, binary smoke.
|
- `test.yml` — vet, test, shellcheck, yamllint, binary smoke.
|
||||||
- `build-image.yml` — build `registry.westgate.pw/sow/crucible:<sha>`; publish
|
- `build-image.yml` — build `registry.westgate.pw/deployment/crucible:<sha>`; publish
|
||||||
only on `main`. PRs build but never push. No mutable tags.
|
only on `main`. PRs build but never push. No mutable tags.
|
||||||
- `release.yml` — tag-gated binary bundles; image re-tag is wired in Phase 6.
|
- `release.yml` — tag-gated binary bundles; image re-tag is wired in Phase 6.
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
# syntax=docker/dockerfile:1
|
# syntax=docker/dockerfile:1
|
||||||
#
|
#
|
||||||
# Crucible toolchain image: registry.westgate.pw/sow/crucible:<git-sha>
|
# Crucible toolchain image: registry.westgate.pw/deployment/crucible:<git-sha>
|
||||||
#
|
#
|
||||||
# Reproducible multi-stage build, no on-VPS build. Produces every cmd/* binary
|
# Reproducible multi-stage build, no on-VPS build. Produces every cmd/* binary
|
||||||
# and ships them on a static base. The `crucible` dispatcher is the entrypoint;
|
# and ships them on a static base. The `crucible` dispatcher is the entrypoint;
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ Run the consumer job inside the pinned image and the binaries are on `PATH`:
|
|||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
container:
|
container:
|
||||||
image: registry.westgate.pw/sow/crucible:<sha> # pinned, immutable
|
image: registry.westgate.pw/deployment/crucible:<sha> # pinned, immutable
|
||||||
```
|
```
|
||||||
|
|
||||||
No host install, no `$HOME` layout, no developer machine assumptions.
|
No host install, no `$HOME` layout, no developer machine assumptions.
|
||||||
|
|||||||
@@ -47,7 +47,7 @@
|
|||||||
default = crucible;
|
default = crucible;
|
||||||
|
|
||||||
image = pkgs.dockerTools.buildLayeredImage {
|
image = pkgs.dockerTools.buildLayeredImage {
|
||||||
name = "registry.westgate.pw/sow/crucible";
|
name = "registry.westgate.pw/deployment/crucible";
|
||||||
tag = version;
|
tag = version;
|
||||||
contents = [ crucible pkgs.cacert pkgs.ffmpeg-headless pkgs.fakeNss ];
|
contents = [ crucible pkgs.cacert pkgs.ffmpeg-headless pkgs.fakeNss ];
|
||||||
config = {
|
config = {
|
||||||
|
|||||||
Reference in New Issue
Block a user