ci: prepare testbed interoperability dependency #132
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: | |
| pull_request: | |
| jobs: | |
| spec-guardrails: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v7 | |
| - name: Setup Python | |
| uses: actions/setup-python@v7 | |
| with: | |
| python-version: '3.11' | |
| - name: Install specification check dependencies | |
| run: python -m pip install PyYAML==6.0.3 jsonschema==4.26.0 | |
| - name: Legacy conformance level guardrail | |
| run: python scripts/check_test_levels.py | |
| - name: Validate v0.3 fixture manifest and coverage | |
| run: python scripts/check_v03_tests.py | |
| - name: Verify migration fixture | |
| run: python scripts/prototype_tasknotes_v03_migration.py --check-fixture | |
| - name: Verify generated standard runtime pack | |
| run: node scripts/build_runtime_pack.mjs && git diff --exit-code | |
| runtime-package: | |
| name: runtime package (${{ matrix.os }}) | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, macos-latest, windows-latest] | |
| defaults: | |
| run: | |
| working-directory: packages/runtime-contracts | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v7 | |
| - name: Setup Node | |
| uses: actions/setup-node@v7 | |
| with: | |
| node-version: 22 | |
| cache: npm | |
| cache-dependency-path: packages/runtime-contracts/package-lock.json | |
| - name: Install dependencies | |
| working-directory: packages/interop | |
| run: npm ci | |
| - name: Build interoperability dependency | |
| working-directory: packages/interop | |
| run: npm run build | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Test package | |
| run: npm test | |
| - name: Verify package contents | |
| run: npm pack --dry-run | |
| runtime-executor: | |
| name: runtime boundary executor | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v7 | |
| - name: Setup Node | |
| uses: actions/setup-node@v7 | |
| with: | |
| node-version: 22 | |
| - name: Build local packages | |
| run: | | |
| npm --prefix packages/interop ci | |
| npm --prefix packages/interop run build | |
| npm --prefix packages/cel-host ci | |
| npm --prefix packages/cel-host run build | |
| npm --prefix packages/runtime-contracts ci | |
| npm --prefix packages/runtime-contracts run build | |
| - name: Test reference executor | |
| run: | | |
| npm --prefix packages/runtime-executor ci | |
| npm --prefix packages/runtime-executor test | |
| interoperability-testbed: | |
| name: interoperability testbed (${{ matrix.os }}, Node ${{ matrix.node }}) | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - os: ubuntu-latest | |
| node: 22 | |
| - os: macos-latest | |
| node: 22 | |
| - os: windows-latest | |
| node: 22 | |
| - os: ubuntu-latest | |
| node: 24 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v7 | |
| - name: Setup Node | |
| uses: actions/setup-node@v7 | |
| with: | |
| node-version: ${{ matrix.node }} | |
| cache: npm | |
| cache-dependency-path: | | |
| packages/interop/package-lock.json | |
| packages/testbed/package-lock.json | |
| - name: Install reference interoperability sources | |
| working-directory: packages/interop | |
| run: npm ci | |
| - name: Install testbed | |
| working-directory: packages/testbed | |
| run: npm ci | |
| - name: Run black-box reference scenarios | |
| working-directory: packages/testbed | |
| run: npm test | |
| - name: Verify generated package assets | |
| run: git diff --exit-code -- packages/testbed/assets | |
| - name: Verify package contents | |
| working-directory: packages/testbed | |
| run: npm pack --dry-run | |
| site-artifact: | |
| name: specification site artifact | |
| runs-on: ubuntu-latest | |
| defaults: | |
| run: | |
| working-directory: site | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v7 | |
| - name: Setup Node | |
| uses: actions/setup-node@v7 | |
| with: | |
| node-version: 22 | |
| cache: npm | |
| cache-dependency-path: site/package-lock.json | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Build specification reader | |
| run: npm run build | |
| - name: Upload specification artifact | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: mdbase-spec-site | |
| path: site/dist |