Commit Graph
813 Commits
Author SHA1 Message Date
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
kevinveenbirkenbach 9206b7c9d4 Set fail-fast to false 2026-01-13 06:12:54 +01:00
kevinveenbirkenbach 142948a02f Added missing universal workflow 2026-01-13 05:43:53 +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 853528a4ca Removed fail-fast strategy for workstations 2026-01-09 01:06:41 +01:00
kevinveenbirkenbach 4390e3e847 Changed to fail fast strategy for workstations to improve test time 2026-01-09 01:03:42 +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
kevinveenbirkenbach fab08aadf6 refactor(ci): split deploy tests into per-app server matrix and workstation workflow
- Replace shared test-deploy workflow with dedicated server/workstation workflows
- Add discovery step to generate per-app server matrix from invokable roles
- Introduce helper script to output discovered server apps as JSON
- Keep compose stack cleanup robust via trap and always upload per-run logs

https://chatgpt.com/share/695f9e22-6e9c-800f-9a50-65f553619af2
2026-01-08 13:30:07 +01:00
dependabot[bot] 15956efef6 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-08 02:34:21 +00:00
kevinveenbirkenbach 335201d8a0 ci(deploy): show deploy type in job name (server/workstation)
https://chatgpt.com/share/695ea753-04a8-800f-91a4-4ec5b41cfdc0
2026-01-07 19:34:48 +01:00
kevinveenbirkenbach f3fa8d7680 fix(ci): avoid git ownership issues by syncing source as root
- Replace clean-container with compose down for predictable teardown
- Add explicit up/down targets to Makefile
- Sync bind-mounted source into internal repo using rsync --chown=root:root
- Prevent git dubious ownership errors in CI containers running as root

https://chatgpt.com/share/695d7045-a1f8-800f-83d0-f5872d85cfcf
2026-01-06 21:27:43 +01:00
kevinveenbirkenbach 7c6af3e474 ci(deploy): unify deploy workflows and persist logs as artifacts
https://chatgpt.com/share/695d590e-5164-800f-876f-3d79009b197d
2026-01-06 19:48:08 +01:00
kevinveenbirkenbach cebefc87a2 ci: align workstation deploy workflow with Makefile test-deploy
* update test-deploy-workstation workflow to use make clean-container and make test-deploy with TEST_DEPLOY_TYPE=workstation
* extend Makefile test-deploy to accept TEST_DEPLOY_TYPE (default server) and pass it through to scripts/tests/deploy.sh
* note: add missing newline at end of test-deploy-workstation.yml to avoid diff noise
2026-01-06 13:41:28 +01:00
kevinveenbirkenbach 40ffd613ad ci: remove ci-publish workflow to avoid skipped image builds
* Delete ci-publish.yml which relied on workflow_run and skipped publishing on test failures
* Ensure images are built and published directly on version tag pushes
* Keep stable tagging gated by successful code analyses only

https://chatgpt.com/share/695be89a-6f30-800f-bee4-40cfd4ef6263
2026-01-05 17:36:19 +01:00
kevinveenbirkenbach 6936d84798 ci: always build & publish images for version tags, gate stable on tests
- Always build and publish Docker images for v* tags (version + latest),
  independent of test results
- Run full code analyses in parallel and only mark Git + container :stable
  when all checks succeed
- Replace rebuild-on-stable with pure imagetools retagging (no rebuild)
- Prevent race conditions by ordering stable tagging after image publish
- Ensure latest always tracks the most recent version image

https://chatgpt.com/share/695bdfa5-dbe0-800f-bb1c-4fe81eba6058
2026-01-05 16:58:21 +01:00
kevinveenbirkenbach 164dd4001b fix(ci,compose): use compose-only runner with host cgroups and clean stack reset
- switch deploy tests to docker compose exec (-T) instead of docker exec
- remove hard dependency on INFINITO_CONTAINER
- ensure clean CI state via compose down -v before deploy tests
- start coredns + infinito exclusively via compose
- enable host cgroup namespace for systemd containers (cgroup: host)

