| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- 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
- 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
- - 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
|