Skip to content

docs(plan): split scheduler projection materialization #231

docs(plan): split scheduler projection materialization

docs(plan): split scheduler projection materialization #231

name: Headless Workflow Contract
on:
pull_request:
push:
branches:
- main
jobs:
contract-and-parity:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@1.92.0
- name: Install .NET SDK
uses: actions/setup-dotnet@v4
with:
dotnet-version: '8.0.x'
- name: Cache Cargo
uses: Swatinem/rust-cache@v2
- name: Install C# UniFFI generator
run: cargo install uniffi-bindgen-cs --version 0.9.0 --locked
- name: Run workflow service tests
run: cargo test -p pantograph-workflow-service
- name: Check frontend HTTP adapter crate
run: |
cargo check -p pantograph-frontend-http-adapter
cargo test -p pantograph-frontend-http-adapter
- name: Run UniFFI adapter mode tests
run: |
cargo test -p pantograph-uniffi --no-default-features
cargo test -p pantograph-uniffi --features frontend-http
- name: Verify direct native runtime metadata
run: ./scripts/check-uniffi-embedded-runtime-surface.sh
- name: Verify generated C# direct runtime binding
run: ./scripts/check-uniffi-csharp-smoke.sh
- name: Package native library and C# binding artifacts
run: ./scripts/package-uniffi-csharp-artifacts.sh
- name: Compile and run packaged C# quickstart
run: ./scripts/check-packaged-csharp-quickstart.sh
- name: Upload generated C# binding artifact
uses: actions/upload-artifact@v4
with:
name: pantograph-csharp-bindings
path: target/bindings-package/artifacts/pantograph-csharp-bindings.zip
if-no-files-found: error
- name: Upload Pantograph headless native artifact
uses: actions/upload-artifact@v4
with:
name: pantograph-headless-native-linux-x64
path: target/bindings-package/artifacts/pantograph-headless-native-linux-x64.zip
if-no-files-found: error
- name: Upload package checksums
uses: actions/upload-artifact@v4
with:
name: pantograph-headless-checksums
path: target/bindings-package/artifacts/checksums-sha256.txt
if-no-files-found: error
- name: Check Rustler adapter modes
run: |
cargo check -p pantograph_rustler --tests --no-default-features
cargo check -p pantograph_rustler --tests --features frontend-http