Log in to your harness - The Modern Software Delivery Platform® account to give feedback

Feature Requests

Anonymous

Feature Requests for Harness. Select 'Category' based on the module you are requesting the feature for.
Conditional Stage-level execution based on changed files
Subject: Conditional stage-level execution based on changed files (without JEXL) Expected behavior Users should be able to configure stage-level execution rules based on changed files in a PR or push directly in the trigger, without needing to write JEXL expressions. Concretely, for each stage in a CI pipeline, users want to: Specify one or more file path / glob patterns (e.g. services/api/ , infra/ , frontend/**) that determine if that stage should run. Use a simple, UI-driven configuration (fields similar to trigger “file path” filters) in the trigger details, instead of manually writing and maintaining JEXL against the webhook payload. Leverage the same “changed files” information already used at the trigger level, but applied at stage granularity, so that different stages can run (or be skipped) depending on which parts of the repo changed. This is a common CI pattern in other tools (e.g., “run this job only if files under X changed”), and users expect it to be straightforward to configure. Observed behavior / current limitation Today, Harness allows file path conditions at the trigger level, including “run this trigger only if certain files changed”. However, stage-level control is: Static: you can choose which stages run in the trigger configuration, but this is not dynamic per execution, or Dynamic only via JEXL, where users must: Parse the trigger payload (e.g. <+trigger.payload> / webhook body). Derive changed files manually. Write a JEXL condition per stage to decide whether it should execute. This JEXL-based approach: Is not intuitive for many users. Is error-prone and hard to maintain. Feels like an anti-pattern for what customers consider a “simple CI feature”. How to observe / example use case Customer has a PR checks pipeline with multiple stages, for example: backend-tests → should run when backend/** changes. frontend-tests → should run when frontend/** changes. infra-validation → should run when infra/** changes. A trigger is configured for PR events on a Git repo. They want each stage to automatically run only when the corresponding path patterns change in the PR. Today: Trigger-level path filters can decide whether to fire the pipeline at all, but cannot selectively run stages. Stage-level dynamic behavior requires manual JEXL against the payload to simulate “changed files” logic in the conditional execution settings. There is no built-in, discoverable UI option at the stage level to say: “Run this stage only when these files change.”
0
Load More