CI/CD: from a commit to preprod and production

CI/CD: from a commit to preprod and production A workflow diagram generated by Archify. 01 / v6_api 02 / c2c_ui 03 / c2c_images · c2c_tracking 04 / v6-docker-compose (infra) 05 / Legacy production fleet 06 / v7 fleet (preprod today) Trigger GitHub Actions checks Publish + pin version Deploy from the bastion PR, master, tag · v6_api › Trigger PR, master, tag audit + test · uv audit, ruff, pytest · v6_api › GitHub Actions checks · PG 9.6 and latest, ES 2.4 audit + test uv audit, ruff, pytest PG 9.6 and latest, ES 2.4 Docker job · master and tags only · v6_api › GitHub Actions checks · classic manifest Docker job master and tags only classic manifest GHCR · ghcr.io/c2corg/v6_api · v6_api › Publish + pin version GHCR ghcr.io/c2corg/v6_api PR, master, tag · c2c_ui › Trigger PR, master, tag lint, test, build · npm ci, vitest, vite build · c2c_ui › GitHub Actions checks · tag = package.json version lint, test, build npm ci, vitest, vite build tag = package.json version OpenResty image test · Lua head-tag specs + smoke · c2c_ui › GitHub Actions checks OpenResty image test Lua head-tag specs + smoke Pages preview · c2corg.github.io/c2c_ui/<branch> · c2c_ui › Publish + pin version Pages preview c2corg.github.io/c2c_ui/<branch> PR, main, tag · c2c_images · c2c_tracking › Trigger PR, main, tag lint + tests · against a local S3 server (+ PG) · c2c_images · c2c_tracking › GitHub Actions checks lint + tests against a local S3 server (+ PG) image check · smoke test, manifest check · c2c_images · c2c_tracking › GitHub Actions checks image check smoke test, manifest check Docker Hub · c2corg/c2c_ui, c2c_images, c2c_tracking · c2c_images · c2c_tracking › Publish + pin version Docker Hub c2corg/c2c_ui, c2c_images, c2c_tracking PR, main · v6-docker-compose (infra) › Trigger PR, main infra CI · terraform validate, ansible-lint · v6-docker-compose (infra) › GitHub Actions checks · haproxy -c, betterleaks infra CI terraform validate, ansible-lint haproxy -c, betterleaks Version bump commit · API_VERSION, image tags · v6-docker-compose (infra) › Publish + pin version Version bump commit API_VERSION, image tags docker-compose pull, up · one VM at a time · Legacy production fleet › Deploy from the bastion · Docker 1.12 client docker-compose pull, up one VM at a time Docker 1.12 client Production · api0..2, ui0/1, images0/1, workers · Legacy production fleet › Deploy from the bastion Production api0..2, ui0/1, images0/1, workers ansible deploy.yml · --limit preprod · v7 fleet (preprod today) › Deploy from the bastion · site.yml for a full run ansible deploy.yml --limit preprod site.yml for a full run Preprod · preprod-app, preprod-data · v7 fleet (preprod today) › Deploy from the bastion Preprod preprod-app, preprod-data tests pass push pull on the bastion same commit pick the tag checks the PR main / tag PR, after approval master / tag Legend User UI Agent logic Policy Cloud service External system