User Story
As an interCEde CI maintainer,
I want one manifest-driven integration workflow and prebuilt backend images,
So that adding a stack is a stacks.yml entry (no workflow edits) and PR CI pulls images instead
of spending 5–10 min rebuilding RPM-based images per job.
Feature Description
Consolidation of the three harmonized prototype stacks (IC-ADR-002 §3, §5):
- Flesh out
integration.yml from the scaffold skeleton: a matrix job reads stacks.yml
and emits the {stack × config × version} JSON; per-stack jobs run
docker compose … up --wait → pytest -m "<markers>" --stack=<id> --config=<name>
(or compose exec for exec_in_container stacks); fail-fast: false; on failure upload
docker compose logs + backend log dirs as artifacts. Reusable via workflow_call from
ci.yml, required for merge.
build-images workflow → GHCR: build and push
ghcr.io/diracgrid/intercede-testenv/{arc,slurm,htcondor-ce}:<version> when Dockerfiles or
pinned ARGs change, plus a weekly rebuild for base-image updates. PR CI pulls by digest.
Daemons foreground under a minimal supervisor — never systemd (§3).
Definition of Done
Alternatives Considered
- Per-stack bespoke workflows (status quo of the prototypes) — O(stacks) workflow maintenance,
drift between them; rejected by IC-ADR-002 §5.
- Rebuilding images in every PR job — 5–10 min × jobs wasted; rejected by §3.
- One mega-compose job — shared fate, poor attribution; rejected (ADR Rejected Ideas).
Related Issues
Additional Context
User Story
As an interCEde CI maintainer,
I want one manifest-driven integration workflow and prebuilt backend images,
So that adding a stack is a
stacks.ymlentry (no workflow edits) and PR CI pulls images insteadof spending 5–10 min rebuilding RPM-based images per job.
Feature Description
Consolidation of the three harmonized prototype stacks (IC-ADR-002 §3, §5):
integration.ymlfrom the scaffold skeleton: amatrixjob readsstacks.ymland emits the
{stack × config × version}JSON; per-stack jobs rundocker compose … up --wait→pytest -m "<markers>" --stack=<id> --config=<name>(or
compose execforexec_in_containerstacks);fail-fast: false; on failure uploaddocker compose logs+ backend log dirs as artifacts. Reusable viaworkflow_callfromci.yml, required for merge.build-imagesworkflow → GHCR: build and pushghcr.io/diracgrid/intercede-testenv/{arc,slurm,htcondor-ce}:<version>when Dockerfiles orpinned
ARGs change, plus a weekly rebuild for base-image updates. PR CI pulls by digest.Daemons foreground under a minimal supervisor — never systemd (§3).
Definition of Done
integration.ymlgenerates its matrix fromstacks.yml; the three bespoke prototypeworkflows are deleted
build-imagesworkflow pushes pinned-ARGimages to GHCR; PR CI pulls, never buildsworkflow_call-reusable and required for mergeAlternatives Considered
drift between them; rejected by IC-ADR-002 §5.
Related Issues
Additional Context