Skip to content

feat: add pipeline source and schedule name simulation capabilities - #1630

Closed
xoro wants to merge 1 commit into
firecow:masterfrom
xoro:master
Closed

feat: add pipeline source and schedule name simulation capabilities#1630
xoro wants to merge 1 commit into
firecow:masterfrom
xoro:master

Conversation

@xoro

@xoro xoro commented Aug 15, 2025

Copy link
Copy Markdown
  • 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

firecow commented Aug 15, 2025

Copy link
Copy Markdown
Owner

@xoro Holy christ, this is awesome work 😄

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

@xoro

xoro commented Aug 16, 2025

Copy link
Copy Markdown
Author

@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

xoro commented Aug 18, 2025

Copy link
Copy Markdown
Author

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