Skip to content

EIP-7594 implementation #170

EIP-7594 implementation

EIP-7594 implementation #170

Workflow file for this run

name: tests
on: [push, pull_request, workflow_dispatch]
env:
C_KZG_4844_GIT_HASH: '0ff9f37000445b28b2f4b17df4efe6140ac121ac'
jobs:
kzg_ci:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
# Check kzg clippy for default msm backend
- name: "kzg clippy"
uses: actions-rs/cargo@v1
with:
command: clippy
args: --manifest-path kzg/Cargo.toml --all-targets --no-default-features --features=parallel,std,rand -- -D warnings
# Check kzg clippy for BGMW msm backend
- name: "kzg clippy (bgmw)"
uses: actions-rs/cargo@v1
with:
command: clippy
args: --manifest-path kzg/Cargo.toml --all-targets --features=parallel,std,rand,bgmw -- -D warnings
# Check kzg clippy for arkmsm backend
- name: "kzg clippy (arkmsm)"
uses: actions-rs/cargo@v1
with:
command: clippy
args: --manifest-path kzg/Cargo.toml --all-targets --features=parallel,std,rand,arkmsm -- -D warnings
# Check kzg clippy for sppark backend
- name: "kzg clippy (sppark)"
uses: actions-rs/cargo@v1
with:
command: clippy
args: --manifest-path kzg/Cargo.toml --all-targets --features=parallel,std,rand,sppark -- -D warnings
# Check kzg formatting
- name: "kzg format"
uses: actions-rs/cargo@v1
with:
command: fmt
args: --manifest-path kzg/Cargo.toml -- --check
# Check kzg-bench clippy
- name: "kzg-bench clippy"
uses: actions-rs/cargo@v1
with:
command: clippy
args: --manifest-path kzg-bench/Cargo.toml --all-targets --all-features -- -D warnings
# Check kzg-bench formatting
- name: "kzg-bench format"
uses: actions-rs/cargo@v1
with:
command: fmt
args: --manifest-path kzg-bench/Cargo.toml -- --check
backend_ci:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
# Excluding mcl for now due to they have different project layout
backend: [blst, zkcrypto, arkworks, arkworks3, constantine]
include:
# Set default clippy flag
- clippy-flag: --features=default,std,rand,parallel
# Setup exec_once_per_backend flag
- os: ubuntu-latest
exec_once_per_backend: true
# Select backends which support wasm & which support ckzg drop-in
- backend: blst
support_wasm: true
support_ckzg: true
- backend: zkcrypto
support_wasm: true
support_ckzg: true
clippy-flag: --all-features
- backend: arkworks
support_wasm: true
support_ckzg: true
- backend: arkworks3
support_wasm: true
support_ckzg: true
- backend: constantine
# FIXME: Check for wasm support
support_wasm: false
support_ckzg: true
steps:
- uses: actions/checkout@v2
- uses: actions/setup-java@v3
with:
distribution: "temurin"
java-version: "11"
- uses: jiro4989/setup-nim-action@v2
with:
nim-version: '2.0.2'
- uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: Install python dependencies
run: |
python -m pip install --upgrade pip
pip install py_ecc
pip install PyYAML
pip install build
- uses: actions/setup-go@v2
with:
go-version: ^1.19
# Install constantine backend deps
- name: "constantine - install deps"
if: matrix.backend == 'constantine' && matrix.os == 'ubuntu-latest'
run: |
sudo DEBIAN_FRONTEND='noninteractive' apt-fast install \
--no-install-recommends -yq \
libgmp-dev \
llvm
# Check backend clippy
- name: "${{ matrix.backend }} clippy"
if: matrix.exec_once_per_backend
uses: actions-rs/cargo@v1
with:
command: clippy
args: --manifest-path ${{ matrix.backend }}/Cargo.toml --all-targets ${{ matrix.clippy-flag }} -- -D warnings
# Check backend formatting
- name: "${{ matrix.backend }} format"
if: matrix.exec_once_per_backend
uses: actions-rs/cargo@v1
with:
command: fmt
args: --manifest-path ${{ matrix.backend }}/Cargo.toml -- --check
# Check wasm32 target clippy for backend
- name: "[wasm32] ${{ matrix.backend }} clippy"
if: matrix.exec_once_per_backend && matrix.support_wasm
uses: actions-rs/cargo@v1
with:
command: clippy
args: --manifest-path ${{ matrix.backend }}/Cargo.toml --target wasm32-unknown-unknown --no-default-features
# Check wasm32 target backend build
- name: "[wasm32] ${{ matrix.backend }} build"
if: matrix.exec_once_per_backend && matrix.support_wasm
uses: actions-rs/cargo@v1
with:
command: build
args: --manifest-path ${{ matrix.backend }}/Cargo.toml --target wasm32-unknown-unknown --no-default-features
# Check non-parallel backend tests
- name: "${{ matrix.backend }} Tests"
uses: actions-rs/cargo@v1
with:
command: test
args: --manifest-path ${{ matrix.backend }}/Cargo.toml --no-fail-fast --release
# Check parallel backend tests
- name: "${{ matrix.backend }} Tests (parallel)"
uses: actions-rs/cargo@v1
with:
command: test
args: --manifest-path ${{ matrix.backend }}/Cargo.toml --no-fail-fast --release --features parallel
# Check ckzg backend tests
- name: "${{ matrix.backend }} Tests (c-kzg-4844)"
if: matrix.exec_once_per_backend && matrix.support_ckzg
run: |
bash run-c-kzg-4844-tests.sh ${{ matrix.backend }}
# Check parallel ckzg backend tests
- name: "${{ matrix.backend }} Tests (c-kzg-4844 parallel)"
if: matrix.exec_once_per_backend && matrix.support_ckzg
run: |
bash run-c-kzg-4844-tests.sh --parallel ${{ matrix.backend }}