feat(mbga): Phase 1 + Phase 2 — conformance runners, boundary specs, reliability registry #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: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| node-version: [20.x] | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: pnpm/action-setup@v3 | |
| with: | |
| version: 9 | |
| - name: Use Node.js ${{ matrix.node-version }} | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: ${{ matrix.node-version }} | |
| cache: pnpm | |
| - name: Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: Check cross-package version references | |
| run: node scripts/check-versions.mjs | |
| - name: Build all packages | |
| run: pnpm -r run build | |
| - name: Lint all packages | |
| run: pnpm -r run lint --if-present | |
| - name: Test all packages | |
| run: pnpm -r run test | |
| conformance: | |
| name: Conformance Vectors | |
| runs-on: ubuntu-latest | |
| needs: [build-and-test] | |
| steps: | |
| - uses: actions/checkout@v6 | |
| # go-sdk is required by the Go conformance runner (replace directive) | |
| - uses: actions/checkout@v6 | |
| with: | |
| repository: bsv-blockchain/go-sdk | |
| path: go-sdk | |
| - uses: pnpm/action-setup@v4 | |
| with: | |
| version: 9 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 20 | |
| cache: pnpm | |
| - uses: actions/setup-go@v5 | |
| with: | |
| go-version-file: conformance/runner/go/go.mod | |
| cache-dependency-path: conformance/runner/go/go.sum | |
| - 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: Build Go runner | |
| run: cd conformance/runner/go && go build ./... | |
| - name: Run conformance vectors (Go) | |
| run: | | |
| cd conformance/runner/go && go run main.go \ | |
| --vectors ../../vectors \ | |
| --report ../../reports/go-report.xml | |
| - name: Upload conformance reports | |
| if: always() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: conformance-report | |
| path: conformance/reports/ | |
| if-no-files-found: ignore |