Commit Graph
813 Commits
Author SHA1 Message Date
kevinveenbirkenbach 8810f39b8c Renamed docker commands 2026-02-10 20:30:54 +01:00
kevinveenbirkenbach bf5253f675 Shortened job name 2026-02-10 12:53:16 +01:00
kevinveenbirkenbach c6ba2f2e41 ci: skip branch-creation runs and drive release logic by commit tags
- Skip CI on branch creation pushes (github.event.created)
- Detect version tags directly on the commit (v*)
- Expose is_version and version_tag as workflow outputs
- Drive release guard and release jobs by commit tag state instead of tag-push events
- Pass resolved version tag explicitly to release workflow

https://chatgpt.com/share/698b0398-4f54-800f-86c4-91260bc2a628
2026-02-10 11:08:13 +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 74a036c9f2 ci: checkout repository in pick-distro job to enable tag detection
Ensure the pick-distro job has a git context so `git tag --points-at`
works correctly and no longer fails with "not a git repository".

https://chatgpt.com/share/69898844-3374-800f-8f45-d5d73b847326
2026-02-09 08:09:51 +01:00
kevinveenbirkenbach 95f0d87b07 ci(workstation): skip deploy job when no apps are discovered
Prevent GitHub Actions matrix evaluation errors by conditionally skipping
the workstation deploy job when the discovered app list is empty.

https://chatgpt.com/share/69891ab9-71b8-800f-86e2-cc8e9b575d6d
2026-02-09 00:22:27 +01:00
kevinveenbirkenbach 53cd0fc4b4 ci: run full distro matrix when pushed commit has version tag
Detect v* tags pointing at GITHUB_SHA instead of relying on tag push events.
This ensures that branch pushes with a version-tagged commit trigger all distros,
while regular commits still run on a single randomly selected distro.

