Skip to content

Conversation

xoro
Copy link

@xoro xoro commented Aug 15, 2025

  • Add --pipeline-source option supporting all 15 official GitLab CI sources
  • Add --schedule-name option for testing specific schedule configurations
  • Implement comprehensive validation and error handling
  • Add constants-based validation with VALID_PIPELINE_SOURCES array
  • Add complete test coverage and examples directory
  • Update documentation with step-by-step getting started guide

Enables local testing of complex GitLab CI pipeline configurations including conditional logic, scheduled pipelines, and complex rules.

- Add --pipeline-source option supporting all 15 official GitLab CI sources
- Add --schedule-name option for testing specific schedule configurations
- Implement comprehensive validation and error handling
- Add constants-based validation with VALID_PIPELINE_SOURCES array
- Add complete test coverage and examples directory
- Update documentation with step-by-step getting started guide

Enables local testing of complex GitLab CI pipeline configurations
including conditional logic, scheduled pipelines, and complex rules.
@firecow
Copy link
Owner

firecow commented Aug 15, 2025

@xoro Holy christ, this is awesome work 😄

I'll probably be a few days with my review, but hang tight.

@xoro
Copy link
Author

xoro commented Aug 16, 2025

@firecow Thank you very much for your nice feedback. :-)
I am developing a DDNS server called FlyingDdns on GitLab:
https://gitlab.com/timopallach/FlyingDdns
I have a more or less complex pipeline setup and I heavily use the Gitlab CI include feature to "dynamically" build my pipeline scenario depending on the schedule and source.
I wanted to know if my pipeline breaks already in my pre commit hook so I tried several tool out there.
The most promising was gitlab-ci-local but it was missing these two small pieces I needed.

@xoro
Copy link
Author

xoro commented Aug 18, 2025

I just figured out that I have implemented an already existing functionality.
You could use the --variable option and pass the CI_* var like this:
gitlab-ci-local --variable CI_COMMIT_TAG=1.1.1 --list
gitlab-ci-local --variable CI_PIPELINE_SOURCE=schedule --variable SCHEDULE_NAME="Nightly Development Branch Build" --list

I therefor close the pr!
Sorry for the inconveniences!!! 🤦‍♂️

@xoro xoro closed this Aug 18, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants