v0.6.0
Notable features#
Variable inspection —
glci variablesprints every job’s resolved variables and their source layer, plus a rule trace showing eachrules:condition with$VARs expanded and whether it matched; add--show-variablestoglci runto see API secrets, dotenv imports, and runtimeCI_*values inline (docs).glci variables deploy_proddeploy_prod (stage: deploy) [included, when: on_success] Rules: #0 $CI_COMMIT_BRANCH (main) == $CI_DEFAULT_BRANCH (main) → true Variables: KEY VALUE SOURCE CI_COMMIT_BRANCH main predefined DEPLOY_ENV production rules GREETING hello globalWatch mode —
--watchre-runs the pipeline automatically whenever your.gitlab-ci.ymlor source files change, for tight local iteration (docs).glci run --watchComposable pipeline presets — presets can now
extendsanother preset to build tiered configs;jobs/stagesunion additively, scalars andenvoverride (docs).[pipelines.tier2] extends = "tier1" jobs = ["rubocop", "eslint-changed-files"]Multiple Docker daemons & named runners — define named runners in
.glciconfig.toml, each with its ownconfig_template(customconfig.toml) and its own Docker daemon viadocker_host/docker_context. Jobs route to a runner when a CI tag matches the runner name (docs).# .glciconfig.toml [runners.gpu] docker_host = "ssh://gpu-host" config_template = """ [[runners]] [runners.docker] gpus = "all" privileged = true """ [runners.arm] docker_context = "colima-arm" config_template = """ [[runners]] [runners.docker] platform = "linux/arm64" """# .gitlab-ci.yml train-model: tags: [gpu] # routed to the gpu runner on ssh://gpu-host script: [python train.py]dotenv variable propagation —
artifacts:reports:dotenvvalues from a producer job are now injected into downstream jobs thatneed:/depend onit, matching GitLab CI (docs).build: artifacts: reports: dotenv: variables.env
Bug fixes#
- Fix OpenCode skill installing as agent instead of skill (63c9780)
- Fix glci stop: signal runner to abort via Job-Status: canceled (e7d9988)
- Fix canceled jobs showing stale status in history (581eeef)
- Fix force-stop overwriting terminal pipeline status in history (d998436)
- Fix finalizePipeline clobbering metadata and retry ignoring config file (5f3e5b1)
- Fix CLI display bugs: manual jobs, ghost history, log timestamps, metadata, status icons (c4e182f)
- Fix config defaults for executor/image/git-strategy overridden by CLI flag defaults (79c5bee)
- Fix allow_failure jobs wrongly promoted to passed in pipeline summary (82ef044)
- Fix history show displaying inputs as Go map literal (ae3ae3c)
- Fix container name collisions for per-config runners (3fb3bad)
- Fix config template file not overriding global inline template (1430383)
- Fix cleanup order in reprepare breaking runner config reload (8faa246)
- Fix e2e test and SKILL.md still referencing removed .Token (348c259)
- Fix config show missing runner and named runners sections (7b3d7ca)
- Fix misleading empty-state message in config show (52e4e68)
- Fix config checks for host (6abb1b1)
- Fix legacy config token stamping and broken Hugo shortcode (0a5a840)
- Fix e2e:simulate failing on pullthrough jobs that need real registry (9fa182f)
- Fix concurrent pipeline stuck jobs via persistent bus network (0a819e4)
- Fix artifacts from failed jobs not exposed when artifacts:when is set (1e56237)
- Fix include:project file paths starting with a leading slash (7aed166)
- Fix cross-project pipelines: local project config and trigger job variables (e1f2977)
- Fix broken build: missing presetVars arg in parentVariableContext (2650ac8)
Maintenance#
- Update documentation, architecture, and Makefile for per-config runners (13b030c)
- Remove Token from config template context (74fd2f4)
- Remove phantom config fields from documentation (de8d662)
New features#
- Add TOML merge utility and enhance runner config generation (bc48df0)
- Add config template support and per-config runner loading (5e4ea44)
- Implement per-config runner deployment with isolated containers (fd05120)
- Add e2e tests for config templates and per-config runners (edc386f)
- Add tests for cancel-job review findings (ba89f4d)
- Add validation warning for both config_template and config_template_file set (6184a2e)
- Support artifacts:reports:dotenv variable propagation (9c97f12)
- Add –watch mode with –on-change hook (f92da58)
- Add extends field to pipeline presets for composable inheritance (f2876c0)
- Support multiple Docker daemons for runner execution (e31a9dd)
- Support per-runner TLS cert configuration for tcp:// docker_host (179353f)
- Support Windows Docker daemons as remote runner targets (845209c)
- Add variable inspection:
glci variablesandrun --show-variables(cdc8dd4)
Other changes#
- Enhance mock server for multi-runner and per-config support (f6f51e8)
- Adapt CLI and scheduler for per-config runners (241ab47)
- Document config templates, named runners, and per-config runner deployment (bdb5397)
- Address review findings for cancel-job implementation (df542ba)
- Signal mock server on job timeout so runner aborts timed-out jobs (76bdecb)
- Skip canceled jobs during dispatch and cancel child pipeline jobs on parent stop (7d9b00b)
- Address review findings: cross-project cancel, compaction, docs, tests (ef7712b)
- Report canceled pipelines as ‘canceled’ instead of ‘failed’ (89368ac)
- Queue pipeline requests instead of rejecting concurrent preparations (d048e73)
- Resolve ~latest and shorthand semver selectors in component includes (28e7adb)
- Additive stages + jobs union in pipeline presets (eaf78c9)
- Improve daemon version mismatch detection for dev builds (2513b77)
- Evaluate rules in child and cross-project pipelines (a00f158)
- Strip Docker credential helpers from config injected into containers (7a41f86)
- Align cross-project/child pipeline behavior with upstream GitLab (fixes #88, #90) (2528a0a)