Skip to content

feat(mcp): add echidna-mcp server so AI agents can call ECHIDNA as a … #29

feat(mcp): add echidna-mcp server so AI agents can call ECHIDNA as a …

feat(mcp): add echidna-mcp server so AI agents can call ECHIDNA as a … #29

Workflow file for this run

# SPDX-License-Identifier: PMPL-1.0-or-later
name: Chapel Accelerator CI
on:
push:
paths:
- 'src/zig_ffi/**'
- 'src/rust/proof_search.rs'
- 'chapel_poc/**'
- 'Cargo.toml'
- '.github/workflows/chapel-ci.yml'
pull_request:
paths:
- 'src/zig_ffi/**'
- 'src/rust/proof_search.rs'
- 'chapel_poc/**'
- 'Cargo.toml'
- '.github/workflows/chapel-ci.yml'
permissions: read-all
jobs:
# Job 1: Compile Chapel .chpl files into a shared library
chapel-build:
name: Compile Chapel Metalayer
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
- name: Install Chapel
run: |
# Install Chapel from official apt repository
curl -fsSL https://github.com/chapel-lang/chapel/releases/download/2.3.0/chapel-2.3.0-1.ubuntu24.amd64.deb \
-o /tmp/chapel.deb
sudo dpkg -i /tmp/chapel.deb || sudo apt-get install -f -y
# Verify installation
chpl --version
- name: Compile Chapel proof search module
run: |
cd chapel_poc
chpl --library --dynamic \
-o libechidna_chapel \
chapel_ffi_exports.chpl parallel_proof_search.chpl
ls -la libechidna_chapel*
- name: Run Chapel standalone test
run: |
cd chapel_poc
chpl -o chapel_test parallel_proof_search.chpl
# Run with verbose output, will show prover availability
timeout 30 ./chapel_test --verbose=true || true
- name: Upload Chapel library artifact
uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4
with:
name: chapel-lib
path: chapel_poc/libechidna_chapel*
# Job 2: Build and test Zig FFI bridge (always uses stubs)
zig-ffi:
name: Build & Test Zig FFI Bridge
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
- name: Install Zig
uses: goto-bus-stop/setup-zig@7ab2955eb728f5440978d7e4f60155e5e3a9e02f # v2
with:
version: 0.13.0
- name: Build Zig FFI library (with Chapel stubs)
run: cd src/zig_ffi && zig build -Doptimize=ReleaseSafe
- name: Run Zig FFI tests (stub mode)
run: cd src/zig_ffi && zig build test
- name: Upload FFI library artifact
uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4
with:
name: chapel-ffi-lib
path: src/zig_ffi/zig-out/lib/
# Job 3: Build Rust with chapel feature (links against Zig FFI stubs)
rust-chapel-feature:
name: Rust Build with Chapel Feature
runs-on: ubuntu-latest
needs: zig-ffi
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@4be9e76fd7c4901c61fb841f559994984270fce7 # stable
with:
toolchain: stable
- name: Rust cache
uses: Swatinem/rust-cache@779680da715d629ac1d338a641029a2f4372abb5 # v2
- name: Download FFI library
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4
with:
name: chapel-ffi-lib
path: src/zig_ffi/zig-out/lib/
- name: Build with chapel feature
run: cargo build --features chapel
- name: Test with chapel feature
run: cargo test --features chapel -- proof_search