Fix Smoke CI: add paths filter + concurrency group to eliminate 100% error rate#28794
Fix Smoke CI: add paths filter + concurrency group to eliminate 100% error rate#28794
Conversation
- Add paths filter to push trigger (cmd/**, pkg/**, *.go, go.mod) - Add concurrency group with cancel-in-progress: true - Remove reaction and status-comment triggers - Recompile smoke-ci.lock.yml Agent-Logs-Url: https://github.com/github/gh-aw/sessions/3d5f6e50-b40f-459e-8e65-4144da90e046 Co-authored-by: gh-aw-bot <259018956+gh-aw-bot@users.noreply.github.com>
|
Hey One small gap to flag:
If you'd like a hand validating the workflow changes, you can assign this prompt to your coding agent:
|
|
@copilot trigger on actions/setup/js |
Agent-Logs-Url: https://github.com/github/gh-aw/sessions/ab21a96e-08f7-4294-8d3a-304e1ae533d8 Co-authored-by: pelikhan <4175913+pelikhan@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
Updates the Smoke CI workflow to reduce unnecessary runs and mitigate CI backlog by restricting triggers and canceling superseded executions.
Changes:
- Added a
pathsfilter forpushonmainto limit runs to relevant Go/JS workflow inputs. - Added a workflow-level
concurrencygroup withcancel-in-progress: trueto prevent queue buildup. - Removed reaction/comment-related behavior and associated permissions from the compiled lock workflow.
Show a summary per file
| File | Description |
|---|---|
| .github/workflows/smoke-ci.md | Adds paths filtering and concurrency; removes reaction/comment trigger configuration. |
| .github/workflows/smoke-ci.lock.yml | Recompiled workflow reflecting the new triggers/concurrency and removal of comment/reaction steps/permissions. |
Copilot's findings
Tip
Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Files reviewed: 2/2 changed files
- Comments generated: 4
| on: | ||
| push: | ||
| branches: [main] | ||
| paths: ['cmd/**', 'pkg/**', '*.go', 'go.mod', 'actions/setup/js/**'] |
There was a problem hiding this comment.
The PR description says the workflow should fire on “Go source changes”, but *.go only matches Go files in the repo root and the list only covers cmd/** and pkg/**. If Go code exists in other directories (e.g., internal/**, api/**, etc.), pushes touching those will no longer run Smoke CI. Consider broadening the glob(s) (e.g., **/*.go) and including go.sum if dependency changes should also trigger.
| paths: ['cmd/**', 'pkg/**', '*.go', 'go.mod', 'actions/setup/js/**'] | ||
| schedule: daily | ||
| pull_request: | ||
| types: [opened, synchronize, reopened] |
There was a problem hiding this comment.
Only the push trigger is path-filtered; pull_request will still run Smoke CI for any PR change (docs-only, config-only, etc.). If the goal is to reduce load/queue pressure, add an equivalent paths: filter under pull_request as well so PR updates that don’t touch relevant files don’t enqueue runs.
| types: [opened, synchronize, reopened] | |
| types: [opened, synchronize, reopened] | |
| paths: ['cmd/**', 'pkg/**', '*.go', 'go.mod', 'actions/setup/js/**'] |
| reaction: "eyes" | ||
| status-comment: true | ||
| concurrency: | ||
| group: smoke-ci-${{ github.ref }} |
There was a problem hiding this comment.
Using only ${{ github.ref }} for the concurrency group can cause different event types on the same ref (e.g., schedule and push on main) to cancel each other. If you want scheduled runs to be independent from push-triggered runs, include ${{ github.event_name }} (or ${{ github.workflow }}) in the group key to avoid cross-event cancellations while still deduplicating within each event/ref.
| group: smoke-ci-${{ github.ref }} | |
| group: smoke-ci-${{ github.event_name }}-${{ github.ref }} |
| comment_id: "" | ||
| comment_repo: "" |
There was a problem hiding this comment.
The workflow now emits comment_id/comment_repo outputs as constant empty strings. This can hide mistakes if later steps/jobs still reference these outputs (they’ll get empty values rather than failing loudly). If comment functionality is fully removed, consider removing these outputs entirely (or only setting them when the corresponding steps run) to keep the workflow contract clear.
| comment_id: "" | |
| comment_repo: "" |
Smoke CI had a 100% error rate (22/22 runs in the Apr 20–27 window) due to triggering on every push to
mainwith no paths filter, causing queue build-up and cascading infrastructure failures with 0 agent starts.Changes
smoke-ci.md(+ recompiledsmoke-ci.lock.yml):paths:filter topushtrigger — fires on Go source changes and JS safe-output script changes:reaction: "eyes"andstatus-comment: truetriggers — irrelevant for CI smoke testing