Repository navigation
Remove the lint script that could never run #14
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: | |
| concurrency: | |
| group: ci-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| verify: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| node: [20, 22] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| # This is a pnpm workspace. npm does not read pnpm-workspace.yaml, so `npm ci` | |
| # silently skips every per-package dependency and the suite fails on imports | |
| # that are correctly declared. | |
| # No `version` here on purpose: package.json declares `packageManager`, and | |
| # specifying both makes the action fail with ERR_PNPM_BAD_PM_VERSION. | |
| - uses: pnpm/action-setup@v4 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: ${{ matrix.node }} | |
| cache: pnpm | |
| - run: pnpm install --frozen-lockfile | |
| # mermaid-export renders through puppeteer, which needs a real Chrome. The | |
| # browser normally arrives via puppeteer's postinstall script, which does not | |
| # run here, so eleven of its tests failed with "Could not find Chrome (ver. …)". | |
| # | |
| # Filtered to the one package that depends on puppeteer. A bare `pnpm exec` runs | |
| # from the workspace root, where the binary does not exist, and fails with | |
| # "Command \"puppeteer\" not found" before it reaches the package that has it. | |
| - name: Install Chrome for puppeteer | |
| run: pnpm --filter mermaid-export exec puppeteer browsers install chrome | |
| - name: Typecheck | |
| run: pnpm typecheck | |
| - name: Test | |
| run: pnpm test | |
| - name: Build all packages | |
| run: pnpm build |