Skip to content

chore: remove AI agent handoff artifacts from repo root (#268) #437

chore: remove AI agent handoff artifacts from repo root (#268)

chore: remove AI agent handoff artifacts from repo root (#268) #437

Workflow file for this run

name: CI – Build & Test Soroban Contracts
on:
push:
pull_request:
workflow_dispatch:
jobs:
frontend-lint:
name: Frontend – Lint & Format Check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- name: Install pnpm
uses: pnpm/action-setup@v6
with:
version: 10.33.0
- name: Setup Node.js
uses: actions/setup-node@v5
with:
node-version: "22"
cache: "pnpm"
cache-dependency-path: frontend/pnpm-lock.yaml
- name: Install dependencies
working-directory: frontend
run: pnpm install --frozen-lockfile
- name: Run ESLint
working-directory: frontend
run: pnpm lint
- name: Format files automatically
working-directory: frontend
run: pnpm format --write
- name: Run Prettier format check
working-directory: frontend
run: pnpm format:check
- name: Build Next.js & Check Performance Budget
working-directory: frontend
run: |
pnpm build
pnpm check-budget
build:
name: Build Soroban Contracts
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
toolchain: "1.85.0"
targets: wasm32-unknown-unknown
- name: Cache cargo
uses: actions/cache@v5
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
- name: Pin incompatible dependencies
working-directory: smartcontract
run: |
cargo update serde_with@3.18.0 --precise 3.17.0 || true
cargo update serde_with_macros@3.18.0 --precise 3.17.0 || true
cargo update darling@0.23.0 --precise 0.21.3 || true
cargo update darling_core@0.23.0 --precise 0.21.3 || true
cargo update darling_macro@0.23.0 --precise 0.21.3 || true
cargo update indexmap@2.14.0 --precise 2.6.0 || true
- name: Build Factory contract
working-directory: smartcontract
run: cargo build --target wasm32-unknown-unknown --release --manifest-path=contracts/factory/Cargo.toml
- name: Build Rotational contract
working-directory: smartcontract
run: cargo build --target wasm32-unknown-unknown --release --manifest-path=contracts/rotational/Cargo.toml
- name: Build Target contract
working-directory: smartcontract
run: cargo build --target wasm32-unknown-unknown --release --manifest-path=contracts/target/Cargo.toml
- name: Build Flexible contract
working-directory: smartcontract
run: cargo build --target wasm32-unknown-unknown --release --manifest-path=contracts/flexible/Cargo.toml
- name: Build Governance contract
working-directory: smartcontract
run: cargo build --target wasm32-unknown-unknown --release --manifest-path=contracts/governance/Cargo.toml
- name: Verify WASM artifacts
working-directory: smartcontract
run: |
ls -lh target/wasm32-unknown-unknown/release/*.wasm
echo "All contracts built successfully"
- name: Run unit tests
working-directory: smartcontract
run: cargo test
component-tests:
name: Run React Component Tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- name: Install pnpm
uses: pnpm/action-setup@v6
with:
version: 10.33.0
- name: Setup Node.js
uses: actions/setup-node@v5
with:
node-version: "22"
cache: "pnpm"
cache-dependency-path: frontend/pnpm-lock.yaml
- name: Install Frontend Dependencies
working-directory: frontend
run: pnpm install --frozen-lockfile
- name: Run React Component Test Suite with Coverage
working-directory: frontend
run: pnpm test:components:coverage