40 lines
1.9 KiB
YAML
40 lines
1.9 KiB
YAML
repo: the-eye
|
|
kind: single
|
|
image: git.oleks.space/oleks/nix-ci:latest-arm64
|
|
arch: arm64
|
|
git_host: git.oleks.space
|
|
branches: [develop, staging, production]
|
|
header: |
|
|
# Build + push the EmDash app container (cluster #196, emmett#44).
|
|
#
|
|
# This is a keep-Dockerfile OCI web app (Astro/Node + native better-sqlite3,
|
|
# built from app/package-lock.json) — it is NOT Nix-expressible on emmett, so
|
|
# it stays on `docker buildx` against the in-cluster buildkit. The build logic
|
|
# lives entirely in ci/local.sh so CI and a local run can't drift; this
|
|
# pipeline is a thin wrapper that just sets the CI-specific env and invokes it.
|
|
#
|
|
# Tagging (handled by ci/local.sh) — every build publishes three refs:
|
|
# 0.1.<pipeline> immutable, audit.
|
|
# <branch> floating pointer Flux's ImagePolicy tracks (staging/
|
|
# production) → digest rewritten into the fleet repo → pod
|
|
# rolls. Do not drop.
|
|
# <branch>-latest same image; chart image.tag cosmetic fallback.
|
|
# Only staging/production have an ImagePolicy, so only those move pods.
|
|
label_comment: |
|
|
kotkan (the deploy target) is an Oracle Ampere arm64 host, so we build
|
|
natively on arm64 — no cross-compile needed.
|
|
components:
|
|
- name: build-and-push
|
|
buildkit_comment: "CI builds natively on the in-cluster arm64 buildkit and publishes."
|
|
version_comment: |
|
|
Semver-shaped immutable tag, one per build. 0.1 is fixed (no real
|
|
semver discipline yet); the patch is the monotonic pipeline number.
|
|
- name: build-and-push-grpc
|
|
component: grpc
|
|
step_comment: |
|
|
gRPC WorkspaceService image (#80). Same Dockerfile (the `grpc` target), same
|
|
builder / registry / auth / tagging logic as the web build above — only
|
|
--component grpc differs, which suffixes the published refs with -grpc
|
|
(e.g. staging-grpc). Reuses the immutable per-pipeline $VERSION (0.1.<n>),
|
|
published as 0.1.<n>-grpc.
|