Commit Graph
1189 Commits
Author SHA1 Message Date
kevinveenbirkenbach b849976f2d fix(local-deploy): preserve container PATH for infinito CLI 2026-02-22 17:34:48 +01:00
kevinveenbirkenbach 8cbbfb4d06 fix(deploy): use infinito CLI for inventory creation in container flows 2026-02-22 14:09:48 +01:00
kevinveenbirkenbach 575474f5bb Refactor Python bootstrap to single installer SPOT 2026-02-22 01:20:23 +01:00
kevinveenbirkenbach 608c03d3c8 Fix distro-specific CI image and pip package selection 2026-02-20 20:08:33 +01:00
kevinveenbirkenbach 656fced43c fix(ci): resolve docker apt key conflict and enforce per-distro stack 2026-02-20 19:12:52 +01:00
kevinveenbirkenbach 68e299b80a Replaced arch by debian 2026-02-20 10:00:32 +01:00
kevinveenbirkenbach 692f47fda4 Changed default distro to debian 2026-02-20 10:00:31 +01:00
kevinveenbirkenbach 98e1f39291 fix(install): add retry logic for pip installs in python setup script
Add retry wrapper (7 attempts, 20s delay) around pip install
commands to mitigate transient network errors (e.g. GitHub 403,
rate limits, temporary connectivity issues) during CI builds.

https://chatgpt.com/share/e/69933fb2-9c94-8013-815d-4f9509b0456f
2026-02-16 17:03:18 +01:00
kevinveenbirkenbach 9ed864e1e2 ci(images): rename mirror workflows and add scheduled CI image cleanup
- rename mirror-images-* workflows to images-mirror-*
- update ci-orchestrator job ids and dependencies accordingly
- add weekly + manual GHCR cleanup workflow (images-cleanup-ci)
- extract cleanup logic into scripts/administration/ghcr/cleanup_ci_images.sh
- support org and user GHCR owners via automatic API scope detection
- delete only ci-* tagged image versions older than N days (default: 7)

https://chatgpt.com/share/e/69906083-93d4-8013-bd0b-e441615e72bf
2026-02-14 12:46:04 +01:00
kevinveenbirkenbach 5722d028ec Changed default dstro from arch to debian, because it's slimmer 2026-02-14 11:38:26 +01:00
kevinveenbirkenbach 3e9de04704 refactor: move server inventories into bundles 2026-02-13 10:14:17 +01:00
kevinveenbirkenbach efa6c4bdf0 fix(local-test): make apps discovery JSON-safe and container-compatible
- force PYTHON=python3 for scripts/meta/resolve/apps.sh to avoid host venv leakage into container exec
- pipe output through jq to guarantee compact JSON array only
- tolerate compose warnings on stdout during discovery
- add debug fallback printing first lines of raw apps.sh output when discovery is empty

This aligns local test behavior with CI discovery robustness without changing CI logic.

https://chatgpt.com/share/698e24d6-7200-800f-a2f5-28a81a639cf3
2026-02-12 20:06:58 +01:00
kevinveenbirkenbach 1bb67164e0 ci: add whitelist filtering for deploy test matrix
* Replace ONLY_APP with space-separated WHITELIST across CI and local/act deploy tests
* Rename build-test-matrix.sh to scripts/meta/resolve/apps.sh and apply optional whitelist filter
* Add manual CI entry workflow to run orchestrator with distros/whitelist inputs

https://chatgpt.com/share/698c406c-0968-800f-ae84-1bcca023363c
2026-02-11 09:40:00 +01:00
kevinveenbirkenbach 5acce545e1 refactor(cli): remove sound, alarm and server-type flags
Drop the sound/alarm subsystem and deprecated CLI flags.

* Remove --sound, --no-signal and --alarm-timeout
* Remove server-type flag (-T / TEST_DEPLOY_TYPE)
* Delete sound-related modules
* Simplify RunConfig and runner error handling
* Update help output, scripts and tests
* Remove optional audio extras from pyproject.toml

https://chatgpt.com/share/698b74f1-0c0c-800f-98c4-183697d6a2a0
2026-02-10 19:10:37 +01:00
kevinveenbirkenbach 02295a13eb ci(meta): fix lifecycle filtering by using default lifecycle set
Remove TESTED_LIFECYCLES env handling and always apply the original
alpha/beta/rc/stable lifecycle filter when building the CI test matrix.

