feat(core): adapter ecosystem hardening #42
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| jobs: | |
| build-and-test: | |
| name: Build & Test | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: pnpm/action-setup@v4 | |
| # version is read from packageManager field in package.json | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 20 | |
| cache: pnpm | |
| - name: Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: Install Patchright Chromium | |
| run: pnpm --filter @browserkit-dev/core exec patchright install chromium --with-deps | |
| - name: Build | |
| run: pnpm build | |
| - name: Test (unit) | |
| run: pnpm test | |
| # E2E: checkout adapter-hackernews and link it into the workspace for E2E tests. | |
| # The adapter uses workspace:* for @browserkit-dev/core so pnpm links it automatically. | |
| - name: Checkout adapter-hackernews for E2E | |
| uses: actions/checkout@v4 | |
| with: | |
| repository: browserkit-dev/adapter-hackernews | |
| path: packages/adapter-hackernews | |
| - name: Link adapter-hackernews into workspace | |
| run: | | |
| node -e " | |
| const fs = require('fs'); | |
| const pkg = JSON.parse(fs.readFileSync('packages/adapter-hackernews/package.json')); | |
| pkg.devDependencies['@browserkit-dev/core'] = 'workspace:*'; | |
| fs.writeFileSync('packages/adapter-hackernews/package.json', JSON.stringify(pkg, null, 2)); | |
| " | |
| pnpm install --no-frozen-lockfile | |
| pnpm --filter @browserkit-dev/adapter-hackernews build | |
| - name: Test (E2E smoke) | |
| run: pnpm test:e2e | |
| timeout-minutes: 5 |