https://chatgpt.com/share/6953e367-b674-800f-bc55-97e8625314cf
2025-12-30 15:36:16 +01:00
kevinveenbirkenbach c825dffbf7 ci(deploy): unify test-deploy entrypoint via Makefile and INFINITO_DISTRO
- switch workflow to `make test-deploy` with matrix-driven INFINITO_DISTRO
- centralize container naming via INFINITO_CONTAINER
- add clean-container helper for reliable CI reruns
- remove --distro CLI flag and rely on env-based distro selection
- pass NIX_CONFIG as docker build arg for rate-limit-safe builds

https://chatgpt.com/share/6953d266-aa80-800f-88b8-0413926a81f0
2025-12-30 14:23:44 +01:00
kevinveenbirkenbach 9e7d974f54 Removed test-deploy-workstation 2025-12-29 22:27:51 +01:00
kevinveenbirkenbach 38a0f4fd5b Removed universal worklow 2025-12-29 22:00:19 +01:00
kevinveenbirkenbach 8a23797afe Merge pull request #44 from kevinveenbirkenbach/feature/matomo-autosetup
Feature/matomo autosetup
2025-12-29 19:59:43 +01:00
dependabot[bot] 14c4ca76f5 build(deps): bump docker/setup-buildx-action from 3.11.1 to 3.12.0
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 3.11.1 to 3.12.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/e468171a9de216ec08956ac3ada2f0791b6bd435...8d2750c68a42422c14e847fe6c8ac0403b4cbd6f)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-version: 3.12.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-25 01:04:51 +00:00
kevinveenbirkenbach 9c340ef3a1 Passed NIX_CONFIG parameter and optimized workflow naming 2025-12-23 16:12:40 +01:00
kevinveenbirkenbach f28e173d23 fix(ci): restore CI push trigger for normal branch commits
- Explicitly trigger CI (push) on all branches
- Continue to ignore version, stable and other release tags
- Prevent missing CI runs on regular commits while avoiding tag-based duplicates

https://chatgpt.com/share/6948fa05-1970-800f-a010-59c8c3588713
2025-12-22 09:55:40 +01:00
kevinveenbirkenbach c82d1f6ca3 fix(ci): eliminate duplicate workflow runs by separating branch and tag triggers
- Run CI (push) only on branch pushes and ignore version/stable/latest tags
- Run versioning workflow exclusively on v* tag pushes
- Remove overlapping branch triggers to prevent double executions

https://chatgpt.com/share/6948fa05-1970-800f-a010-59c8c3588713
2025-12-22 09:53:23 +01:00
kevinveenbirkenbach fc7ba32db0 fix(ci): prevent duplicate runs by ignoring tag pushes in CI (push)
Limit CI (push) to main/master branches and ignore version and stable tags
to avoid duplicate workflow executions.

https://chatgpt.com/share/694905df-e06c-800f-8876-9f6682e22943
2025-12-22 09:48:25 +01:00
kevinveenbirkenbach 2cf4d880ae Optimized deploy run names 2025-12-21 12:34:46 +01:00
kevinveenbirkenbach cc9c2dceb8 fix(ci,nix): forward NIX_CONFIG into docker build and runtime to avoid GitHub rate limits
- Export NIX_CONFIG in CI jobs and Makefile
- Pass NIX_CONFIG as docker build-arg
- Use NIX_CONFIG only in relevant Dockerfile RUN steps (no secret persistence)
- Forward NIX_CONFIG to test and deploy containers

https://chatgpt.com/share/6947c681-abc8-800f-ba12-de2ff3a7abad
2025-12-21 11:05:31 +01:00
kevinveenbirkenbach 2cb7bab23a ci(hadolint): upload SARIF before failing on findings
https://chatgpt.com/share/69456f33-94f0-800f-9559-62959b75144e
2025-12-19 16:29:13 +01:00
kevinveenbirkenbach f775ae9dfa ci(deploy): run deploy tests with --missing and docker-based invokable excludes 2025-12-19 16:07:59 +01:00
kevinveenbirkenbach 0df20ab304 Set correct Variable 2025-12-19 15:26:34 +01:00