Feedback issue: Validate pipeline under selected conditions
Feature details
This issue is to gather feedback on the first iteration of the feature to validate pipeline under selected conditions. See #337282 (closed)
This feature allows you to validate pipeline syntax and the logic established with such keywords as rules, only, except and needs.
In the first iteration, the only condition available for testing is a git push event to the default branch. In further iterations we'd like to introduce more conditions such as different pipeline trigger events and variables.
Implementation Guide
simulate_pipeline_creation method at lib/gitlab/ci/lint.rb:47.
Please provide your feedback
- What's working well?
- What's not working well?
- What can we improve?
- What other conditions would you like to see added to this feature?
Summary of Feedback as of Aug 5 2026
What's Working Well
Users appreciate the core concept and find it valuable for debugging pipelines. The ability to validate syntax and see which jobs would run is helpful, and it saves time compared to trial-and-error testing.
Limitations of Current Implementation
The feature only supports simulating a git push to the default branch. This severely limits its usefulness since most real-world pipelines need to handle multiple scenarios.
Most Requested Additional Conditions
- Merge request pipelines — testing
merge_request_eventsource - Tag pushes — simulating
CI_COMMIT_TAGconditions - Scheduled pipelines — testing
schedulesource - Different branches — simulating pushes to non-default branches
- Custom variables — ability to set
CI_*variables and pipeline inputs - Cross-project triggers — testing downstream pipelines
Specific Pain Points
- Permission issues — developers without merge rights to main can't validate pipelines for that branch
- Rules debugging — no visibility into why a job was included or excluded
- Local file includes — validation fails with confusing error messages when using
include: local: - Pipeline inputs — simulation fails if inputs have no defaults
- Complex rules — as pipelines grow more complex with multiple conditions, the need for simulation becomes critical
Workflow Integration Requests
- Direct access from merge requests or
.gitlab-ci.ymlfile view - Ability to set files for
rules:changesconditions - Visibility into merged YAML when using conditional includes
- Better error messages and diagnostics
Overall Sentiment
Users describe this as a desperately needed feature for CI development, as the current workflow forces "commit and pray" testing. Multiple customers (Premium and Ultimate tiers) have requested this, and the team has acknowledged it's open for community contributions.