effect(core-errors): add Schema.TaggedError twins for ARCPError hiera… #21
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
| # CI for typescript-sdk (ARCP) | |
| # | |
| # Action pinning policy: | |
| # - First-party actions (actions/*) use major version tags (e.g. @v4). | |
| # - Third-party actions are pinned to a full commit SHA with a version comment. | |
| # | |
| # package.json engines.node: ">=22" | |
| # Matrix covers floor (22), active LTS (22), and latest (24). | |
| name: test | |
| on: | |
| push: | |
| branches: [main] | |
| paths-ignore: | |
| - "**.md" | |
| - "docs/**" | |
| - "LICENSE" | |
| - ".gitignore" | |
| - ".editorconfig" | |
| pull_request: | |
| branches: [main] | |
| paths-ignore: | |
| - "**.md" | |
| - "docs/**" | |
| - "LICENSE" | |
| - ".gitignore" | |
| - ".editorconfig" | |
| workflow_dispatch: | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: ${{ github.event_name == 'pull_request' }} | |
| permissions: | |
| contents: read | |
| jobs: | |
| test: | |
| name: test (node ${{ matrix.node }}) | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| node: ["22", "24"] | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 1 | |
| - name: Setup pnpm | |
| # pnpm/action-setup v4.0.0 | |
| uses: pnpm/action-setup@a7487c7e89a18df4991f7f222e4898a00d66ddda # v4.0.0 | |
| with: | |
| version: 9.15.0 | |
| run_install: false | |
| - name: Setup Node.js ${{ matrix.node }} | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: ${{ matrix.node }} | |
| cache: "pnpm" | |
| - name: Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: Lint (biome) | |
| run: pnpm run lint:biome | |
| # The strict ESLint complexity rules from TYPESCRIPT_SDK_GUIDE.md | |
| # Section 11 are enforced but currently surface ~79 violations across | |
| # 12 files. Sub-phase 2.5 of the refactor (.refactor/STATE.md) is | |
| # closing them. Marked continue-on-error until that sub-phase wraps. | |
| - name: Lint (eslint, advisory during refactor) | |
| run: pnpm run lint:eslint | |
| continue-on-error: true | |
| - name: Typecheck | |
| run: pnpm run typecheck | |
| - name: Build | |
| run: pnpm run build | |
| - name: Test | |
| run: pnpm test | |
| # check:cycles runs madge against the compiled .js so it reports only | |
| # real runtime cycles. Type-only imports (erased by | |
| # verbatimModuleSyntax) can form source-level cycles that don't exist | |
| # at runtime; those are not bugs. | |
| - name: Cycle check | |
| run: pnpm run check:cycles | |
| - name: Are the types wrong? | |
| run: pnpm run check:attw | |
| - name: publint | |
| run: pnpm run check:publint | |
| - name: Upload test artifacts on failure | |
| if: failure() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: test-artifacts-node-${{ matrix.node }} | |
| path: | | |
| coverage/ | |
| test-results/ | |
| *.log | |
| if-no-files-found: ignore | |
| retention-days: 7 |