https://chatgpt.com/share/698b3abc-9b34-800f-8db0-8fa6023c1132
2026-02-10 15:03:31 +01:00
kevinveenbirkenbach 7c3e942fd5 Removed INCLUDE_RE 2026-02-10 14:53:31 +01:00
kevinveenbirkenbach 558ec41151 Removed EXCLUDE_RE 2026-02-10 14:51:42 +01:00
kevinveenbirkenbach 449781fa73 fix(ci): make sufficient_storage JSON-safe and stabilize test matrix generation
Switch sufficient_storage CLI to support JSON output and update CI matrix
generation to use JSON-only pipelines, preventing roles from collapsing
into a single matrix entry.
2026-02-10 14:06:54 +01:00
kevinveenbirkenbach 19e69bab6c refactor(meta): keep build-test-matrix JSON-only to prevent whitespace splitting
Refactor build-test-matrix.sh to process application lists strictly as JSON.
Remove text-based filtering and reimplement excludes and CI storage gating
using jq to avoid accidental whitespace joining and invalid app arrays.

https://chatgpt.com/share/698b19ac-9850-800f-b040-eb698d3954c4
2026-02-10 13:25:47 +01:00
kevinveenbirkenbach 7481b600a8 fix(ci): normalize build-test-matrix JSON output and prevent app name concatenation
Ensure build-test-matrix.sh always emits a single-line, valid JSON array by
quoting variables correctly and normalizing JSON output via jq -c, preventing
accidental app name concatenation in CI workflows.

https://chatgpt.com/share/698b19ac-9850-800f-b040-eb698d3954c4
2026-02-10 12:42:30 +01:00
kevinveenbirkenbach df9a23ceed feat(ci): unify invokable app discovery and add lifecycle filtering
- Move server/workstation/universal resolution into Python CLI
- Add optional --lifecycles filter to cli.meta.applications.type
- Gate invokable roles by galaxy_info.lifecycle in module_utils.invokable
- Replace legacy resolve-invokable-roles.sh with CLI-based implementation
- Apply global hard excludes consistently across all deploy types
- Fix SC2086 issues and make lifecycle argument handling shell-safe
- Extend unit tests to cover lifecycle forwarding and normalization

https://chatgpt.com/share/698b0039-c4c4-800f-b962-7033324c07a8
2026-02-10 11:50:09 +01:00
kevinveenbirkenbach 84782f3b22 refactor(invokable): centralize app discovery, add type grouping, and derive deploy stages from inventory groups
https://chatgpt.com/share/698b0039-c4c4-800f-b962-7033324c07a8
2026-02-10 10:53:53 +01:00
kevinveenbirkenbach 26be2ec2a7 Removed cleanup noise 2026-02-09 00:28:30 +01:00
kevinveenbirkenbach a49976fd41 Fix CI cleanup by force-resetting Docker root directory
- Use sudo to reliably remove root-owned files under INFINITO_DOCKER_VOLUME
- Recreate Docker root directory after cleanup
- Restore runner ownership to avoid follow-up permission issues
- Add debug output for ownership and permissions
- Document required INFINITO_DOCKER_VOLUME in script usage

This prevents poisoned CI runs caused by incomplete Docker cleanup between distros.

https://chatgpt.com/share/6988be7d-fe40-800f-8ab9-60825acc064d
2026-02-08 17:48:56 +01:00
kevinveenbirkenbach 2eeaad9650 Removed release stable workflow. every image is now implicit stable 2026-02-08 11:28:15 +01:00
kevinveenbirkenbach 2d1f1d94e5 ci: simplify image build and tag version releases correctly
- Build a single CI image per distro (remove slim/full variants)
- Retag CI images to version/latest without rebuild
- Trigger version releases only for v* tags on master
- Remove redundant image existence/rebuild logic
- Align promote-stable and retag scripts with single-image flow

https://chatgpt.com/share/6988607b-3330-800f-9d3b-4fc06fab5d56
2026-02-08 11:07:37 +01:00
kevinveenbirkenbach 53e817fa22 refactor(compose): migrate from docker-compose.yml to compose.yml everywhere
- Rename all docker-compose.yml templates to compose.yml
- Update override and CA override filenames accordingly
- Adjust compose wrapper, lookup plugins, filters and path helpers
- Update roles, tasks, handlers and scripts to use compose CLI
- Rewrite documentation and admin guides to reference compose
- Update unit and integration tests to expect compose.yml
- Keep internal variable keys for backward compatibility where needed

