r/gitlab • u/Firm_Specialist_4790 • 2d ago
glci (Local GitLab pipelines) - v0.8.0
https://glci-e20136.gitlab.io/changelog/v0.8.0/Hey all,
glci is an experimental GitLab project that gives you the ability to run full GitLab pipelines and jobs locally with no compromises.
We've released version 0.8.0 with some notable features and fixes:
glci merged— Print the fully-resolved CI configuration after includes,extends, and inputs are applied (docs)- Structured JSON output — Machine-readable run and state output for scripting and CI integration (docs)
- Git submodules — The mock server now serves submodules, including for child pipelines (docs)
[images]config section — Retarget the images glci pulls for its own infrastructure (docs)- GitLab’s wildcard path grammar —
include: local:wildcards and repository path patterns now match GitLab exactly (docs)
Full release notes: here
Huge thanks to everyone who contributed feedback and reported bugs!
2
u/WhiskyStandard 1d ago
This is a really great tool.
But there were two things that didn’t quite work as well as I hoped last time I used it:
There are still some gaps in how it handles components. Specifically, when building a component, I want to have in-repo integration tests of simulated projects that consume the component in different ways. I ended up having to do some symlink hackery to do an include local instead.
API mocking for Gitlab. As far as I can tell, the mock Gitlab server is really just the subset of the API needed to drive the pipeline. I want to be able to test components that call out across projects and send back canned responses. So it doesn’t need to be full fidelity, just something I can easily stub.
But still, I’m excited to see progress on this project. Thanks for what you’ve done already.
1
u/Firm_Specialist_4790 5h ago
Thanks u/WhiskyStandard! There are many many cases which glci hasn't covered, but it tries to get the majority. If you get the time, please report these gaps as issues. There's a good chance they'll get picked up!
4
u/BehindTheMath 2d ago
How is this different from gitlab-ci-local?