Skip to content

hax_compoly_horner_evaluation_PoC #34

hax_compoly_horner_evaluation_PoC

hax_compoly_horner_evaluation_PoC #34

Workflow file for this run

name: CI
on:
push:
pull_request:
jobs:
rust_and_hax:
runs-on: ubuntu-latest
env:
CARGO_TERM_COLOR: always
continue-on-error: true
steps:
- name: Checkout
uses: actions/checkout@v4
# -------- Rust --------
- name: Install Rust (stable)
uses: dtolnay/rust-toolchain@stable
- name: Rust cache
uses: Swatinem/rust-cache@v2
continue-on-error: true
with:
workspaces: |
rust/merkle_root_rs
- name: Build & test (Rust)
working-directory: rust/merkle_root_rs
continue-on-error: true
run: |
cargo build --verbose
cargo test --verbose
# -------- Install hax (cargo-hax v0.3.5) --------
- name: Install cargo-hax (v0.3.5)
continue-on-error: true
run: |
cargo install cargo-hax --version 0.3.5 --locked
- name: Show hax version
continue-on-error: true
run: |
cargo hax --version
which cargo-hax
- name: Hax extraction (Rust -> Lean)
continue-on-error: true
run: |
./scripts/extract.sh
- name: Check extraction is committed (no diff)
continue-on-error: true
run: |
git diff --exit-code -- lean/MerkleRootLean/Extracted
lean_optional_wip:
runs-on: ubuntu-latest
continue-on-error: true
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install elan (Lean toolchain manager)
continue-on-error: true
run: |
curl https://raw.githubusercontent.com/leanprover/elan/master/elan-init.sh -sSf | sh -s -- -y
echo "$HOME/.elan/bin" >> $GITHUB_PATH
- name: Lean cache
uses: actions/cache@v4
continue-on-error: true
with:
path: |
~/.elan
lean/.lake
key: ${{ runner.os }}-lean-${{ hashFiles('lean-toolchain', 'lean/lean-toolchain', 'lean/lake-manifest.json', 'lean/lakefile.toml') }}
restore-keys: |
${{ runner.os }}-lean-
# Note: currently WIP, expected to fail until Core.* namespace issue is resolved.
- name: Build Lean (WIP)
working-directory: lean
continue-on-error: true # Lean build can fail
run: |
lake update
lake build
always_pass:
runs-on: ubuntu-latest
needs: [rust_and_hax, lean_optional_wip]
if: always()
steps:
- name: Always succeed
run: |
echo "rust_and_hax: ${{ needs.rust_and_hax.result }}"
echo "lean_optional_wip: ${{ needs.lean_optional_wip.result }}"