Skip to content

chore(zero-swift): version packages #99

chore(zero-swift): version packages

chore(zero-swift): version packages #99

Workflow file for this run

name: Public JS
# CI for the public rocicorp/mono. Development happens in the private
# rocicorp/mono-internal, which publishes a filtered copy of every commit to
# mono (tools/public-sync). mono keeps the test suites only for the packages
# we want outside contributions to, so this runs the static checks and those
# packages' tests: on the synced commits, and on contributors' pull requests.
#
# It runs in mono-internal too, on the tree the sync would publish, so a change
# that breaks mono fails on its mono-internal pull request.
on:
workflow_dispatch:
push:
branches: [main]
pull_request:
branches: [main]
concurrency:
group: '${{ github.workflow }} @ ${{ github.event.pull_request.head.label || github.head_ref || github.ref }}'
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
permissions:
contents: read
jobs:
checks:
name: Public Checks
if: github.repository == 'rocicorp/mono' || github.repository == 'rocicorp/mono-internal' || github.repository == 'wevm/zero'
# ubuntu-latest has 4 cores on public repos but only 2 on private ones,
# where timing-sensitive tests flake; mono-internal uses a larger runner.
runs-on: ${{ github.repository == 'rocicorp/mono-internal' && 'ubuntu-x64-8-core' || 'ubuntu-latest' }}
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false
# Delete what tools/public-sync/public-filter keeps private, leaving the
# tree the sync publishes.
- name: Keep only published files
if: github.repository == 'rocicorp/mono-internal'
run: git ls-files -z --cached --ignored --exclude-from=tools/public-sync/public-filter | xargs -0 rm -f --
- uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6.0.9
with:
version: 11.11.0
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: 24.x
package-manager-cache: false
- name: Get pnpm store path
id: pnpm-store
run: echo "path=$(pnpm store path --silent)" >> "$GITHUB_OUTPUT"
- name: Cache pnpm store
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
with:
path: ${{ steps.pnpm-store.outputs.path }}
key: pnpm-store-v11-${{ runner.os }}-${{ runner.arch }}-full-${{ hashFiles('pnpm-lock.yaml', 'pnpm-workspace.yaml', 'package.json') }}
restore-keys: |
pnpm-store-v11-${{ runner.os }}-${{ runner.arch }}-full-
- name: Install
id: install
run: pnpm install --frozen-lockfile
# Each check runs even when an earlier one failed, so a pull request sees
# every problem at once.
- name: Sync Package Versions
if: ${{ !cancelled() && steps.install.outcome == 'success' }}
run: pnpm exec syncpack lint
# No verify-deps: dependencies used only by private files (e.g. a test
# helper) look unused here. mono-internal's own CI checks the full tree.
- name: Oxfmt
if: ${{ !cancelled() && steps.install.outcome == 'success' }}
run: pnpm exec oxfmt --check
- name: Lint
if: ${{ !cancelled() && steps.install.outcome == 'success' }}
run: pnpm run lint
- name: Check Types
if: ${{ !cancelled() && steps.install.outcome == 'success' }}
run: pnpm run check-types
test:
name: Public Test
if: github.repository == 'rocicorp/mono' || github.repository == 'rocicorp/mono-internal' || github.repository == 'wevm/zero'
# See Public Checks. x64, since this runs WebKit and Firefox too. Ubuntu
# 24.04, not ubuntu-latest: Playwright 1.60 has no browsers for 26.04.
runs-on: ${{ github.repository == 'rocicorp/mono-internal' && 'ubuntu-x64-8-core' || 'ubuntu-24.04' }}
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
persist-credentials: false
- name: Keep only published files
if: github.repository == 'rocicorp/mono-internal'
run: git ls-files -z --cached --ignored --exclude-from=tools/public-sync/public-filter | xargs -0 rm -f --
- uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6.0.9
with:
version: 11.11.0
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: 24.x
package-manager-cache: false
- name: Get pnpm store path
id: pnpm-store
run: echo "path=$(pnpm store path --silent)" >> "$GITHUB_OUTPUT"
- name: Cache pnpm store
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
with:
path: ${{ steps.pnpm-store.outputs.path }}
key: pnpm-store-v11-${{ runner.os }}-${{ runner.arch }}-full-${{ hashFiles('pnpm-lock.yaml', 'pnpm-workspace.yaml', 'package.json') }}
restore-keys: |
pnpm-store-v11-${{ runner.os }}-${{ runner.arch }}-full-
- run: pnpm install --frozen-lockfile
- uses: ./.github/actions/playwright-install
# The packages whose tests are published (see tools/public-sync/
# public-filter). Each package's own vitest config runs its node and
# browser projects.
- name: Run tests
run: >-
pnpm
--filter zero-client
--filter replicache
--filter @rocicorp/zero-events
--filter zero-react
--filter zero-solid
--filter shared
run test