| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- name: CI
- on:
- push:
- branches: [master, main]
- pull_request:
- branches: [master, main]
- jobs:
- build-and-test:
- runs-on: ubuntu-latest
- strategy:
- matrix:
- node-version: [20, 22]
- steps:
- - uses: actions/checkout@v4
- - uses: pnpm/action-setup@v4
- with:
- version: 9
- - uses: actions/setup-node@v4
- with:
- node-version: ${{ matrix.node-version }}
- cache: pnpm
- - run: pnpm install --frozen-lockfile
- - run: pnpm build
- - run: pnpm test
- - run: pnpm verify:publish-manifests
- verify-pack:
- runs-on: ubuntu-latest
- needs: build-and-test
- steps:
- - uses: actions/checkout@v4
- - uses: pnpm/action-setup@v4
- with:
- version: 9
- - uses: actions/setup-node@v4
- with:
- node-version: 22
- cache: pnpm
- - run: pnpm install --frozen-lockfile
- - run: pnpm build
- - run: pnpm verify:publish-manifests
- - name: Verify no workspace:* in tarballs
- run: |
- set -euo pipefail
- for pkg in packages/core packages/cli; do
- echo "--- Checking $pkg ---"
- cd "$pkg"
- PACKDIR=$(mktemp -d)
- npm pack --pack-destination "$PACKDIR" 2>/dev/null
- TGZ=$(ls "$PACKDIR"/*.tgz)
- PACKED_PKG=$(tar -xOf "$TGZ" package/package.json)
- if echo "$PACKED_PKG" | grep -q '"workspace:'; then
- echo "FAIL: $pkg tarball still contains workspace: protocol"
- echo "$PACKED_PKG" | grep 'workspace:'
- rm -rf "$PACKDIR"
- exit 1
- fi
- echo "OK: $pkg tarball is clean"
- rm -rf "$PACKDIR"
- cd - >/dev/null
- done
|