Commit Graph
62 Commits
Author SHA1 Message Date
kevinveenbirkenbachandClaude Sonnet 4.6 06a688c59a refactor(deploy): rename APP to APPS throughout the project
Makes clear that multiple space- or comma-separated app ids are
supported. Renames the env var, CLI flag (--app → --apps), and all
references in scripts, workflows, and documentation.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-29 11:41:31 +02:00
kevinveenbirkenbach e0f9ef1dd4 refactor: rename deploy ci and act scripts 2026-03-28 06:27:48 +01:00
kevinveenbirkenbach f20c1cdbc6 Refactor CI deploy script entrypoint 2026-03-27 21:51:13 +01:00
dependabot[bot] bc58b27eaa build(deps): bump actions/upload-artifact from 4 to 7
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4 to 7.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v4...v7)

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

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-26 01:44:23 +00:00
kevinveenbirkenbach cc910167e9 Guard empty deploy matrices and ignore JSON docker scan 2026-03-25 15:44:56 +01:00
kevinveenbirkenbachandClaude Sonnet 4.6 b50d84b5b3 feat: upload Playwright screenshots as GitHub Actions artifacts
- Add upload-artifact step to test-deploy-server.yml
- Copy reports from infinito container to runner in dedicated_distro.sh cleanup before volume prune

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 22:32:25 +01:00
kevinveenbirkenbach dcfd7016ae refactor workflow apt installs into script 2026-03-21 02:22:38 +01:00
kevinveenbirkenbach 292feaa5da Add highest missing release workflow 2026-03-18 18:01:49 +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 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 8810f39b8c Renamed docker commands 2026-02-10 20:30:54 +01:00
kevinveenbirkenbach 98837bac67 ci: extend deploy job timeout to 6h
Increase timeout-minutes from 240 to 360 for server, universal, workstation,
and local deploy workflows to match the GitHub-hosted runner job limit.

https://chatgpt.com/share/6989d36d-267c-800f-ad42-7bcb786f1727
2026-02-09 13:30:30 +01:00
kevinveenbirkenbach 0e44685137 Optimizes naming 2026-02-08 12:00:07 +01:00
kevinveenbirkenbach 9cce47d1ca Normalize GitHub Actions job names
- Add explicit job names where missing
- Standardize all job titles to Emoji + imperative + object format
- Improve CI readability and consistency across workflows
- No functional changes to job logic or execution order

https://chatgpt.com/share/6988695a-be4c-800f-85ba-5e67e5fef3e0
2026-02-08 11:45:42 +01:00
kevinveenbirkenbach 9555d65858 Removed log logic from ci 2026-02-03 12:28:45 +01:00
kevinveenbirkenbach 734f013179 ci: wire GHCR mirror envs into deploy workflows and inventory init
- Add required GHCR mirror environment variables to CI workflows
- Generate mirrors.yml during development inventory init on CI
- Introduce mirrors helper module with strict env validation
- Minor formatting cleanup in mirror providers
`

https://chatgpt.com/share/6980ff2e-8f18-800f-85e1-79d56a2027f5
2026-02-02 20:46:41 +01:00
kevinveenbirkenbach 5f36451327 Merge pull request #51 from kevinveenbirkenbach/dependabot/github_actions/actions/upload-artifact-6
chore(deps): bump actions/upload-artifact from 4 to 6
2026-01-25 11:16:52 +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 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 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 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 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 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 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 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 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 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
kevinveenbirkenbach 9206b7c9d4 Set fail-fast to false 2026-01-13 06:12:54 +01:00
kevinveenbirkenbach 1e4fb08d87 ci(deploy): run one GitHub runner per app via matrix jobs
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
2026-01-13 05:40:52 +01:00
kevinveenbirkenbach bdaac5cc90 ci(deploy): split per-app deploy into server/workstation/rest workflows (env-only defaults)
- Remove _deploy-per-app.yml (inputs-based indirection)
- Add dedicated workflows:
  - test-deploy-server.yml
  - test-deploy-workstation.yml
  - test-deploy-universal.yml (rest)
- Configure via env defaults only (KISS / SRP / SPOT)
- Update Makefile to target the new workflows and pass overrides via env
- Ensure deploy-one-app.sh is executable
- Keep failure debug (last 200 chars) and upload logs only outside act
2026-01-13 05:23:47 +01:00
kevinveenbirkenbach dac111ccb7 ci(deploy): simplify per-app deploy workflow and Makefile act targets
- 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
2026-01-13 03:41:25 +01:00
kevinveenbirkenbach 3329fbdfd5 ci(act): unify deploy matrix + force serial execution with max-parallel
- 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
2026-01-13 03:06:56 +01:00
kevinveenbirkenbach f686af4d3f ci(deploy-test): free docker disk space between distro runs
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
2026-01-11 10:50:36 +01:00
kevinveenbirkenbach 98dd9ae1e5 Removed fail fast to allow upload of logs
https://chatgpt.com/share/6962c49e-1e60-800f-b62d-d8269964ff09
2026-01-10 22:28:36 +01:00
kevinveenbirkenbach ccba04cdea Removed make down to speed up local testing by preventing recreation. On github actions ints anyhow everytime reinitialized. 2026-01-10 19:09:44 +01:00
kevinveenbirkenbach 1595520dc1 Added "--keep-stack-on-failure" to workflow for local debugging 2026-01-08 23:32:43 +01:00
kevinveenbirkenbach 5a6c58eabf Optimized workflow test 2026-01-08 22:39:41 +01:00
kevinveenbirkenbach 6b99fd7462 fix(ci): restore fail-fast behavior for server deploy tests
- stop iterating over distros after first deploy failure
- rely on set -euo pipefail instead of manual rc handling
- keep failure log output in dedicated workflow step

https://chatgpt.com/share/69601617-9808-800f-a7cd-f5e65e40c04e
2026-01-08 22:00:25 +01:00
kevinveenbirkenbach 1ca4fa5025 fix(ci): make server deploy tests robust and show logs on failure
- 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
2026-01-08 21:39:47 +01:00
kevinveenbirkenbach fbca540a4e ci: disable deploy log artifact upload when ACT=true
actions/upload-artifact requires ACTIONS_RUNTIME_TOKEN which is not
available when running workflows locally via act. Skip the upload
step in that case to avoid false CI failures.

https://chatgpt.com/share/6960147b-4a2c-800f-bb40-0d31bf1ebaa5
2026-01-08 21:32:54 +01:00
kevinveenbirkenbach b9174cce60 ci(test-deploy-server): fix artifact path for per-app deploy logs
https://chatgpt.com/share/696009f9-80b0-800f-a19c-3f5e7e108ae3
2026-01-08 20:50:39 +01:00
kevinveenbirkenbach 47cbc1e409 ci(test-deploy-server): exclude web-app-oauth2-proxy from server deploy matrix
Filter web-app-oauth2-proxy during app discovery so it is not included
in the server deploy test matrix.

https://chatgpt.com/share/696009f9-80b0-800f-a19c-3f5e7e108ae3
2026-01-08 20:47:56 +01:00
kevinveenbirkenbach 7941af48b9 ci(test-deploy-server): enable fail-fast for app matrix
Stop running remaining matrix jobs as soon as one app deployment fails,
reducing CI runtime and avoiding unnecessary resource usage.

https://chatgpt.com/share/695fd23c-c924-800f-8d8e-d88b44480eb9
2026-01-08 16:50:11 +01:00
kevinveenbirkenbach d6b0fb3be7 refactor(ci): run server deploy per app across all distros in single job
* 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
2026-01-08 13:57:22 +01:00