Commit Graph
859 Commits
Author SHA1 Message Date
kevinveenbirkenbach 96487fad55 Revert "decoupeled test from image buzild"
This reverts commit e182883a48.
2026-01-20 22:08:10 +01:00
kevinveenbirkenbach e182883a48 decoupeled test from image buzild 2026-01-20 20:48:26 +01:00
kevinveenbirkenbach 41829df6e0 ci: build CI images first and use per-commit image tags in tests
- 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
2026-01-20 18:17:50 +01:00
kevinveenbirkenbach bbea43f669 refactor(ci,tests): migrate discovery and local deploy to development compose stack
- Replace legacy ci scripts with meta build-test-matrix and resolve-invokable-roles
- Switch log tailing to scripts/meta/log-tail.sh
- Rename local DNS helpers to scripts/dns/*
- Run ci-deploy-discover via development docker-up
- Replace deploy-local-full with development compose orchestrator
- Ensure INFINITO_DISTRO is passed explicitly for local full deploy

https://chatgpt.com/share/696f9ccd-e4d8-800f-9c67-9c071188ecd0
https://chatgpt.com/share/696facf5-b2fc-800f-8a33-3352dd193c54
2026-01-20 17:27:09 +01:00
kevinveenbirkenbach f56cfa773e **test(unit): add full unittest coverage for sufficient_storage CLI and role_resource_validation**
https://chatgpt.com/share/696e3d20-276c-800f-87a7-a7052989ffe4
2026-01-19 19:29:08 +01:00
kevinveenbirkenbach 98e44c2b99 Speed up piepline debugging 2026-01-19 18:39:50 +01:00
kevinveenbirkenbach 5e9a225881 Debugging github workflow pipeline 2026-01-19 18:38:34 +01:00
kevinveenbirkenbach f6005c9daa ci: wrap app discovery into Make target and run inside infinito container
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
2026-01-19 15:17:38 +01:00
kevinveenbirkenbach 3a7508fbf1 ci: rename make up/down targets to docker-up/docker-down in workflows and Makefile
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
2026-01-17 17:31:25 +01:00
kevinveenbirkenbach b978679531 Deactivated tests which aren't required for the MVP 2026-01-17 00:33:26 +01:00
kevinveenbirkenbach 65ed2c8e4a Build images already early so that all workflow runners are utilized 2026-01-16 21:06:17 +01:00
kevinveenbirkenbach 4f196fca71 Activated the testing for all distros, they are anyhow in the same runner 2026-01-16 15:56:16 +01:00
kevinveenbirkenbach 011613c3ec ci(orchestrator): introduce quality gates and staged deploy pipeline
- 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
2026-01-16 15:34:14 +01:00
kevinveenbirkenbach 26cde20899 Test DNS for all distros 2026-01-16 14:38:22 +01:00
kevinveenbirkenbach fd983bc69c refactor(ci,network): make DNS, IP and domain configuration fully env-driven
- 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
2026-01-16 14:30:14 +01:00
kevinveenbirkenbach 54d8997a1b ci(local): add serial test-deploy-local workflow and wire Makefile targets
- Add new test-deploy-local.yml workflow for local act runs
  - Uses env-based configuration (TEST_DEPLOY_TYPE, DISTROS, ONLY_APP)
  - Enforces serial execution via strategy.max-parallel: 1
  - Supports optional workflow_dispatch inputs for GitHub UI

- Refactor Makefile deploy targets
  - Move distro variables to top-level section
  - Add local act-based deploy flow using test-deploy-local.yml
  - Keep CI deploy flow via workflow_dispatch event payload
  - Remove deprecated rapid deploy path

This enables reliable, non-parallel local deploy testing with act
while keeping CI deploy workflows unchanged.

https://chatgpt.com/share/69692ef1-095c-800f-83cb-924fadfaa554
2026-01-15 19:16:05 +01:00
kevinveenbirkenbach 22bd1e37f9 ci: add per-ref concurrency to CI workflows and simplify push trigger
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
2026-01-15 18:17:42 +01:00
kevinveenbirkenbach 97cfdf3f9f ci(release): introduce daily stable promotion and unify release concurrency
- 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
2026-01-15 18:03:01 +01:00
kevinveenbirkenbach 40f039551f ci: default distro matrix in code-analyses and keep push fast on arch
- 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
2026-01-15 16:45:54 +01:00
kevinveenbirkenbach 28ec5d30a1 ci: split release workflows into dedicated concurrency groups
- 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
2026-01-15 16:37:32 +01:00
kevinveenbirkenbach 42a7f529d1 ci: make distros configurable per entry workflow and enforce via workflow_call
- 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
2026-01-15 16:33:46 +01:00
dependabot[bot] a3105afbf0 chore(deps): bump actions/upload-artifact from 4 to 6
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4 to 6.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v4...v6)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '6'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-01-15 01:49:25 +00:00
kevinveenbirkenbach a323f2199d optimized code tests 2026-01-15 02:07:31 +01:00
kevinveenbirkenbach 8ea56548d1 Optimized INFINITO_BUILD_LOCAL 2026-01-15 01:53:32 +01:00
kevinveenbirkenbach 4b5b768dce Enabled local build for test-code* workflows 2026-01-15 01:40:17 +01:00
kevinveenbirkenbach f78fcb21cb Added correct image tag to test-deploy-*.yml workflows 2026-01-15 01:30:48 +01:00
kevinveenbirkenbach 97642e949c ci(release): switch to immutable ci-<sha> image tags and retag on release
- 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
2026-01-15 01:20:39 +01:00
kevinveenbirkenbach d4d2f8123b ci(nightly): stop cancelling in-progress runs
- Disable cancel-in-progress for nightly workflow
- Allow queued nightly runs instead of killing active pipelines
- Rely on global concurrency for serialization only

https://chatgpt.com/share/6967e809-7df4-800f-a234-b40ead86626f
2026-01-14 20:08:44 +01:00
kevinveenbirkenbach fbc8444e6f ci(e2e): serialize deploy pipeline server -> universal -> workstation
- 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
2026-01-14 20:01:25 +01:00
kevinveenbirkenbach 2506c0a480 ci(release): restrict version workflow to v* tags on master only
- Remove manual workflow_dispatch trigger
- Gate release execution to tags reachable from master
- Prevent accidental releases from feature branches
2026-01-14 19:56:00 +01:00
kevinveenbirkenbach 7332cdf4fc ci(workflows): split release logic and add nightly release check
- Rename CI entry workflows to "entry-*" (push, PR, nightly)
- Replace monolithic ci-version workflow with reusable release-version workflow
- Add entry-push-version wrapper (tag push + manual dispatch)
- Add nightly job that triggers release workflow for missing version images
- Enable GHCR login for manifest-based existence checks

https://chatgpt.com/share/6967cff2-1584-800f-a2d3-1ef7a824f62f
2026-01-14 19:48:36 +01:00
kevinveenbirkenbach 48d3afa793 ci: introduce global CI concurrency with nightly priority
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
2026-01-14 18:49:49 +01:00
kevinveenbirkenbach 64f7a7d54d ci: serialize PR/push/scheduled/release runs via concurrency groups
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
2026-01-14 18:18:31 +01:00
kevinveenbirkenbach 3f667aadda ci: switch CI images to latest tag and skip compose build in deploy
- 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
2026-01-14 13:37:54 +01:00
kevinveenbirkenbach 0cad360d29 ci: refactor deploy workflows and make CI build behaviour explicit
- 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
2026-01-14 12:37:41 +01:00
kevinveenbirkenbach 517ccf44c0 ci: replace rest deploy mode with universal and add universal stage
- 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
2026-01-14 10:31:06 +01:00
kevinveenbirkenbach 13bd7c4f06 ci(build): fix disk pressure step by removing unbound NIX_CONFIG reference
- Remove debug echo of NIX_CONFIG to avoid nounset failure
- Prevent workflow crash when NIX_CONFIG is only passed via build-args

https://chatgpt.com/share/69675682-ef7c-800f-a8a3-c158b829f498
2026-01-14 09:40:28 +01:00
kevinveenbirkenbach e63f18a403 ci(deploy): keep stack only when running under act
- Default KEEP_STACK to true only for act runs
- Disable KEEP_STACK in GitHub Actions to prevent runner disk exhaustion
- Remove explicit KEEP_STACK overrides from deploy workflows

https://chatgpt.com/share/696752fb-befc-800f-9cf1-57093178297a
2026-01-14 09:35:01 +01:00
kevinveenbirkenbach 06e850f4bf ci(build): switch build cache to GHA and add disk pressure diagnostics
- 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
2026-01-14 09:25:26 +01:00
kevinveenbirkenbach dc4ef534c0 Added newline at end of file 2026-01-13 21:33:58 +01:00
kevinveenbirkenbach 673dab59d2 ci(deploy): prevent docker compose builds in GitHub Actions
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
2026-01-13 17:08:34 +01:00
kevinveenbirkenbach c4a0174f5c ci(build): switch buildx cache from gha to ghcr registry cache
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
2026-01-13 16:34:36 +01:00
kevinveenbirkenbach 045aae8914 ci(make,deploy): centralize CI image/pull config and remove workflow duplication
- 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
2026-01-13 16:10:14 +01:00
kevinveenbirkenbach c4f47a3017 ci(make): derive INFINITO_PULL_POLICY automatically and drop workflow duplication
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
2026-01-13 15:46:52 +01:00
kevinveenbirkenbach 1086e573c3 refactor(ci): move release helper scripts into scripts/release and drop legacy publish helpers
- Update release workflow to use new script paths
- Remove deprecated build publish/retag-stable scripts
- Fix minor comment typo

https://chatgpt.com/share/69662b40-6938-800f-8ab5-c85424e13db4
2026-01-13 13:36:17 +01:00
kevinveenbirkenbach a3e9201ff6 fix(ci): allow package writes for push, schedule and release workflows
https://chatgpt.com/share/69662b40-6938-800f-8ab5-c85424e13db4
2026-01-13 13:27:27 +01:00
kevinveenbirkenbach 83fd1d83f3 fix(ci): allow packages:write for reusable image build workflow
https://chatgpt.com/share/69662b40-6938-800f-8ab5-c85424e13db4
2026-01-13 12:25:15 +01:00
kevinveenbirkenbach 50212a2777 fix(ci): build matrix via prepare job and reuse computed image tag
https://chatgpt.com/share/69662b40-6938-800f-8ab5-c85424e13db4
2026-01-13 12:23:30 +01:00
kevinveenbirkenbach 392d15107b ci(release): build CI images, retag on release, gate stable on tests
- 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
2026-01-13 12:11:33 +01:00
kevinveenbirkenbach 56d211e60d ci(logs): centralize failure log tailing into reusable script
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
2026-01-13 11:23:02 +01:00