Commit Graph
153 Commits
Author SHA1 Message Date
Environment TestandClaude Sonnet 4.6 9ea2ad6ff1 refactor(docker): introduce utils/docker/image_discovery as single SPOT for image enumeration
- Move iter_role_images + all helpers + ImageRef from cli/mirror/util.py and
  cli/mirror/model.py into utils/docker/image_discovery.py; add source_file field
  to ImageRef to distinguish config/main.yml vs vars/main.yml entries
- Delete cli/mirror/util.py; update all callers to import from utils.docker.image_discovery
- Move utils into subpackages: utils/docker/ (image_ref, paths_utils, hadolint) and
  utils/roles/ (dependency_resolver, resource_validation); update all imports
- Reorganise tests into subpackages: tests/lint/docker/dockerfile/, tests/integration/docker/,
  tests/unit/utils/docker/, tests/unit/utils/roles/; fix parents[N] offsets after relocation
- tests/lint/docker/test_image_versions.py now uses iter_role_images (same SPOT as mirror)
- Add vars/main.yml images.<name>.{image,version} support for non-application roles
  (test-e2e-playwright, sys-ctl-hlth-csp); eliminate hardcoded duplicates in defaults/tasks
- Add web-app-matrix matrix-chatgpt-bot and web-app-mini-qr mini-qr entries in config/main.yml;
  replace hardcoded image strings in vars/templates with lookup('config', ...) references
- Fix sync/__main__.py log line to use correct registry prefix for non-Docker-Hub images
- Update docs/contributing/code/role/dockerfile.md with image declaration rules and SPOT reference

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-09 19:32:31 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 9a2878e109 refactor(ci): extract debug auth mode step into separate script
Move inline shell from entry-pull-request-change.yml into
scripts/meta/debug/auth_mode.sh and pass secrets via env vars.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-08 22:08:34 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 769e3079d9 fix(pr): allow dependabot branch prefix for full CI scope
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-08 15:40:45 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 357943f056 feat(environment): add inspect function and HOST_VARS_FILE SPOT
Extract inventory/host_vars printing into an inspect() function called
after each deploy. Define HOST_VARS_FILE as a SPOT in inventory.sh.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-30 05:26:20 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 0d206ae3c8 refactor(inventory): introduce INVENTORY_FILE as SPOT for devices.yml path
Define INVENTORY_FILE="${INVENTORY_DIR}/devices.yml" once in
scripts/meta/env/inventory.sh and export it. Remove all local
inv_file definitions; assert INVENTORY_FILE as required in each
consumer script. Rename CMD variable in container.sh from INSPECT_CMD.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-30 02:18:29 +02:00
kevinveenbirkenbachandClaude Sonnet 4.6 135ceefa98 fix(build): add SPOT for local image name and fix missing REPO_PREFIX
Add scripts/meta/resolve/image/local.sh as SPOT for the local Docker
image tag (<repo-basename>/<distro>). Wire it into Makefile build
targets (IMAGE_TAG), compose.py (_base_env sets INFINITO_IMAGE), and
compose.yml (no default fallback). Fix build.sh to accept a pre-set
IMAGE_TAG without requiring REPO_PREFIX. Add make build + build-no-cache
to environment.sh test flow with correct section ordering.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-30 00:16:27 +02:00
kevinveenbirkenbach c2438c2b6a ci: reorganize PR resolver scripts 2026-03-27 15:17:17 +01:00
kevinveenbirkenbach 67c359f7c1 docs: rename agent branch prefix 2026-03-27 15:05:26 +01:00
kevinveenbirkenbach 11149f3434 ci: gate PR workflow by file scope 2026-03-27 14:54:54 +01:00
kevinveenbirkenbachandClaude Sonnet 4.6 8825394e36 refactor: centralize WSL2 detection in scripts/meta/env/runtime.sh
Add IS_WSL2 export to runtime.sh and replace all inline
grep-based WSL2 guards in administration scripts with a
source + variable check for consistency.