https://chatgpt.com/share/69890da6-da90-800f-916c-b788eadaf6a1
2026-02-08 23:26:41 +01:00
kevinveenbirkenbach 8db2cab9a1 ci: restrict push workflow to main, master, feature/* and hotfix/*
https://chatgpt.com/share/6988ceca-008c-800f-a329-66cf49d69d7d
2026-02-08 18:58:18 +01:00
kevinveenbirkenbach 2b10766886 Remove tag trigger from push workflow
Drop the v* tag trigger so the CI pipeline runs only on branch pushes.
This prevents duplicate workflow executions when pushing a branch and
a version tag together and aligns the workflow with the new release
process where tags are detected on HEAD during the branch push.

https://chatgpt.com/share/6988bef0-1a0c-800f-93df-7a6c1bdc0331
2026-02-08 17:56:13 +01:00
kevinveenbirkenbach c3c04ad77a Optimized name 2026-02-08 15:22:22 +01:00
kevinveenbirkenbach 382a9f7087 Optimized workflow job names 2026-02-08 14:41:21 +01:00
kevinveenbirkenbach 7808e6297c Optimized names 2026-02-08 12:02:45 +01:00
kevinveenbirkenbach 0e44685137 Optimizes naming 2026-02-08 12:00:07 +01:00
kevinveenbirkenbach 81c10109f1 Fix and normalize remaining GitHub Actions job names
- Normalize build CI image job title
- Rename Python lint job to match naming convention
- Add missing job name to release workflow
- Fix broken job name syntax in local deploy workflow

https://chatgpt.com/share/69886b6c-4288-800f-a6b7-d4a2325a8e62
2026-02-08 11:54:25 +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 a35e83093d Enabled workstation workflow 2026-02-08 11:35:39 +01:00
kevinveenbirkenbach 2eeaad9650 Removed release stable workflow. every image is now implicit stable 2026-02-08 11:28:15 +01:00
kevinveenbirkenbach 24e504982d Optimized name 2026-02-08 11:16:55 +01:00
kevinveenbirkenbach 17ebdb62dd ci: allow release workflow to request required permissions
- grant contents:write and actions:read in entry workflow
- fix startup failure when calling release-version.yml

https://chatgpt.com/share/6988607b-3330-800f-9d3b-4fc06fab5d56
2026-02-08 11:14:51 +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 f16215d7d1 Removed release-push workflow 2026-02-08 10:29:02 +01:00
kevinveenbirkenbach 36a5b2e8b1 ci: select all distros on version tags, random one on branches
- Change pick-distro job to output space-separated distros list
- Run CI on all supported distros for semantic version tags (vX.Y.Z)
- Keep random single-distro execution for branch pushes
- Rename output from `distro` to `distros` for clarity and consistency

https://chatgpt.com/share/69885691-fac0-800f-9399-71e62145e4f5
2026-02-08 10:25:29 +01:00
kevinveenbirkenbach 5db783bfa5 Removed overcomplicated nightly build workflow 2026-02-08 10:11:52 +01:00
kevinveenbirkenbach a203959ef8 Merge pull request #56 from kevinveenbirkenbach/dependabot/github_actions/actions/setup-python-6
build(deps): bump actions/setup-python from 5 to 6
2026-02-08 09:47:52 +01:00
kevinveenbirkenbach 5d828b2698 Optimized workflow names 2026-02-05 11:27:37 +01:00
kevinveenbirkenbach 8a81630391 Added newline at file and POSIX compatible 2026-02-04 19:49:56 +01:00
kevinveenbirkenbach 6658e27d73 Updated names 2026-02-03 20:39:59 +01:00
kevinveenbirkenbach f188fac7bf ci: replace distro shuffle with single random distro selection
- select exactly one random distro per push
- pass single distro to ci-orchestrator
- add clear CI job names with emojis

https://chatgpt.com/share/69823c91-fccc-800f-ae3e-ad50a85f3fe5
2026-02-03 19:37:32 +01:00
kevinveenbirkenbach 308326ae75 ci(push): shuffle distro order for push pipeline
- Add a shuffle-distros job to randomize distro execution order
- Pass shuffled distros to ci-orchestrator instead of hardcoded arch
- Improve load distribution across arch, debian, ubuntu, fedora, centos
- Keep concurrency semantics unchanged

https://chatgpt.com/share/69820309-ac04-800f-b4ae-d2eba93c956d
2026-02-03 15:15:24 +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 7092caf7fb ci(concurrency): isolate CI concurrency per repo and branch
Previously all CI entry workflows shared a single global
concurrency group, blocking parallel runs across branches.
This scopes concurrency to repository + branch.

https://chatgpt.com/share/6981bad4-e1cc-800f-bef9-15f10ff6f7e5
2026-02-03 10:07:15 +01:00
kevinveenbirkenbach 970c0c8e50 ci(mirror): disable default throttling for only-missing workflow
- Remove default images_per_hour value for mirror-images-missing
- Avoid unintended throttling

https://chatgpt.com/share/698160fa-f39c-800f-a645-c6fbf533b9f8
2026-02-03 03:44:07 +01:00
kevinveenbirkenbach fddc5330b6 fix(ci): fail mirror workflows when image sync fails
Remove continue-on-error from mirror jobs and steps so the workflow
correctly fails when skopeo image mirroring reports errors.

https://chatgpt.com/share/69814760-6940-800f-bad7-0e653c352fff
2026-02-03 01:54:48 +01:00
dependabot[bot] 856efd4e59 build(deps): bump actions/setup-python from 5 to 6
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5 to 6.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v5...v6)

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

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-03 00:45:16 +00:00
kevinveenbirkenbach c0cd4b8eda feat(ci,mirror): add branch-scoped mirror of missing images and gate deploys on it
- Introduce reusable workflow `mirror-images-missing.yml` to mirror only missing
  Docker Hub images to GHCR using `--only-missing`
- Scope mirror concurrency per branch using `github.ref_name`
- Rename full mirror workflow to `mirror-images-all.yml` for clarity
- Integrate missing-image mirror into CI orchestrator and gate server/universal
  deploys on successful mirror completion
- Add tag existence checks via `skopeo inspect` to avoid redundant uploads
- Keep mirror runs best-effort to avoid blocking CI on transient registry issues

https://chatgpt.com/share/698141e9-0844-800f-9c4f-fecd468ede73
2026-02-03 01:31:30 +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 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 4949b45f44 feat(mirror): add rate-limited image sync with concurrency protection
- add optional --images-per-hour throttle to mirror sync
- enforce safe default (50 images/hour) in CI
- prevent overlapping mirror runs via workflow concurrency
- make workflow robust for schedule, dispatch, and workflow_call
- fix GHCR namespace fallback to repository owner

https://chatgpt.com/share/6980be4f-d5d4-800f-a9ad-2aaba637897e
2026-02-02 16:09:57 +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
kevinveenbirkenbach e7fdaa1d10 fix(mirror): iterate all images and fail at end on mirror errors
- mirror sync now continues on individual skopeo failures
- collect and summarize failed images
- return non-zero exit code only after all images were processed
- make GitHub workflow respect mirror sync exit status

https://chatgpt.com/share/6980b558-5fdc-800f-911e-48bbc35a461f
2026-02-02 15:45:27 +01:00
kevinveenbirkenbach c67e20d06c ci(mirror): make ghcr_namespace optional and default to repository owner
https://chatgpt.com/share/6980b558-5fdc-800f-911e-48bbc35a461f
2026-02-02 15:31:33 +01:00
kevinveenbirkenbachandCopilot Autofix powered by AI 4785335a6b Potential fix for code scanning alert no. 173: Code injection
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
2026-01-25 14:42:51 +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 10e0b7d479 Test universal parallel to server 2026-01-25 10:19:15 +01:00
kevinveenbirkenbach fc9e77241b Activated universal CI tests 2026-01-25 10:17:14 +01:00
kevinveenbirkenbach 9fd8b2328e ci(lint-shell): fix container invocation for shellcheck
- Use container ENTRYPOINT directly instead of calling shellcheck twice

https://chatgpt.com/share/69756a53-53c8-800f-9056-37baac0ab931
2026-01-25 01:59:28 +01:00
kevinveenbirkenbach f3e1ee0960 ci(lint): run ShellCheck via container and fix SC1091 false positives
- Run ShellCheck using koalaman/shellcheck container instead of apt
- Align CI linting behavior with local ShellCheck versions
- Suppress SC1091 for sourcing /etc/os-release in docker install script

https://chatgpt.com/share/69756a53-53c8-800f-9056-37baac0ab931
2026-01-25 01:56:42 +01:00
kevinveenbirkenbach 792b78fe44 fix(ci): allow optional Docker Hub login in mirror workflow
Copy Docker Hub secrets into job env and use env.* in if-condition.
This fixes GitHub Actions validation error caused by using secrets.*
directly in step conditions.

https://chatgpt.com/share/6972020d-afc4-800f-8713-917767b3ac73
2026-01-22 11:54:57 +01:00
kevinveenbirkenbach b8a3deaaf3 ci(mirror): add nightly and reusable GHCR mirror workflow (never-fail)
Add a scheduled (06:00 UTC), manual and reusable workflow to mirror Docker Hub
images to GHCR using skopeo. The job runs best-effort and never fails the pipeline,
with optional Docker Hub authentication and configurable namespace/prefix.

https://chatgpt.com/share/6971e6cf-be18-800f-9419-589fd3e22c3d
2026-01-22 11:16:01 +01:00