Uploaded image for project: 'OpenShift Pipelines'
  1. OpenShift Pipelines
  2. SRVKP-6464

add an annotation to match a PipelineRun on a path change

XMLWordPrintable

    • False
    • None
    • False
    • Hide
      Introduce easier-to-use annotations for matching PipelineRuns by file
      path changes:
      - `on-path-changed`: Matches PipelineRun if specified paths have
        changes.
      - `on-path-changed-ignore`: Matches PipelineRun if specified paths **do
        not** have changes.

      Examples:
      1. `on-path-changed: ["pkg/*", "cli/*"]` matches if files in `pkg` or
         `cli` changed.
      2. `on-path-changed-ignore: ["docs/**"]` matches if no changes occurred
         in the `docs` directory.

      Annotations can be combined for more specific use cases:
      - `on-path-changed: ["docs/**"]`
      - `on-path-changed-ignore: ["docs/generated/**"]`

      This setup triggers a PipelineRun when there are changes in the `docs`
      directory, except for files under `docs/generated`.

      Enhanced annotation options also support:
      - Targeting specific events (`on-target-event`: e.g., `pull_request`,
        `push`).
      - Matching specific branches (`on-target-branch`: e.g., `main`).

      This improves usability over existing CEL-based configuration and makes
      defining file-based triggers more intuitive.
      Show
      Introduce easier-to-use annotations for matching PipelineRuns by file path changes: - `on-path-changed`: Matches PipelineRun if specified paths have   changes. - `on-path-changed-ignore`: Matches PipelineRun if specified paths **do   not** have changes. Examples: 1. `on-path-changed: ["pkg/*", "cli/*"]` matches if files in `pkg` or    `cli` changed. 2. `on-path-changed-ignore: ["docs/**"]` matches if no changes occurred    in the `docs` directory. Annotations can be combined for more specific use cases: - `on-path-changed: ["docs/**"]` - `on-path-changed-ignore: ["docs/generated/**"]` This setup triggers a PipelineRun when there are changes in the `docs` directory, except for files under `docs/generated`. Enhanced annotation options also support: - Targeting specific events (`on-target-event`: e.g., `pull_request`,   `push`). - Matching specific branches (`on-target-branch`: e.g., `main`). This improves usability over existing CEL-based configuration and makes defining file-based triggers more intuitive.

      Story (Required)

      As a PipelineRun on Paac author we have a way to match PipelineRun by path with the pathChanged function: https://pipelinesascode.com/docs/guide/authoringprs/#matching-pipelinerun-by-path-change

       

      that work with CEL and it's not user friendly to understand.

       

      It would be nicer for the user to be able to use a easier friendly annotation:

      Example1

      on-path-changed: ["./pkg/*", "./cli/*"]

      will match the pipelinerun if any files in ./pkg/ or ./cli matches

      Example2

      on-path-changed: ["./README.txt"]

      will match the pipelienrun if readme has changed

      Example3

      on-path-ignore: ["./pkg/vendor/*"]

      will match the pipelinerun unless it's a file in pkg/vendor

      Example3

      on-path-changed: ["./pkg/*", "./cli"]
      on-path-ignore: ["./pkg/vendor/*"]

      will match the pipelinerun if any files in pkg or cli matched but no files in pkg/vendor/*

       

      Example3

      on-path-changed: ["./pkg/*"]
      on-target-event: ["pull_request, "push"]
      on-target-branch: ["main"]

      will match the pipelinerun if any files in pkg has changed and if it's a pull_request or apush that target the main branch

       

      Background (Required)

      <Describes the context or background related to this story>

      Out of scope

      <Defines what is not included in this story>

      Approach (Required)

      <Description of the general technical path on how to achieve the goal of the story. Include details like json schema, class definitions>

      Dependencies

      <Describes what this story depends on. Dependent Stories and EPICs should be linked to the story.>

      Acceptance Criteria (Mandatory)

      <Describe edge cases to consider when implementing the story and defining tests>

      <Provides a required and minimum list of acceptance tests for this story. More is expected as the engineer implements this story>

      INVEST Checklist

      Dependencies identified

      Blockers noted and expected delivery timelines set

      Design is implementable

      Acceptance criteria agreed upon

      Story estimated

      Legend

      Unknown

      Verified

      Unsatisfied

      Done Checklist

      • Code is completed, reviewed, documented and checked in
      • Unit and integration test automation have been delivered and running cleanly in continuous integration/staging/canary environment
      • Continuous Delivery pipeline(s) is able to proceed with new code included
      • Customer facing documentation, API docs etc. are produced/updated, reviewed and published
      • Acceptance criteria are met

              Unassigned Unassigned
              cboudjna@redhat.com Chmouel Boudjnah
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated: