Skip to content

ci: run CI on build-trusted-commits pushes; require empty changesets - #272

Open
trevor-coleman wants to merge 3 commits into
mainfrom
chore/ci-trust-push-trigger
Open

trevor-coleman wants to merge 3 commits into
mainfrom
chore/ci-trust-push-trigger

Conversation

@trevor-coleman

@trevor-coleman trevor-coleman commented Oct 29, 2026 •

Copy link
Copy Markdown
Collaborator

Problem

yarn ci:trust pushes reviewed fork commits to build-trusted-commits so fork PRs can get CI. But ci.yml and the EAS Build ExampleApp on PRs workflow both only trigger on pull_request, so that push currently runs nothing. The workaround has been to open a throwaway draft PR from build-trusted-commits (e.g. #271).

Change

  • .github/workflows/ci.yml: add push: branches: [build-trusted-commits]. The verify job's if and the ci-${{ github.ref }} concurrency group already handle push events.
  • apps/ExampleApp/.eas/workflows/build-on-pr.yml: same trigger, so fork PRs get native Android/iOS builds too.
  • CLAUDE.md and docs/contributing/changesets-versions-and-releases.md: make it a project rule that every PR includes a changeset, using yarn changeset --empty when no package is bumped.
  • docs/contributing/running-tests-on-untrusted-forks.md: fix the usage (<fork_username>:<fork_branchname>) and the target branch name (build-trusted-commits, not temp-branch-to-test-fork, which is the temporary remote).

Because the pushed commits are identical to the fork PR's, the check results attach to the fork PR's head commit, as the docs describe.

Notes

  • Push-triggered workflows are read from the pushed commit, so this only takes effect for fork branches based on a main that includes this change.
  • If a draft PR from build-trusted-commits is also open, each push runs CI twice. Close those once this lands.
  • Empty changeset: only CI config, docs, and the private example app change, so no package is released.

Verification

  • Both workflow files parse with the expected triggers; actionlint passes on ci.yml.
  • Not exercised end to end until merged.

ci.yml and the EAS build-on-pr workflow only ran on pull_request, so
'yarn ci:trust' pushing fork commits to build-trusted-commits no longer
triggered anything. Add a push trigger for that branch to both so results
attach to the fork PR's head commit again, and fix the stale usage and
branch name in the untrusted-forks docs.
@changeset-bot

changeset-bot Bot commented Oct 29, 2026 •

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: e98b454

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 0 packages

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

Make it explicit in CLAUDE.md and the contributor docs that every PR needs
a changeset, using 'yarn changeset --empty' when nothing is released.
CI's 'changeset status' only enforces this for published packages.
@trevor-coleman trevor-coleman changed the title ci: run CI and EAS builds on pushes to build-trusted-commits ci: run CI on build-trusted-commits pushes; require empty changesets Oct 29, 2026

This branch has not been deployed

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant