From 8602bd7680355bb019a54a6efd490acf726b759b Mon Sep 17 00:00:00 2001 From: Ameya Sathe Date: Mon, 15 Jun 2026 12:23:03 +0530 Subject: [PATCH 1/3] OSAC-1378: add skip_if_only_changed to reduce unnecessary CI runs Add skip_if_only_changed filters to three fulfillment-service presubmit jobs to reduce unnecessary CI resource usage when only documentation, charts, or integration test infrastructure changes. Changes: - Unit test: Skip when only docs, LICENSE, charts, integration tests, or GitHub workflows change Pattern: ^.*(md|adoc)$|^LICENSE$|^charts/|^it/|^\.github/workflows/ - Images job: Skip when only docs, LICENSE, GitHub workflows, or integration test charts change Pattern: ^.*(md|adoc)$|^LICENSE$|^\.github/workflows/|^it/charts/ - E2E VMaaS test: Skip only for pure documentation changes (most permissive) Pattern: ^.*(md|adoc)$|^LICENSE$|^\.github/workflows/ All jobs now have always_run: false (set automatically by prowgen) and will only run when relevant files change. This follows OpenShift CI best practices using skip_if_only_changed for simpler, more maintainable patterns. Assisted-by: Claude Code rh-pre-commit.version: 2.4.0 rh-pre-commit.check-secrets: ENABLED --- .../osac-project-fulfillment-service-main.yaml | 3 +++ ...osac-project-fulfillment-service-main-presubmits.yaml | 9 ++++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/ci-operator/config/osac-project/fulfillment-service/osac-project-fulfillment-service-main.yaml b/ci-operator/config/osac-project/fulfillment-service/osac-project-fulfillment-service-main.yaml index b60854e33911b..5696e5bddf353 100644 --- a/ci-operator/config/osac-project/fulfillment-service/osac-project-fulfillment-service-main.yaml +++ b/ci-operator/config/osac-project/fulfillment-service/osac-project-fulfillment-service-main.yaml @@ -49,6 +49,7 @@ images: as: - osac-installer to: osac-installer-with-pr + skip_if_only_changed: ^.*(md|adoc)$|^LICENSE$|^\.github/workflows/|^it/charts/ promotion: to: - excluded_images: @@ -74,9 +75,11 @@ tests: commands: echo "Test" container: from: src + skip_if_only_changed: ^.*(md|adoc)$|^LICENSE$|^charts/|^it/|^\.github/workflows/ - as: e2e-vmaas capabilities: - intranet + skip_if_only_changed: ^.*(md|adoc)$|^LICENSE$|^\.github/workflows/ steps: dependencies: COMPONENT_IMAGE: fulfillment-service-pr diff --git a/ci-operator/jobs/osac-project/fulfillment-service/osac-project-fulfillment-service-main-presubmits.yaml b/ci-operator/jobs/osac-project/fulfillment-service/osac-project-fulfillment-service-main-presubmits.yaml index a4cbd08f5aa8e..371fb36fe1ad6 100644 --- a/ci-operator/jobs/osac-project/fulfillment-service/osac-project-fulfillment-service-main-presubmits.yaml +++ b/ci-operator/jobs/osac-project/fulfillment-service/osac-project-fulfillment-service-main-presubmits.yaml @@ -1,7 +1,7 @@ presubmits: osac-project/fulfillment-service: - agent: kubernetes - always_run: true + always_run: false branches: - ^main$ - ^main- @@ -18,6 +18,7 @@ presubmits: pj-rehearse.openshift.io/can-be-rehearsed: "true" name: pull-ci-osac-project-fulfillment-service-main-e2e-vmaas rerun_command: /test e2e-vmaas + skip_if_only_changed: ^.*(md|adoc)$|^LICENSE$|^\.github/workflows/ spec: containers: - args: @@ -84,7 +85,7 @@ presubmits: secretName: result-aggregator trigger: (?m)^/test( | .* )e2e-vmaas,?($|\s.*) - agent: kubernetes - always_run: true + always_run: false branches: - ^main$ - ^main- @@ -100,6 +101,7 @@ presubmits: pj-rehearse.openshift.io/can-be-rehearsed: "true" name: pull-ci-osac-project-fulfillment-service-main-images rerun_command: /test images + skip_if_only_changed: ^.*(md|adoc)$|^LICENSE$|^\.github/workflows/|^it/charts/ spec: containers: - args: @@ -141,7 +143,7 @@ presubmits: secretName: result-aggregator trigger: (?m)^/test( | .* )images,?($|\s.*) - agent: kubernetes - always_run: true + always_run: false branches: - ^main$ - ^main- @@ -157,6 +159,7 @@ presubmits: pj-rehearse.openshift.io/can-be-rehearsed: "true" name: pull-ci-osac-project-fulfillment-service-main-unit rerun_command: /test unit + skip_if_only_changed: ^.*(md|adoc)$|^LICENSE$|^charts/|^it/|^\.github/workflows/ spec: containers: - args: From 3de737c49fcfd3d4baf0f43e9cad15a65acc930a Mon Sep 17 00:00:00 2001 From: Ameya Sathe Date: Mon, 15 Jun 2026 14:55:08 +0530 Subject: [PATCH 2/3] OSAC-1378: fix regex pattern to correctly match file extensions Fix the skip_if_only_changed patterns to correctly match only files with .md or .adoc extensions, not files with 'md' or 'adoc' anywhere in their path. Changed: ^.*(md|adoc)$ to ^.*\.(md|adoc)$ Without escaping the dot before the extension, the pattern would incorrectly match files like cmd/server.go (contains 'md' substring). Assisted-by: Claude Code rh-pre-commit.version: 2.4.0 rh-pre-commit.check-secrets: ENABLED --- .../osac-project-fulfillment-service-main.yaml | 6 +++--- .../osac-project-fulfillment-service-main-presubmits.yaml | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/ci-operator/config/osac-project/fulfillment-service/osac-project-fulfillment-service-main.yaml b/ci-operator/config/osac-project/fulfillment-service/osac-project-fulfillment-service-main.yaml index 5696e5bddf353..0afdefc30f533 100644 --- a/ci-operator/config/osac-project/fulfillment-service/osac-project-fulfillment-service-main.yaml +++ b/ci-operator/config/osac-project/fulfillment-service/osac-project-fulfillment-service-main.yaml @@ -49,7 +49,7 @@ images: as: - osac-installer to: osac-installer-with-pr - skip_if_only_changed: ^.*(md|adoc)$|^LICENSE$|^\.github/workflows/|^it/charts/ + skip_if_only_changed: ^.*\.(md|adoc)$|^LICENSE$|^\.github/workflows/|^it/charts/ promotion: to: - excluded_images: @@ -75,11 +75,11 @@ tests: commands: echo "Test" container: from: src - skip_if_only_changed: ^.*(md|adoc)$|^LICENSE$|^charts/|^it/|^\.github/workflows/ + skip_if_only_changed: ^.*\.(md|adoc)$|^LICENSE$|^charts/|^it/|^\.github/workflows/ - as: e2e-vmaas capabilities: - intranet - skip_if_only_changed: ^.*(md|adoc)$|^LICENSE$|^\.github/workflows/ + skip_if_only_changed: ^.*\.(md|adoc)$|^LICENSE$|^\.github/workflows/ steps: dependencies: COMPONENT_IMAGE: fulfillment-service-pr diff --git a/ci-operator/jobs/osac-project/fulfillment-service/osac-project-fulfillment-service-main-presubmits.yaml b/ci-operator/jobs/osac-project/fulfillment-service/osac-project-fulfillment-service-main-presubmits.yaml index 371fb36fe1ad6..eeea0e3ec4f12 100644 --- a/ci-operator/jobs/osac-project/fulfillment-service/osac-project-fulfillment-service-main-presubmits.yaml +++ b/ci-operator/jobs/osac-project/fulfillment-service/osac-project-fulfillment-service-main-presubmits.yaml @@ -18,7 +18,7 @@ presubmits: pj-rehearse.openshift.io/can-be-rehearsed: "true" name: pull-ci-osac-project-fulfillment-service-main-e2e-vmaas rerun_command: /test e2e-vmaas - skip_if_only_changed: ^.*(md|adoc)$|^LICENSE$|^\.github/workflows/ + skip_if_only_changed: ^.*\.(md|adoc)$|^LICENSE$|^\.github/workflows/ spec: containers: - args: @@ -101,7 +101,7 @@ presubmits: pj-rehearse.openshift.io/can-be-rehearsed: "true" name: pull-ci-osac-project-fulfillment-service-main-images rerun_command: /test images - skip_if_only_changed: ^.*(md|adoc)$|^LICENSE$|^\.github/workflows/|^it/charts/ + skip_if_only_changed: ^.*\.(md|adoc)$|^LICENSE$|^\.github/workflows/|^it/charts/ spec: containers: - args: @@ -159,7 +159,7 @@ presubmits: pj-rehearse.openshift.io/can-be-rehearsed: "true" name: pull-ci-osac-project-fulfillment-service-main-unit rerun_command: /test unit - skip_if_only_changed: ^.*(md|adoc)$|^LICENSE$|^charts/|^it/|^\.github/workflows/ + skip_if_only_changed: ^.*\.(md|adoc)$|^LICENSE$|^charts/|^it/|^\.github/workflows/ spec: containers: - args: From 19901179ec4abf15caede14f4482b2106cc3d11f Mon Sep 17 00:00:00 2001 From: Ameya Sathe Date: Mon, 15 Jun 2026 18:49:00 +0530 Subject: [PATCH 3/3] OSAC-1378: remove skip_if_only_changed from images section Per user feedback, images should always build for safety. Only unit and e2e-vmaas tests will have conditional filtering. rh-pre-commit.version: 2.4.0 rh-pre-commit.check-secrets: ENABLED --- .../osac-project-fulfillment-service-main.yaml | 1 - .../osac-project-fulfillment-service-main-presubmits.yaml | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/ci-operator/config/osac-project/fulfillment-service/osac-project-fulfillment-service-main.yaml b/ci-operator/config/osac-project/fulfillment-service/osac-project-fulfillment-service-main.yaml index 0afdefc30f533..e1d7ad46dd3e0 100644 --- a/ci-operator/config/osac-project/fulfillment-service/osac-project-fulfillment-service-main.yaml +++ b/ci-operator/config/osac-project/fulfillment-service/osac-project-fulfillment-service-main.yaml @@ -49,7 +49,6 @@ images: as: - osac-installer to: osac-installer-with-pr - skip_if_only_changed: ^.*\.(md|adoc)$|^LICENSE$|^\.github/workflows/|^it/charts/ promotion: to: - excluded_images: diff --git a/ci-operator/jobs/osac-project/fulfillment-service/osac-project-fulfillment-service-main-presubmits.yaml b/ci-operator/jobs/osac-project/fulfillment-service/osac-project-fulfillment-service-main-presubmits.yaml index eeea0e3ec4f12..85c1bccb49973 100644 --- a/ci-operator/jobs/osac-project/fulfillment-service/osac-project-fulfillment-service-main-presubmits.yaml +++ b/ci-operator/jobs/osac-project/fulfillment-service/osac-project-fulfillment-service-main-presubmits.yaml @@ -85,7 +85,7 @@ presubmits: secretName: result-aggregator trigger: (?m)^/test( | .* )e2e-vmaas,?($|\s.*) - agent: kubernetes - always_run: false + always_run: true branches: - ^main$ - ^main- @@ -101,7 +101,6 @@ presubmits: pj-rehearse.openshift.io/can-be-rehearsed: "true" name: pull-ci-osac-project-fulfillment-service-main-images rerun_command: /test images - skip_if_only_changed: ^.*\.(md|adoc)$|^LICENSE$|^\.github/workflows/|^it/charts/ spec: containers: - args: