- Run build-ci-images before all code test jobs
- Propagate ci-${GITHUB_SHA} image tag into test workflows
- Remove forced INFINITO_PULL_POLICY=never from Makefile tests
- Ensure tests use the freshly built CI images instead of :latest
https://chatgpt.com/share/696fb8cc-6b24-800f-8c96-d840f68d8eaa
Move the full app discovery step into a dedicated Make target (ci-discover-output)
and execute discover.sh inside the infinito CI container to ensure a consistent
runtime environment.
This removes inline discovery logic from GitHub Actions workflows and prevents
host-side dependency issues (e.g. missing Python modules or jq mismatches).
- Add ci-discover-output Make target
- Run scripts/ci/discover.sh inside infinito container
- Simplify all test-deploy workflows to use the new wrapper
- Keep ONLY_APP override and GITHUB_OUTPUT handling intact
https://chatgpt.com/share/696e3d20-276c-800f-87a7-a7052989ffe4
Replaced all usages of `make up` with `make docker-up` in GitHub Actions workflows.
Renamed Makefile targets:
- up -> docker-up
- down -> docker-down
- stop -> docker-stop
- added docker-restart
This makes the Docker-specific intent explicit and avoids ambiguity with other potential `up` targets.
https://chatgpt.com/share/696bb966-ee90-800f-a5d2-e419cc423cc4
- Rename code-analyses workflow to ci-orchestrator
- Add lint, test and install collector gates
- Enforce code-quality-gate before building CI images
- Stage deploy pipeline via DNS → server → universal → workstation
- Gate installation tests behind quality checks
- Simplify final done collector to depend on deploy + install gates
This establishes a strict CI flow: quality → build → dns → deploy → install.
https://chatgpt.com/share/696a4c71-191c-800f-a601-aab6ff1762df
- Introduce env.ci as single source of truth for CI networking
- Make docker-compose, CoreDNS and Docker daemon fully env-driven
- Render CoreDNS Corefile from template via envsubst
- Replace hardcoded IPs/domains with environment variables
- Integrate env-based networking into Ansible defaults
- Remove static Corefile and daemon.json
This makes DNS and networking deterministic and reproducible across
host, CoreDNS, infinito runner and Docker-in-Docker.
https://chatgpt.com/share/696a3dda-5c6c-800f-8a16-47c0c604e1e3
Configure build-ci-images and code-analyses to use per-ref concurrency groups
to avoid global serialization while still preventing duplicate runs per ref.
Also remove redundant tag ignore rules from the push workflow.
https://chatgpt.com/share/69691ebf-a380-800f-80fc-bd44d59e90dd
- Add daily stable promotion workflow with CI-gated highest-version selection
- Ensure GHCR images exist before moving stable tag
- Retag version images to :stable without rebuild
- Unify release workflows under infinito-release concurrency group
- Remove legacy highest-version/stable-move scripts and inline logic
https://chatgpt.com/share/696909c1-781c-800f-b52d-d9f967e9698c
- Set default distros for workflow_call in code-analyses
- Remove redundant distro overrides from PR and nightly entries
- Require distros input in build-ci-images and rely on orchestrator default
https://chatgpt.com/share/696909c1-781c-800f-b52d-d9f967e9698c
- Move nightly release trigger into its own concurrency group
- Serialize release-version workflow via dedicated infinito-release group
- Decouple release maintenance from main CI pipeline
https://chatgpt.com/share/696909c1-781c-800f-b52d-d9f967e9698c
- Add `distros` input to code-analyses orchestrator and forward it to build and deploy workflows
- Enforce distros via required workflow_call inputs in test-deploy-* workflows
- Restrict push and pull-request entries to arch only
- Run nightly workflows on full distro matrix
- Align nightly release cron to 00:00 UTC
- Build CI images with immutable ci-<sha> tags instead of latest
- Pass CI image tag into deploy workflows via INFINITO_IMAGE_TAG
- Derive CI_TAG from checked-out release tag commit
- Retag CI images to <version> and latest on release (no rebuild)
- Make release scripts independent from GITHUB_SHA coupling
- Improve robustness and reproducibility of release pipeline
https://chatgpt.com/share/696832f6-35e4-800f-a574-178013d4426e
- Run deployment tests sequentially for focused E2E stabilization
- Make universal depend on server
- Make workstation depend on server and universal
- Keep image build as single entry point
https://chatgpt.com/share/6967e809-7df4-800f-a234-b40ead86626f
Unify PR, push, nightly and release workflows under a single global
concurrency group (infinito-ci-global) to ensure only one CI run executes
at a time.
Configure the nightly workflow to run daily at 00:00 UTC and to cancel any
in-progress CI runs, giving nightly jobs priority for cleanup and full
validation.
This prevents overlapping CI runs, reduces runner/disk pressure, and
enforces a strictly serialized CI pipeline.
https://chatgpt.com/share/6967d742-9178-800f-ad20-f1c3f77f69bc
Add top-level concurrency blocks to CI entry workflows (PR, push, schedule,
version) to avoid overlapping runs and reduce resource contention on runners.
Also refactor code-analyses workflow dependencies so deploy:workstation waits
for deploy:server to complete (prioritize server debugging), and do minor
whitespace/newline cleanups in web-opt-rdr-domains role files.
https://chatgpt.com/share/6967cff2-1584-800f-a2d3-1ef7a824f62f
- Build CI images workflow now always publishes :latest instead of ci-<sha>
- Removed obsolete tag input and CI tag computation logic
- Deploy in real GitHub Actions now pulls ghcr.io/.../infinito-<distro>:latest
- Skip docker compose build when INFINITO_NO_BUILD=1
- Respect INFINITO_IMAGE for --missing image existence check
This ensures deploy jobs use the already published production image and never rebuild in CI.
https://chatgpt.com/share/69678e2c-7d7c-800f-b422-15e98c8e4b6e
- Replace legacy MODE env with TEST_DEPLOY_TYPE across workflows and scripts
- Route CI deploy and discovery through Makefile targets
- Rename deploy-one-app.sh to deploy-app.sh and update all call sites
- Fix Makefile recursion and ensure scripts are executed directly
- Ensure JSON discovery output is clean via silent make target
- Make MISSING_ONLY default true via Makefile
- Respect INFINITO_NO_BUILD in compose up to avoid implicit rebuilds in CI
- Keep explicit build step before compose up for deterministic CI runs
- Improve deploy logging (test_deploy_type instead of mode)
Result:
- Deterministic CI behaviour
- No accidental docker compose rebuilds on up
- Single source of truth for deploy orchestration
- Cleaner env contract between workflows, make, bash and python
https://chatgpt.com/share/69678024-fe38-800f-b877-add46aa55190
- Rename CI workflow and MODE from "rest" to "universal"
- Extend CLI and test runner to support universal deploy type
- Add tasks/stages/02_universal.yml for universal host type
- Update discover logic to use universal app selection
- Remove legacy rest->server mapping and obsolete select helper
https://chatgpt.com/share/6967625e-81c8-800f-8592-5d5b8edec1e2
- Replace registry-based build cache with GitHub Actions cache (type=gha)
- Add disk usage diagnostics before and after builds
- Enable buildx installation for deterministic behavior
- Add aggressive cleanup to avoid runner disk exhaustion
https://chatgpt.com/share/696752fb-befc-800f-9cf1-57093178297a
Switch CI detection to GITHUB_ACTIONS and disable compose builds via
INFINITO_NO_BUILD=1. The deploy workflows now rely on pulling the prebuilt
CI image instead of triggering local Docker builds.
- Remove legacy UP_BUILD handling
- Enable --no-build in compose when running in real CI
- Keep local/act builds working as before
https://chatgpt.com/share/69666e0b-f08c-800f-93fd-611eced4b100
Replace GitHub Actions cache backend with GHCR registry-based build cache
to avoid intermittent 5xx errors and improve reliability for multi-distro
Buildx jobs.
Each distro now uses its own cache namespace:
infinito-cache-<distro>:buildcache
https://chatgpt.com/share/69665ae7-37f4-800f-b287-e095714e80a4
- Move INFINITO_IMAGE and INFINITO_PULL_POLICY handling into Makefile
- Auto-configure CI vs act via IS_ACT switch
- Remove duplicated env exports from test-deploy workflows
- Ensure compose uses pulled CI images in GitHub Actions
- Keep local act builds using locally built images
This makes CI behavior deterministic while keeping local test runs fast and simple.
https://chatgpt.com/share/69665ae7-37f4-800f-b287-e095714e80a4
Let the Makefile auto-detect act vs GitHub Actions and set INFINITO_PULL_POLICY
accordingly (never for act, always for CI).
This removes redundant INFINITO_PULL_POLICY exports from test-deploy workflows
and centralizes the logic in the Makefile.
Result:
- GitHub Actions always pulls CI images
- act/local runs use locally built images
- no workflow duplication
https://chatgpt.com/share/69665ae7-37f4-800f-b287-e095714e80a4
- Add reusable build-ci-images workflow to build and push ci-<sha> images for all distros
- Make all deploy test workflows use prebuilt CI images (no local rebuilds)
- Replace ci-version workflow with release workflow
- Retag ci images to <version> and latest on tag push (no rebuild)
- Move stable git tag only if all analyses/tests succeed and version is highest
- Make compose image/pull policy configurable via env
https://chatgpt.com/share/69662869-ee1c-800f-9e6c-bbbf47284fad
Replace inline tail logic in deploy workflows with a shared
scripts/ci/log-tail.sh helper that prints the last N lines of all
log files on failure.
This improves debuggability, avoids code duplication, and ensures
consistent log output across server, universal and workstation
pipelines.
https://chatgpt.com/share/69661d0e-81a8-800f-8b98-6c964672d027