Skip to content

ci: prepare testbed interoperability dependency #132

ci: prepare testbed interoperability dependency

ci: prepare testbed interoperability dependency #132

Workflow file for this run

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