Skip to content

OSAC-4322: skip e2e workflows for test-only PRs - #478

Open
redhat-chai-bot wants to merge 1 commit into
osac-project:mainfrom
redhat-chai-bot:skip-e2e-for-test-only-prs
Open

OSAC-4322: skip e2e workflows for test-only PRs#478
redhat-chai-bot wants to merge 1 commit into
osac-project:mainfrom
redhat-chai-bot:skip-e2e-for-test-only-prs

Conversation

@redhat-chai-bot

@redhat-chai-bot redhat-chai-bot commented Aug 24, 2026

Copy link
Copy Markdown
Contributor

Summary

Skip e2e workflow runs (vmaas, caas, bmaas) when a PR only adds or modifies test files. This avoids wasting CI resources on PRs that introduce no production logic changes.

See OSAC-4322 and PR #460 for context.

Changes

Adds test file patterns to the dorny/paths-filter ignore list in all three e2e workflow files:

  • .github/workflows/e2e-vmaas-full-install.yml
  • .github/workflows/e2e-caas-full-install.yml
  • .github/workflows/e2e-bmaas-full-install.yml

New ignore patterns added:

!**/*_test.go
!**/testdata/**
!**/test/**
!**/tests/**
!**/it/**
!**/conftest.py
!**/fixtures/**

How it works

The dorny/paths-filter step with predicate-quantifier: 'every' sets code to true only when at least one changed file does NOT match any ignore pattern. If a PR touches only test files (which now match the ignore patterns), code becomes false, should-run becomes false, and the e2e job is skipped — while the gate job still reports success (via if: always()) so branch protection stays green.

What is NOT changed

  • unit-tests.yml and integration-tests.yml — these should always run for test-only PRs
  • Existing ignore patterns — all original patterns are preserved

AI-generated. Review for accuracy.

@romfreiman requested in Slack thread

Summary by CodeRabbit

  • Chores
    • Updated end-to-end installation workflows to avoid running for changes limited to test files, test data, configuration, or fixtures.
    • Improved workflow filtering for BMaaS, CaaS, and VMaaS installation checks, reducing unnecessary runs.

Add test file patterns to the dorny/paths-filter ignore list in all
three e2e workflow files so PRs that only touch test files (unit,
integration, contract) do not trigger expensive e2e runs.

New ignore patterns:
  - !**/*_test.go      (Go test files)
  - !**/testdata/**    (Go test fixtures)
  - !**/test/**        (integration test dirs)
  - !**/tests/**       (Python test dirs)
  - !**/it/**          (fulfillment-service integration tests)
  - !**/conftest.py    (pytest config)
  - !**/fixtures/**    (test fixtures)

The existing dorny/paths-filter `predicate-quantifier: 'every'`
semantics ensure that PRs touching both test AND non-test files
still trigger e2e — the skip only applies when every changed file
matches an ignore pattern.

unit-tests.yml and integration-tests.yml are intentionally NOT
changed: test-only PRs should still run those lighter CI checks.

Signed-off-by: Chai Bot <ship-help-github@redhat.com>
@openshift-ci-robot

openshift-ci-robot commented Aug 24, 2026

Copy link
Copy Markdown

@redhat-chai-bot: This pull request references OSAC-4322 which is a valid jira issue.

Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the task to target the "5.1.0" version, but no target version was set.

Details

In response to this:

Summary

Skip e2e workflow runs (vmaas, caas, bmaas) when a PR only adds or modifies test files. This avoids wasting CI resources on PRs that introduce no production logic changes.

See OSAC-4322 and PR #460 for context.

Changes

Adds test file patterns to the dorny/paths-filter ignore list in all three e2e workflow files:

  • .github/workflows/e2e-vmaas-full-install.yml
  • .github/workflows/e2e-caas-full-install.yml
  • .github/workflows/e2e-bmaas-full-install.yml

New ignore patterns added:

!**/*_test.go
!**/testdata/**
!**/test/**
!**/tests/**
!**/it/**
!**/conftest.py
!**/fixtures/**

How it works

The dorny/paths-filter step with predicate-quantifier: 'every' sets code to true only when at least one changed file does NOT match any ignore pattern. If a PR touches only test files (which now match the ignore patterns), code becomes false, should-run becomes false, and the e2e job is skipped — while the gate job still reports success (via if: always()) so branch protection stays green.

What is NOT changed

  • unit-tests.yml and integration-tests.yml — these should always run for test-only PRs
  • Existing ignore patterns — all original patterns are preserved

AI-generated. Review for accuracy.

@romfreiman requested in Slack thread

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository.

@coderabbitai

coderabbitai Bot commented Aug 24, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository: osac-project/coderabbit/.coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: d8ae8f24-69d0-4de0-a48a-da6f77fb6b56

📥 Commits

Reviewing files that changed from the base of the PR and between 4351bcf and a08449a.

📒 Files selected for processing (3)
  • .github/workflows/e2e-bmaas-full-install.yml
  • .github/workflows/e2e-caas-full-install.yml
  • .github/workflows/e2e-vmaas-full-install.yml

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.


Walkthrough

The BMaaS, CaaS, and VMaaS full-install E2E workflows now ignore test-related files and directories in their path filters.

Changes

E2E path filters

Layer / File(s) Summary
Update E2E workflow path filters
.github/workflows/e2e-bmaas-full-install.yml, .github/workflows/e2e-caas-full-install.yml, .github/workflows/e2e-vmaas-full-install.yml
The workflows exclude Go test files, test data, test directories, integration-test directories, conftest.py, and fixture directories from triggering full-install E2E jobs.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Merge Risk: ⚪ Minimal · up to a0844

This change skips resource-intensive e2e workflows when a pull request contains only test-file changes while preserving the required gate status. No actionable merge-blocking risk remains beyond normal checks and review.

Suggested reviewers: ori-amizur, trewest, eliorerz

🚥 Pre-merge checks | ✅ 10 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Ai-Attribution ⚠️ Warning The PR description states it is AI-generated, but its sole changed commit has only Signed-off-by and no Assisted-by or Generated-by trailer. Add a Red Hat-approved Assisted-by or Generated-by trailer naming the AI tool; do not use Co-Authored-By for the AI tool.
✅ Passed checks (10 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly identifies the issue and the primary change: skipping E2E workflows for test-only pull requests.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0 files. (3 skipped: 3 unsupported.)
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
No-Hardcoded-Secrets ✅ Passed The PR diff adds only test-file and directory glob patterns to three workflow filters; it introduces no secrets, credential assignments, private keys, credential URLs, or long encoded literals.
No-Weak-Crypto ✅ Passed The PR changes only three workflow path-filter blocks; the added patterns contain no MD5, SHA1, DES, RC4, 3DES, Blowfish, ECB, or custom crypto code.
No-Injection-Vectors ✅ Passed The diff adds only literal path-filter glob patterns in three YAML workflows; it introduces no SQL, shell=True, eval/exec, pickle, unsafe YAML, os.system, or HTML injection sink.
Container-Privileges ✅ Passed The PR changes only three GitHub Actions path-filter lists; the added lines contain no privileged, hostPID, hostNetwork, hostIPC, SYS_ADMIN, or allowPrivilegeEscalation settings.
No-Sensitive-Data-In-Logs ✅ Passed The commit only adds test-path exclusions to workflow filters. It adds no logging or sensitive values; existing logs emit only upstream job statuses.
✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@minmzzhang

Copy link
Copy Markdown
Contributor

/ok-to-test

@github-actions

Copy link
Copy Markdown

Labeled ok-to-test. Re-ran 6 failed run(s).

@minmzzhang

Copy link
Copy Markdown
Contributor

/retest

@github-actions

Copy link
Copy Markdown

Re-triggered failed runs:

  • label-gate (#32730940640)
  • label-gate (#32730670814)
  • E2E CaaS Full Install (#32730667716)
  • label-gate (#32730667061)

@akshaynadkarni akshaynadkarni left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@openshift-ci

openshift-ci Bot commented Aug 24, 2026

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: akshaynadkarni, redhat-chai-bot

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants