Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 12 additions & 23 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,19 +1,11 @@
name: CI
on:
push:
branches:
- main
pull_request:
branches:
- main
merge_group:
types:
- checks_requested

concurrency:
# Keep the event name in the group: sharing one group across events once let
# a release-authorizing push run deadlock behind other events for 13 hours.
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.ref }}
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
Expand Down Expand Up @@ -47,24 +39,11 @@ jobs:
run: yarn prepare

- name: Run unit tests
run: yarn test --maxWorkers=2 --coverage
run: yarn test --maxWorkers=2

- name: Run release-policy tests
run: yarn test:release

build-library:
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0

- name: Setup
uses: ./.github/actions/setup

- name: Build package
run: yarn prepare

build-android:
runs-on: ubuntu-latest

Expand Down Expand Up @@ -162,6 +141,16 @@ jobs:
with:
xcode-version: ${{ env.XCODE_VERSION }}

- name: Cache cocoapods
if: env.turbo_cache_hit != 1
id: cocoapods-cache
uses: actions/cache@5a3ec84eff668545956fd18022155c47e93e2684 # v4.2.3
with:
path: example/ios/Pods
key: ${{ runner.os }}-cocoapods-${{ hashFiles('example/ios/Podfile.lock') }}
restore-keys: |
${{ runner.os }}-cocoapods-

- name: Install cocoapods
if: env.turbo_cache_hit != 1 && steps.cocoapods-cache.outputs.cache-hit != 'true'
run: |
Expand Down
7 changes: 0 additions & 7 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
@@ -1,12 +1,8 @@
name: Documentation

on:
push:
branches: [main]
pull_request:
branches: [main]
merge_group:
types: [checks_requested]
workflow_dispatch:

permissions:
Expand All @@ -28,8 +24,5 @@ jobs:
- name: Setup
uses: ./.github/actions/setup

- name: Typecheck guides and examples
run: yarn typecheck

- name: Build canonical documentation
run: yarn docs:build
4 changes: 0 additions & 4 deletions .github/workflows/performance.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,6 @@ name: Performance publication gates
on:
pull_request:
branches: [main]
merge_group:
types: [checks_requested]
workflow_dispatch:

concurrency:
Expand All @@ -13,7 +11,6 @@ concurrency:

jobs:
geometry:
name: Production geometry budgets
runs-on: ubuntu-latest
steps:
- name: Checkout
Expand All @@ -26,7 +23,6 @@ jobs:
run: yarn benchmark:issue40

render-regressions:
name: Reassure children, list, and section-list paths
runs-on: ubuntu-latest
steps:
- name: Checkout candidate with baseline history
Expand Down
4 changes: 2 additions & 2 deletions docs/releasing.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,9 @@ GitHub only offers status checks that have run recently. Let the workflows run o
5. Under **Target branches**, select **Add target**, choose **Include default branch**, and confirm that it resolves to `main`.
6. Under **Branch rules**, enable **Require a pull request before merging**.
7. Enable **Require status checks to pass**. Use **Add checks** to require:
- The five `CI` jobs: `lint`, `test`, `build-library`, `build-android`, and `build-ios`.
- The four `CI` jobs: `lint`, `test`, `build-android`, and `build-ios`.
- The `Documentation` workflow's `build` job. Select the entry whose source is GitHub Actions and whose workflow is `Documentation` if GitHub shows multiple `build` checks.
- `Approve exact tarball for publication workflow` from `Exact package candidate`. This final job depends on every required package, performance, consumer, and device-contract job in that workflow.
- The two `Performance publication gates` jobs: `geometry` and `render-regressions`.
- `Changeset requirement`, the commit-specific check created by the release-intent workflow.
8. Enable **Require branches to be up to date before merging** so checks from an older head commit cannot authorize a merge.
9. Leave bypass permissions empty unless the repository has a separately documented emergency policy, then select **Create**.
Expand Down
Loading