- Move test-act target logic into scripts/tests/deploy/act/all.sh
- Move test-act-app target logic into scripts/tests/deploy/act/app.sh
- Keep Makefile targets as thin delegators
- Preserve existing flags and behavior
This keeps the Makefile minimal and makes act workflows reusable.
https://chatgpt.com/share/696ff4de-3abc-800f-a206-2f3dd5dec170
- Move test-local-cleanup logic into scripts/tests/deploy/local/cleanup.sh
- Move test-local-rapid logic into scripts/tests/deploy/local/rapid.sh
- Simplify Makefile targets to delegate into scripts
- Keep behavior and flags fully backward compatible
This improves maintainability, reuse in CI, and keeps the Makefile thin.
- Replace static argparse-based CLI in cli.deploy.development with dynamic
module dispatcher compatible with nested command discovery.
- Ensure cli.deploy.development is executable via python -m and root dispatcher.
- Fix unit test path resolution to work locally and in CI.
- Make docker-* Makefile targets depend on install.
- Simplify test runner script and keep Nix flake config compatibility.
This aligns the CLI architecture with integration test discovery
(cli/**/__main__.py) and removes the need for manual subcommand registration.
https://chatgpt.com/share/696fdbbc-b6d8-800f-a8b5-067aa7e38706
- Introduce cli.deploy.development build subcommand as single build SPOT
- Remove legacy compose.build_infinito implementation
- Make up use build-missing logic via build handler
- Add --when-down flag to up (skip startup if stack already running)
- Simplify restart/run to reuse up handler
- Ensure tests use up --when-down to avoid stack interference
- Make test targets depend on build-missing
https://chatgpt.com/share/696fd3c9-99f0-800f-a0ab-33a91058419a
- 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
- Add INFINITO_DOCKER_VOLUME and INFINITO_DOCKER_MOUNT env wiring in Makefile
- Switch infinito service to mount Docker root via env (with local fallback volume)
- Disable docker-on-mnt helper in favor of compose-based mount
- Keep named volume as fallback for local deployments
https://chatgpt.com/share/696f4386-fbbc-800f-bdde-f1e6c4145c84
Move repo root detection into scripts/ci/discover.sh so it can be executed
from any working directory. Simplify ci-discover-output to just call the
script and rely on its internal path resolution.
https://chatgpt.com/share/696e3d20-276c-800f-87a7-a7052989ffe4
Change ci-discover-output to resolve the repository root via git and execute
scripts/ci/discover.sh from there so that relative paths (e.g. roles/* and
scripts/tests/*) resolve correctly.
This fixes empty discovery results and "Role directory not found" warnings
caused by running discovery from the wrong working directory.
https://chatgpt.com/share/696e3d20-276c-800f-87a7-a7052989ffe4
Restore discover.sh execution on the host to avoid running Docker Compose
from inside the container, and execute only the storage validation logic
inside the infinito CI container.
This fixes "--profile" errors caused by compose-in-compose and keeps the
Python dependency stack isolated inside the container.
- Run scripts/ci/discover.sh directly on host
- Execute sufficient_storage filter via docker compose exec
- Keep CI output and ONLY_APP override unchanged
https://chatgpt.com/share/696e3d20-276c-800f-87a7-a7052989ffe4
Ensure ci-discover-output changes into the Infinito repository root (resolved
inside the container via `pkgmgr path infinito`) before executing
scripts/ci/discover.sh so that all relative paths (e.g. scripts/tests/discover-apps.sh)
resolve correctly.
This makes discovery robust against different working directories and future
layout changes.
https://chatgpt.com/share/696e3d20-276c-800f-87a7-a7052989ffe4
Update ci-discover-output Make target to dynamically resolve the Infinito
repository path inside the CI container using `pkgmgr path infinito` instead
of relying on a fixed working directory.
This makes app discovery robust against future repo layout changes and
ensures discover.sh is always executed from the correct location.
- Resolve repo root via pkgmgr inside container
- Execute scripts/ci/discover.sh from resolved path
- Keep ONLY_APP override and GITHUB_OUTPUT handling intact
https://chatgpt.com/share/696e3d20-276c-800f-87a7-a7052989ffe4
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
- Add test-local-cleanup target that derives entity name from APP using entity_name_utils
- Automatically purge matching /opt/docker/<entity> stack before rapid deploy
- Skip purge gracefully if entity cannot be resolved or stack directory is missing
- Add test-local-rapid-fresh target to run cleanup before rapid deploy
https://chatgpt.com/share/696e37cb-17b4-800f-b6f3-2becd2f61814
- move sys-token-store initialization to constructor stage
- remove duplicate token store includes from frontend and app roles
- allow Mailu reachability check to accept configurable status codes (200, 301)
- make Mailu health check consistent with web-app-mailu config
- increase test-local-rapid verbosity for better diagnostics
https://chatgpt.com/share/696c0f49-7888-800f-8175-fb21893c0d67
- Support space-separated, comma-separated and mixed --id values
- Normalize and deduplicate application IDs before validation
- Fix Makefile to pass APP without quoting
- Add unittest coverage for ID normalization
https://chatgpt.com/share/696be0c2-816c-800f-8b07-3c5cd0304ac5
- Replace database_application_id with database_consumer_id
- Use explicit consumer context for database resolution
- Fix recursive Jinja variable loop in sys-svc-rdbms
- Decouple discourse database network from global database_type
https://chatgpt.com/share/696bd40d-ebfc-800f-9ba8-1e6be919a629
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
- Set SYS_SERVICE_DEFAULT_STATE=started for local rapid tests
- Remove deprecated SYS_SERVICE_SUPPRESS_FLUSH mechanism
- Simplify service flush/suppress logic
- Normalize formatting and ensure newline in database vars
- Adjust LAM CSP flags (disable unsafe-inline for script-src-elem)
- Replace NXDOMAIN for AAAA with fallthrough to avoid SERVFAIL and Node EAI_AGAIN
- Add robust Docker-in-Docker DNS health check (A + no SERVFAIL)
- Add Node/getaddrinfo DNS validation (matches CSP checker behavior)
- Add make target to stop CI compose stack without removing volumes
This prevents DNS resolver failures inside DinD and makes CSP health checks reliable.
https://chatgpt.com/share/696aba87-e5d4-800f-871c-aac049201fb7
- Change --log flag to require explicit log directory (--log <LOG_DIR>)
- Automatically create log directory with parents=True
- Harden permissions best-effort (0700)
- Update CLI help text accordingly
- Adjust Makefile test targets to pass explicit log directory
- Ignore logs/ via .gitignore and .dockerignore
- Refactor flag parsing to correctly detect deploy with --log
- Add dedicated logging unit tests
- Update existing tests for new log semantics
- Remove deprecated -i alias for --id in deploy command
https://chatgpt.com/share/6969680a-dbf8-800f-aafb-3d32d6212ba0
- Rename act-based targets for clarity:
- test-deploy -> test-act
- test-deploy-app -> test-act-app
- Rename rapid local deploy target:
- test-deploy-rapid -> test-local-rapid
- Add test-local-full target to run a full local deploy against a generated
inventory containing all apps of the selected TEST_DEPLOY_TYPE
- Add scripts/tests/deploy-local-full.sh:
- Discover apps on host via make ci-deploy-discover
- Bootstrap container via scripts/docker/entry.sh
- Generate dedicated inventory with --include list
- Deploy against that inventory
https://chatgpt.com/share/69692ef1-095c-800f-83cb-924fadfaa554
- Add test-deploy-rapid Makefile target for fast local single-app deploys
- Execute scripts/docker/entry.sh before running infinito deploy
- Run deploy inside existing infinito container (no rebuild, no update)
- Skip update and backup for faster inner-loop testing
https://chatgpt.com/share/69692ef1-095c-800f-83cb-924fadfaa554
The Makefile defined INFINITO_IMAGE with trailing tabs/spaces, which caused
Docker to fail with "invalid reference format" during CI pulls/builds.
This change removes the trailing whitespace so the image reference is valid.
https://chatgpt.com/share/69683f7d-faa0-800f-bb55-c40a4e9b7737
- 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
- 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
- Control INSTALL_LOCAL_BUILD centrally via Makefile depending on CI context:
- real GitHub Actions runner: disable local rebuild
- act and local runs: enable local rebuild
- Pass INSTALL_LOCAL_BUILD through docker-compose using environment expansion
- Remove hardcoded INSTALL_LOCAL_BUILD=1 from CI container runner
- Keep Dockerfile local-build during image build for CI images
This ensures consistent local/CI behavior and avoids unnecessary rebuilds on real CI runners.
https://chatgpt.com/share/6967876f-e400-800f-90ec-fe870e565bf3
- 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