https://chatgpt.com/share/69870272-b168-800f-84c3-6417398e441f
2026-02-07 10:14:21 +01:00
kevinveenbirkenbach ba35d7c5e0 refactor(container): replace docker ps usages with container wrapper and move binaries to /usr/bin
https://chatgpt.com/share/698660b7-4c78-800f-b25f-af5408cff034
2026-02-06 22:44:14 +01:00
kevinveenbirkenbach ddfbe001b2 Use container wrapper for logs in health checks and diagnostics
https://chatgpt.com/share/698659d9-62e4-800f-89a1-5d44f309bde4
2026-02-06 22:30:19 +01:00
kevinveenbirkenbach e8f62dfa7c Solved reset bug 2026-02-06 18:02:24 +01:00
kevinveenbirkenbach b399253884 test(deploy): run dedicated_distro init and deploy inside development container
Move entry.sh, development init, and development deploy execution into the
development container via cli.deploy.development exec.

Deployment logic, arguments, and execution order remain unchanged.

https://chatgpt.com/share/69861572-9c74-800f-9f3f-904202371bbc
2026-02-06 17:22:38 +01:00
kevinveenbirkenbach 51239968fd refactor: rename docker-compose roles to sys-svc-compose and update paths
Renamed docker-compose and docker-compose-ca roles to sys-svc-compose and sys-svc-compose-ca, updated template includes, handlers, lookups, tests, and variables, and moved compose instances to /opt/compose.

https://chatgpt.com/share/6985ab2c-8344-800f-9e9a-768f562d138d
2026-02-06 09:49:42 +01:00
kevinveenbirkenbach 88924b4fdd Removed update mode verywhere to keep behaviour more deterministic 2026-02-05 11:43:14 +01:00
kevinveenbirkenbach f9f0501f1a Refresh matomo 2026-02-04 14:03:38 +01:00
kevinveenbirkenbach a5bbba1eb3 Added inventory to cleanup 2026-02-04 10:07:02 +01:00
kevinveenbirkenbach b6fa8c1a31 Build inventory at beginning 2026-02-04 01:16:10 +01:00
kevinveenbirkenbach fe40b48cab tests(local): add non-destructive dedicated deploy and refactor local utils
- Add local dedicated_distro.sh implementing the same two-pass deploy logic
  as CI (ASYNC_ENABLED=false/true) without destructive cleanup
- Switch test-local-dedicated to pure ENV-based interface (TEST_DEPLOY_TYPE, APP)
- Refactor local deploy helpers into utils/ structure:
  - move reset.sh to utils/reset.sh
  - split cleanup into targeted purge helpers (entity, web, lib)
- Update Makefile targets to reflect new structure and workflows

https://chatgpt.com/share/6982804e-1f60-800f-809e-629d0fe62de3
2026-02-04 00:10:00 +01:00
kevinveenbirkenbach 4066dbfeed Adapted script path 2026-02-03 22:51:34 +01:00
kevinveenbirkenbach 067669783a refactor(purge): split entity purge into db/compose/dir scripts
- Add purge/entity/all.sh orchestrator with --wipe-data-only and --db-only
- Extract DB purge logic into purge/entity/db.sh (best-effort Postgres + MariaDB)
- Add purge/entity/compose.sh to bring stacks down with volumes removed
- Add purge/entity/dir.sh to remove stack directory and volumes folder
- Rename purge_web.sh to purge/web.sh for consistent layout

https://chatgpt.com/share/69826b33-1470-800f-9def-6b4289713e2f
2026-02-03 22:39:39 +01:00
kevinveenbirkenbach 0ca8448b30 ci: hard-clean Docker state between distro deploys
- remove host-mounted INFINITO_DOCKER_VOLUME between runs
- recreate docker data dir to avoid cross-distro state leakage
- keep images while fully resetting containers, networks and volumes
- ensure clean CI environment for each distro deploy
2026-02-03 20:06:36 +01:00
kevinveenbirkenbach 7ba9b158d2 refactor(make,release): rely on env.sh for runtime vars and fix shell escaping
- Switch Makefile commands from make vars to shell env vars ($$VAR)
- Ensure PYTHON and INFINITO_* are always resolved via scripts/meta/env.sh
- Fix build-no-cache-all to use env-provided DISTROS safely
- Remove redundant env forwarding in install targets
- Load env.sh robustly in promote-stable.sh with ShellCheck-safe handling
- Fix Python invocation in promote-stable.sh to use env-resolved PYTHON

