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
Refactor server, universal-rest, and workstation deploy workflows to:
- add a dedicated discover job that outputs the app list
- run one matrix job per app (one runner per app)
- remove bash loop over apps
- upload logs per app artifact
This enables parallel per-app deployments and clearer failure isolation.
https://chatgpt.com/share/6965ccdc-ed44-800f-b1e8-f0071db6dd07
- Rename _deploy-matrix.yml -> _deploy-per-app.yml and drop unused inputs
(tested_lifecycles, only_distro, final_exclude_re).
- Keep one runner per app (matrix.app) and run all distros inside that job.
- Makefile: run deploy tests through act workflow_dispatch (no serial script).
- Add scripts/ci/discover.sh and scripts/ci/deploy-one-app.sh as small SRP helpers.
- Update reusable workflow callers to use the renamed file.
https://chatgpt.com/share/69659ff3-1414-800f-8652-5298fcf55398
- Add reusable _deploy-matrix workflow with discovery + per-app deploy across distros
- Enforce serial execution via strategy.max-parallel=1 and act --concurrent-jobs 1
- Support filters: mode (server|workstation|rest), only_app, only_distro, include/exclude regex
- Refactor test runner: remove discovery, require --app, deploy single app with deps only
- Generalize discover script to discover-apps.sh with INCLUDE_RE/EXCLUDE_RE + lifecycle gating
- Update Makefile targets to drive workflow_dispatch inputs for local act runs
https://chatgpt.com/share/69659ff3-1414-800f-8652-5298fcf55398
Add disk usage diagnostics and aggressive Docker cleanup between
sequential distro deploy runs to prevent runner disk exhaustion.
- Log disk and Docker usage before and after each deploy
- Preserve stack on failure for debugging
- Prune images, volumes and build cache only on success
https://chatgpt.com/share/69637278-7aa0-800f-a492-7be95f5e8605
- continue testing all distros and fail at end if any deploy fails
- prevent make down from aborting the test loop
- move tail-on-failure logic to a dedicated workflow step
- improve local debugging with act and skip artifact upload there
https://chatgpt.com/share/69601617-9808-800f-a7cd-f5e65e40c04e
* Avoid GitHub Actions matrix job limits by looping distros inside the per-app job
* Simplify discover output emission and pin checkout/upload-artifact to stable versions
* Tidy long log lines and minor formatting in deploy/test helpers
https://chatgpt.com/share/695fa9b9-4460-800f-bcc3-d566b83649b2
- Replace clean-container with compose down for predictable teardown
- Add explicit up/down targets to Makefile
- Sync bind-mounted source into internal repo using rsync --chown=root:root
- Prevent git dubious ownership errors in CI containers running as root
https://chatgpt.com/share/695d7045-a1f8-800f-83d0-f5872d85cfcf
* update test-deploy-workstation workflow to use make clean-container and make test-deploy with TEST_DEPLOY_TYPE=workstation
* extend Makefile test-deploy to accept TEST_DEPLOY_TYPE (default server) and pass it through to scripts/tests/deploy.sh
* note: add missing newline at end of test-deploy-workstation.yml to avoid diff noise
* Delete ci-publish.yml which relied on workflow_run and skipped publishing on test failures
* Ensure images are built and published directly on version tag pushes
* Keep stable tagging gated by successful code analyses only
https://chatgpt.com/share/695be89a-6f30-800f-bee4-40cfd4ef6263
- Always build and publish Docker images for v* tags (version + latest),
independent of test results
- Run full code analyses in parallel and only mark Git + container :stable
when all checks succeed
- Replace rebuild-on-stable with pure imagetools retagging (no rebuild)
- Prevent race conditions by ordering stable tagging after image publish
- Ensure latest always tracks the most recent version image
https://chatgpt.com/share/695bdfa5-dbe0-800f-bb1c-4fe81eba6058
- switch deploy tests to docker compose exec (-T) instead of docker exec
- remove hard dependency on INFINITO_CONTAINER
- ensure clean CI state via compose down -v before deploy tests
- start coredns + infinito exclusively via compose
- enable host cgroup namespace for systemd containers (cgroup: host)
https://chatgpt.com/share/6953e367-b674-800f-bc55-97e8625314cf
- switch workflow to `make test-deploy` with matrix-driven INFINITO_DISTRO
- centralize container naming via INFINITO_CONTAINER
- add clean-container helper for reliable CI reruns
- remove --distro CLI flag and rely on env-based distro selection
- pass NIX_CONFIG as docker build arg for rate-limit-safe builds
https://chatgpt.com/share/6953d266-aa80-800f-88b8-0413926a81f0
- Explicitly trigger CI (push) on all branches
- Continue to ignore version, stable and other release tags
- Prevent missing CI runs on regular commits while avoiding tag-based duplicates
https://chatgpt.com/share/6948fa05-1970-800f-a010-59c8c3588713
- Run CI (push) only on branch pushes and ignore version/stable/latest tags
- Run versioning workflow exclusively on v* tag pushes
- Remove overlapping branch triggers to prevent double executions
https://chatgpt.com/share/6948fa05-1970-800f-a010-59c8c3588713
- Export NIX_CONFIG in CI jobs and Makefile
- Pass NIX_CONFIG as docker build-arg
- Use NIX_CONFIG only in relevant Dockerfile RUN steps (no secret persistence)
- Forward NIX_CONFIG to test and deploy containers
https://chatgpt.com/share/6947c681-abc8-800f-ba12-de2ff3a7abad