Skip to content

fix(ci): trigger e2e tests on .github/scripts/ and action.yml changes#2788

Merged
ralphbean merged 2 commits into
mainfrom
e2e-trigger-on-scripts-changes
Jun 30, 2026
Merged

fix(ci): trigger e2e tests on .github/scripts/ and action.yml changes#2788
ralphbean merged 2 commits into
mainfrom
e2e-trigger-on-scripts-changes

Conversation

@ralphbean

@ralphbean ralphbean commented Jun 30, 2026

Copy link
Copy Markdown
Member

Summary

  • Add .github/scripts/** to e2e trigger paths and relevance grep — helper scripts used by the composite action and workflows affect agent behavior
  • Add action.yml to e2e trigger paths and relevance grep — this is the composite action entry point for all agent runs in CI; changes to sandbox creation, image pulling, or OpenShell configuration need e2e coverage

Motivation

The OpenShell v0.0.73 supervisor crash (#2792) was fixed by pinning the supervisor image in action.yml (#2795), but that change would not have triggered e2e tests. If it had, we would have caught the regression before it broke all agent runs across both orgs for hours.

Test plan

  • paths: trigger list and grep regex stay in sync (SYNC-WITH comment)
  • PR changing only action.yml triggers e2e tests
  • PR changing only .github/scripts/foo.sh triggers e2e tests

🤖 Generated with Claude Code

@qodo-code-review

Copy link
Copy Markdown

PR Summary by Qodo

Fix e2e workflow to trigger on .github/scripts changes

🐞 Bug fix ⚙️ Configuration changes 🕐 10-20 Minutes

Grey Divider

AI Description

• Add .github/scripts/** to e2e workflow push.paths so script-only changes run e2e.
• Align the “relevant files” grep gate with the updated path filter.
• Prevent missing e2e coverage for CI-script updates (e.g., version bumps).
Diagram

graph TD
  A{{"Push event"}} --> B["e2e.yml workflow"] --> C["push.paths filter"] --> D["Run workflow?"]
  D -->|"Yes"| E["changes-check step"] --> F["e2e job runs"]
  D -->|"No"| G["Skip e2e"]
  E --> H["grep: include .github/scripts/"] --> F

  subgraph Legend
    direction LR
    _evt{{"Event"}} ~~~ _wf["Workflow/Job"] ~~~ _dec{"Decision"}
  end
Loading
High-Level Assessment

The following are alternative approaches to this PR:

1. Centralize “relevant paths” in one reusable paths-filter action
  • ➕ Avoids keeping push.paths and a separate grep regex in sync
  • ➕ Improves readability and reduces risk of future mismatches
  • ➖ Requires introducing or adopting an action (e.g., dorny/paths-filter) and refactoring workflow logic
  • ➖ Slightly more indirection vs inline lists
2. Generate the grep regex from a single list variable
  • ➕ Keeps current approach but reduces duplication between YAML path list and regex
  • ➕ Minimal behavioral change
  • ➖ GitHub Actions YAML/ Bash string handling can be brittle
  • ➖ Still leaves custom plumbing vs a purpose-built action

Recommendation: The current fix is appropriate for a targeted bug: it restores expected e2e coverage by aligning the trigger filter and the internal change gate. If this list continues to grow or diverge across workflows, consider centralizing path detection (via a shared action/composite step or a single source-of-truth list) to prevent future mismatches.

Files changed (1) +2 / -1

Other (1) +2 / -1
e2e.ymlTrigger e2e on .github/scripts changes and update relevance gate +2/-1

Trigger e2e on .github/scripts changes and update relevance gate

• Adds '.github/scripts/**' to the workflow 'push.paths' filter so script-only changes trigger runs. Updates the changes-check grep pattern to treat '.github/scripts/' as e2e-relevant, keeping the early-exit logic consistent with the trigger configuration.

.github/workflows/e2e.yml

@qodo-code-review

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (0)

Grey Divider

Great, no issues found!

Qodo reviewed your code and found no material issues that require review

Grey Divider

Qodo Logo

@github-actions

github-actions Bot commented Jun 30, 2026

Copy link
Copy Markdown

Site preview

Preview: https://b43739a0-site.fullsend-ai.workers.dev

Commit: cbedc19c9fabe919aaf52fb315d5fad0ca3e9bf0

@fullsend-ai-review

fullsend-ai-review Bot commented Jun 30, 2026

Copy link
Copy Markdown

🤖 Review · ❌ Terminated · Started 4:52 PM UTC · Ended 4:58 PM UTC
Commit: 104508d · View workflow run →

@codecov

codecov Bot commented Jun 30, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@ben-alkov ben-alkov left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

ACK, after e2e succeeds 😁

@ralphbean ralphbean enabled auto-merge June 30, 2026 16:57
@fullsend-ai-review

Copy link
Copy Markdown

🤖 Finished Review · ❌ Failure · Started 4:52 PM UTC · Completed 4:58 PM UTC
Commit: 6c48763 · View workflow run →

@fullsend-ai-review

fullsend-ai-review Bot commented Jun 30, 2026

Copy link
Copy Markdown

🤖 Finished Review · ❌ Failure · Started 6:26 PM UTC · Completed 6:33 PM UTC
Commit: 0d92653 · View workflow run →

@ralphbean ralphbean changed the title fix(ci): trigger e2e tests on .github/scripts/ changes fix(ci): trigger e2e tests on .github/scripts/ and action.yml changes Jun 30, 2026
The e2e workflow was missing .github/scripts/** from its path filter,
so changes like the openshell version bump didn't trigger e2e runs.
The functional-tests workflow already had this path — this brings e2e
into alignment.

Updates both the push.paths filter and the SYNC-WITH grep regex.

Signed-off-by: Ralph Bean <rbean@redhat.com>
Assisted-by: Claude claude-opus-4-6 <noreply@anthropic.com>
Signed-off-by: Ralph Bean <rbean@redhat.com>
The composite action (action.yml) is the entry point for all agent runs
in CI. Changes like pinning the supervisor image (#2795) affect sandbox
creation but were not triggering e2e tests. Add action.yml to both the
paths trigger and the relevance grep.

Motivated-by: #2792
Assisted-by: Claude claude-opus-4-6 <noreply@anthropic.com>
Signed-off-by: Ralph Bean <rbean@redhat.com>
@fullsend-ai-review

fullsend-ai-review Bot commented Jun 30, 2026

Copy link
Copy Markdown

🤖 Finished Review · ✅ Success · Started 7:13 PM UTC · Completed 7:24 PM UTC
Commit: cbedc19 · View workflow run →

@ralphbean ralphbean added this pull request to the merge queue Jun 30, 2026
@fullsend-ai-review

Copy link
Copy Markdown

Review

Findings

Medium


Labels: PR modifies the e2e CI workflow to expand trigger paths, touching both CI pipeline configuration and e2e test infrastructure.

@fullsend-ai-review fullsend-ai-review Bot added requires-manual-review Review requires human judgment component/ci CI pipelines and checks component/e2e End-to-end tests labels Jun 30, 2026
Merged via the queue into main with commit dc93e9a Jun 30, 2026
25 checks passed
@ralphbean ralphbean deleted the e2e-trigger-on-scripts-changes branch June 30, 2026 19:29
@fullsend-ai-retro

fullsend-ai-retro Bot commented Jun 30, 2026

Copy link
Copy Markdown

🤖 Finished Retro · ✅ Success · Started 7:33 PM UTC · Completed 7:46 PM UTC
Commit: cbedc19 · View workflow run →

@fullsend-ai-retro

Copy link
Copy Markdown

Retro: PR #2788 — fix(ci): trigger e2e on .github/scripts and action.yml changes

Timeline

  1. 16:48 UTC — PR opened by Ralph Bean. 1 file changed (+2/−1), adding .github/scripts/** and action.yml to the e2e workflow's path triggers and relevance gate.
  2. 16:49–16:59 UTC — Review agent run 28461137229 failed: sandbox creation crashed after 3 retries (openshell v0.0.72 supervisor hit Failed to delete network namespace: Invalid argument).
  3. 16:57 UTC — Human reviewer (ben-alkov) approved: "ACK, after e2e succeeds."
  4. 18:23–18:33 UTC — Review agent run 28466709199 failed again with the same sandbox crash, despite now using openshell v0.0.63 (after the revert in PR fix: revert openshell to 0.0.63 #2787). The error is an intermittent cgroup/namespace race condition, not version-specific.
  5. 19:09 UTC — Review agent run 28469370874 cancelled (superseded by a new push).
  6. 19:10–19:24 UTC — Review agent run 28469420527 succeeded. Sandbox created in 9 seconds. Agent completed in ~9 minutes.
  7. 19:24 UTC — Review posted a single medium-severity finding: [protected-path] on .github/workflows/e2e.yml, correctly noting human approval is required for governance/infrastructure files.

Assessment

Review quality: Good. The protected-path finding was appropriate — it flags the governance constraint and confirms the PR body provides sufficient motivation. The human reviewer and agent complemented each other: the human verified functional correctness; the agent surfaced the governance requirement.

Rework rate: Zero. The change was correct on the first attempt. No review-driven rework.

Token/compute cost: High relative to change size. Four review dispatches (2 failures, 1 cancellation, 1 success) for a 3-line CI config change. The successful run itself took ~9 minutes including full 6-sub-agent review. This is structural overhead, not misconfiguration.

Time to resolution: 2.5 hours. Driven entirely by sandbox infrastructure failures, not agent logic.

Existing coverage

The improvement areas identified are already tracked by open issues:

  • Auto-retry on infra failures: #2711 — would have avoided the 2-hour gap between first failure and successful review.
  • Fast-path for trivial/config-only PRs: #2639, #1900 — would reduce the 9-minute review time for changes where only protected-path detection is needed.
  • Sub-agent scope constraints: #2602 — would allow the orchestrator to limit tool calls for small diffs.

No new proposals filed — the identified improvements are well-covered by existing issues.

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

Labels

component/ci CI pipelines and checks component/e2e End-to-end tests requires-manual-review Review requires human judgment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants