- 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
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
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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
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