fix(wallet-toolbox): close nosend orphan-output failure mode #374
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: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| pull-requests: read | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| node-version: [24.x] | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | |
| with: | |
| fetch-depth: 0 | |
| - uses: pnpm/action-setup@8912a9102ac27614460f54aedde9e1e7f9aec20d # v6 | |
| - name: Use Node.js ${{ matrix.node-version }} | |
| uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 | |
| with: | |
| node-version: ${{ matrix.node-version }} | |
| cache: pnpm | |
| - name: Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: Check cross-package version references | |
| # Non-blocking. Multi-package patch PRs (one bump touches several packages whose | |
| # downstream deps can't reference the new versions until publish) will always | |
| # report stale refs in CI. Sync-versions.mjs runs at release time to reconcile. | |
| continue-on-error: true | |
| run: node scripts/check-versions.mjs | |
| - name: Build all packages | |
| # Exclude: workspace root (delegating script) and example-paymail (example package, not production) | |
| run: pnpm -r --filter '!@bsv/ts-stack' --filter '!example-paymail' run build | |
| - name: Lint all packages | |
| continue-on-error: true | |
| run: pnpm -r --filter '!@bsv/ts-stack' run lint --if-present | |
| - name: Test all packages | |
| # Exclude: workspace root (delegating script) and example-paymail (example package, not production) | |
| run: pnpm -r --filter '!@bsv/ts-stack' --filter '!example-paymail' run test | |
| - name: Generate SDK coverage | |
| run: | | |
| pnpm --filter @bsv/sdk run test:coverage | |
| node scripts/normalize-lcov-paths.mjs packages/sdk/coverage/lcov.info packages/sdk | |
| - name: Upload SDK coverage to Codecov | |
| if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository | |
| uses: codecov/codecov-action@75cd11691c0faa626561e295848008c8a7dddffe # v5 | |
| with: | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| files: packages/sdk/coverage/lcov.info | |
| flags: sdk | |
| name: ts-stack-sdk | |
| slug: bsv-blockchain/ts-stack | |
| fail_ci_if_error: true | |
| docs-validate: | |
| name: Docs Site Validation | |
| runs-on: ubuntu-latest | |
| # Run on every PR (cheap and protects the docs site) and on pushes that touch docs | |
| # The build step inside will fail fast on frontmatter or link problems before they reach production | |
| if: github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch' || github.event_name == 'push' | |
| permissions: | |
| contents: read | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | |
| with: | |
| fetch-depth: 1 | |
| - uses: pnpm/action-setup@8912a9102ac27614460f54aedde9e1e7f9aec20d # v6 | |
| - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 | |
| with: | |
| node-version: 24 | |
| cache: 'pnpm' | |
| - name: Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: Validate frontmatter + links (docs site) | |
| run: pnpm --filter docs-site validate | |
| # Full `pnpm docs:build` (SSG + pagefind + built-link checks + TypeDoc merge) runs in docs-deploy.yml | |
| # on pushes to main. This job provides fast feedback on every PR that touches docs. | |
| conformance: | |
| name: Conformance Vectors | |
| runs-on: ubuntu-latest | |
| needs: [build-and-test] | |
| permissions: | |
| contents: read | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 | |
| - uses: pnpm/action-setup@8912a9102ac27614460f54aedde9e1e7f9aec20d # v6 | |
| - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6 | |
| with: | |
| node-version: 24 | |
| cache: pnpm | |
| - run: pnpm install --ignore-scripts | |
| - name: Validate conformance vectors (TS) | |
| run: cd conformance/runner && node src/runner.js --validate-only | |
| - name: Run conformance vectors (TS) | |
| run: cd conformance/runner && node src/runner.js --report ../reports/ts-report.xml | |
| - name: Upload conformance reports | |
| if: always() | |
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 | |
| with: | |
| name: conformance-report | |
| path: conformance/reports/ | |
| if-no-files-found: ignore | |
| # Published so downstream SDKs can fetch the shared conformance corpus | |
| # and run their own language-specific runners in their own CI. | |
| - name: Publish conformance vectors | |
| if: github.ref == 'refs/heads/main' | |
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 | |
| with: | |
| name: conformance-vectors | |
| path: conformance/vectors/ | |
| retention-days: 90 |