No functional behavior change intended.

https://chatgpt.com/share/69820891-2238-800f-ad70-bae7e442c028
2026-02-03 16:01:48 +01:00
kevinveenbirkenbach 81ddadc2d2 refactor(env): centralize runtime environment in scripts/meta/env.sh (SPOT)
- Move all environment detection, defaults, and exports into scripts/meta/env.sh
- Use BASH_ENV in Makefile to auto-source env.sh for all recipes
- Remove duplicated env logic from Makefile (VENV, PYTHON, CI detection, inventory)
- Make env setup safe under set -euo pipefail (-u compatible)
- Ensure consistent behavior across local, act, and GitHub Actions runs

No functional behavior change intended.

https://chatgpt.com/share/69820891-2238-800f-ad70-bae7e442c028
2026-02-03 15:39:03 +01:00
kevinveenbirkenbach 0c9c8277d5 feat(ci): shuffle distros before deploy to improve fairness under time budget
- Randomize distro execution order in all_distros.sh
- Log final execution order for easier debugging

https://chatgpt.com/share/6981f7e4-590c-800f-a6df-15557ce73a86
2026-02-03 14:37:45 +01:00
kevinveenbirkenbach c75a823391 feat(ci): enforce global time budget for multi-distro deploys
- Track runtime per distro during CI deploy runs
- Add MAX_TOTAL_SECONDS env to limit total execution time
- Skip remaining distros if remaining budget is smaller than the slowest prior run
- Print warnings and a detailed timing summary at the end
- Wire time budget via Makefile for ci-deploy-app

https://chatgpt.com/share/6981f7e4-590c-800f-a6df-15557ce73a86
2026-02-03 14:27:59 +01:00
kevinveenbirkenbach 5c0a86b8a7 Merge branch 'feature/self-signed-tls' into feature/finalize-tests 2026-02-03 12:33:14 +01:00
kevinveenbirkenbach 9555d65858 Removed log logic from ci 2026-02-03 12:28:45 +01:00
kevinveenbirkenbach 9344a11c18 fix(ci-cleanup): use array-safe container removal to satisfy ShellCheck
- Replace word-splitting container ID handling with bash array
- Avoid SC2086 by passing container IDs as "${ids[@]}"
- Preserve correct behavior for multiple containers in CI cleanup

https://chatgpt.com/share/6981c7d4-642c-800f-8438-9e2349ac53fb
2026-02-03 11:05:15 +01:00
kevinveenbirkenbach bc38347798 refactor(ci-deploy): split per-distro deploy, add two-pass async test and hard cleanup
- Replace legacy app.sh/distros.sh orchestration with explicit all_distros.sh + dedicated_distro.sh
- Deploy each app sequentially across distros against a fresh stack
- Run two deploy passes per distro:
  - Pass 1 with ASYNC_ENABLED=false
  - Pass 2 with ASYNC_ENABLED=true against the same stack
- Remove deprecated cli.deploy.development run orchestrator
- Extend init command with --vars to inject inventory overrides
- Enforce debug mode for CI deploys
- Add hard Docker cleanup after each distro (containers, networks, volumes, build cache; keep images)
- Emit disk and docker usage before and after deploy for observability

https://chatgpt.com/share/6981c7d4-642c-800f-8438-9e2349ac53fb
2026-02-03 11:02:51 +01:00
kevinveenbirkenbach 9e1792c6ad chore(ci): remove GHCR publish-to-public step from mirror workflow
https://chatgpt.com/share/6980fc3e-2f98-800f-913d-bab61e2fa831
2026-02-02 20:34:09 +01:00
kevinveenbirkenbach d1cf6b72f4 feat(mirror): publish mirrored GHCR images as public via release script
- add post-mirror step to set GHCR package visibility to public
- extract publish logic into scripts/release/ghcr_make_public.sh
- ensure repo-root handling is robust via explicit cd
- keep publish step best-effort while mirror sync can fail
2026-02-02 15:56:01 +01:00