We raised $3M for agent-native runners

Run CI once per pull request commit

Remove overlapping push and pull request triggers so each change receives one intended validation run.

How companies used this technique

Read what each company changed and follow the original sources.

Run CI once per change

Anthropic reports more CI jobs in a given day. As a StarSling pattern for GitHub Actions, removing duplicate push and pull_request runs and metadata-only triggers keeps each change to one run.

Use it when
Run history shows duplicate events for the same commit, or metadata events rerun checks that do not depend on that metadata.
Before applying it
Preview deployments, cache warming, release side effects and metadata-dependent checks keep the triggers they need.

Run each pull-request commit once

The Ruby extension's workflow ran on every push and every pull request, so each in-repo branch got two identical runs; for one commit they started three seconds apart. Shopify/vscode-shopify-ruby#808 limits push to main and adds a concurrency group whose cancellation applies only to pull_request events, so a main run that is already running is never cancelled, though a main run still waiting in the same group is replaced by a newer push.

Merged 2026-09-18; the workflow on the default branch is unchanged since. Source

Use it when
The same commit runs equivalent validation through both push and pull_request, and developers push several times in a row.
Before applying it
Check that the two runs test the same ref with the same permissions before treating them as duplicates.

Run push builds only on the default branch

target-determinator's presubmit workflow ran on every push and on every pull request, so a commit pushed to a pull request branch in the repository ran the test matrix twice. The change restricts the push trigger to main; pull requests still run through the pull_request event.

Use it when
A workflow triggers on both push and pull_request, and the push trigger covers every branch.
Before applying it
Branches without a pull request no longer get push builds; the workflow keeps workflow_dispatch for running them by hand.

Company Playbooks