Affected scripts:
- scripts/administration/systemd/enable/wsl2.sh
- scripts/administration/tls/trust/wsl2.sh
- scripts/administration/network/dns/setup/wsl.sh

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 20:36:59 +01:00
kevinveenbirkenbach 1c3ed01a9b Normalize shell script indentation 2026-03-23 12:06:20 +01:00
kevinveenbirkenbach b6d6bba058 Merge branch 'main' into feature/lint
# Conflicts:
#	scripts/image/release.sh
#	scripts/meta/wait/workflow_run.sh
2026-03-23 12:05:13 +01:00
kevinveenbirkenbach bf2353b125 Fix latest tagging for release backfills 2026-03-23 11:52:40 +01:00
kevinveenbirkenbach 21a160143b Wait for fork CI images instead of workflow completion 2026-03-23 11:37:07 +01:00
kevinveenbirkenbach bab5240769 chore: format shell helper scripts 2026-03-22 21:52:46 +01:00
kevinveenbirkenbach 2e37a3689f Merge branch 'main' into feature/lint
# Conflicts:
#	Dockerfile
#	scripts/administration/ghcr/cleanup_ci_images.sh
#	scripts/meta/wait/image.sh
2026-03-22 21:51:23 +01:00
kevinveenbirkenbach a3052fb77b ci: wait for fork prereq run in PR orchestrator 2026-03-22 20:33:41 +01:00
kevinveenbirkenbach 427d901ef9 style: reformat push ci policy script 2026-03-21 11:45:39 +01:00
kevinveenbirkenbach d948f87ded Merge branch 'main' into feature/lint 2026-03-21 11:38:49 +01:00
kevinveenbirkenbach 3e49b8afd3 Made push_ci_policy.sh executable 2026-03-21 11:37:35 +01:00
kevinveenbirkenbach 38b972d637 Merge branch 'main' into feature/lint 2026-03-21 11:29:52 +01:00
kevinveenbirkenbach cfbe1dc3e6 Handle branch-creation CI based on main ancestry 2026-03-21 11:25:24 +01:00
kevinveenbirkenbach 003a3a0b84 Merge branch 'main' into feature/lint
Resolve merge conflicts, keep the cleanup script move to scripts/image, and fix the resulting lint regressions.
2026-03-21 01:36:58 +01:00
kevinveenbirkenbach e61a483d74 refactor(env): centralize github owner and mirror defaults 2026-03-20 22:58:01 +01:00
kevinveenbirkenbach c2da5985d6 fix: mark env scripts executable 2026-03-20 22:28:10 +01:00
kevinveenbirkenbach c1a4660a8b refactor(env): split meta env into modular scripts
replace env.sh usage with scripts/meta/env/all.sh, add env directory README, and switch purge entity python resolution to scripts/meta/env/python.sh
2026-03-20 22:19:50 +01:00
kevinveenbirkenbach 68ad5d6660 Merge pull request #101 from kevinveenbirkenbach/feature/release-highest
Add highest missing release workflow
2026-03-20 11:13:18 +01:00
kevinveenbirkenbach 0466359631 Merge branch 'main' into feature/lint
# Conflicts:
#	scripts/image/push.sh
#	scripts/meta/env.sh
#	scripts/meta/wait/mirrors.sh
#	scripts/tests/deploy/ci/all_distros.sh
2026-03-19 03:21:31 +01:00
kevinveenbirkenbach 3b11d7f469 feat(packaging): add distro packages and install via package metadata 2026-03-19 02:53:15 +01:00
kevinveenbirkenbach c6f5fdea15 refactor plugins layout and migrate uri calls to uri_retry 2026-03-19 01:41:07 +01:00
kevinveenbirkenbach 571db429f6 ci: surface explicit prebuilt image wait errors 2026-03-18 23:20:13 +01:00
kevinveenbirkenbach 38b1d08ef7 Improve distro compatibility and dev environment testing 2026-03-18 20:00:33 +01:00
kevinveenbirkenbach 292feaa5da Add highest missing release workflow 2026-03-18 18:01:49 +01:00
kevinveenbirkenbach a715970506 Refactor lint tooling and shell scripts 2026-03-18 12:37:31 +01:00
kevinveenbirkenbach 67d17d8488 Merge branch 'main' into feature/web-app-mattermost
# Conflicts:
#	scripts/ci/wait_prebuilt_ci_image.sh
#	scripts/meta/wait/mirrors.sh
2026-03-18 11:33:27 +01:00
kevinveenbirkenbach ca1bf7832e Reorganize image scripts and PR wait logic 2026-03-18 11:26:12 +01:00
Alejandro Roman 07488e8fa1 fix(ci-lowercase): Add a logic to handle usernames that are not lowercase 2026-03-17 10:50:25 +01:00
kevinveenbirkenbach 692f47fda4 Changed default distro to debian 2026-02-20 10:00:31 +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 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 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 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 9555d65858 Removed log logic from ci 2026-02-03 12:28:45 +01:00
kevinveenbirkenbach 5c163900c1 test(matrix): exclude web-opt-rdr-www from universal tests
https://chatgpt.com/share/697a7c6e-a674-800f-9ace-27cc49399d87
2026-01-28 22:15:19 +01:00
kevinveenbirkenbach 249103bb56 feat(ci): unify local act workflow with CI discovery logic and strict input resolver
- Use docker-up + ci-discover-output for local discover job (same as CI)
- Add strict input resolver (scripts/meta/resolve/input.sh) with enforced env contract
- Ensure ONLY_APP is always defined (may be empty, but never unset)
- Expose resolved inputs as workflow outputs for linear matrix deploy
- Enforce linear matrix execution via max-parallel: 1
- Align act helper scripts with linear matrix semantics

https://chatgpt.com/share/6970ba64-8c2c-800f-bb90-7edbe9168582
2026-01-21 12:37:03 +01:00