135 lines
4.1 KiB
YAML
135 lines
4.1 KiB
YAML
version: 2
|
|
|
|
jobs:
|
|
build:
|
|
docker:
|
|
- image: rustlang/rust:nightly-slim
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
name: Version information
|
|
command: rustc --version; cargo --version; rustup --version
|
|
- run:
|
|
name: Calculate dependencies
|
|
command: cargo generate-lockfile
|
|
- restore_cache:
|
|
keys:
|
|
- v4-cargo-cache-{{ arch }}-{{ checksum "Cargo.lock" }}
|
|
- run:
|
|
name: Check format
|
|
command: rustup component add rustfmt-preview; cargo fmt --all -- --check
|
|
- run:
|
|
name: Build libsnark
|
|
command: LIBSNARK_SOURCE_PATH=$HOME/libsnark ./build_libsnark.sh
|
|
- run:
|
|
name: Build
|
|
command: WITH_LIBSNARK=1 LIBSNARK_SOURCE_PATH=$HOME/libsnark RUSTFLAGS="-D warnings" ./build.sh
|
|
- save_cache:
|
|
paths:
|
|
- /usr/local/cargo/registry
|
|
- target/debug/.fingerprint
|
|
- target/debug/build
|
|
- target/debug/deps
|
|
key: v4-cargo-cache-{{ arch }}-{{ checksum "Cargo.lock" }}
|
|
test:
|
|
docker:
|
|
- image: rustlang/rust:nightly-slim
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
name: Version information
|
|
command: rustc --version; cargo --version; rustup --version
|
|
- run:
|
|
name: Calculate dependencies
|
|
command: cargo generate-lockfile
|
|
- restore_cache:
|
|
keys:
|
|
- v4-cargo-cache-{{ arch }}-{{ checksum "Cargo.lock" }}
|
|
- run:
|
|
name: Check format
|
|
command: rustup component add rustfmt-preview; cargo fmt --all -- --check
|
|
- run:
|
|
name: Build libsnark
|
|
command: LIBSNARK_SOURCE_PATH=$HOME/libsnark ./build_libsnark.sh
|
|
- run:
|
|
name: Build
|
|
command: WITH_LIBSNARK=1 LIBSNARK_SOURCE_PATH=$HOME/libsnark RUSTFLAGS="-D warnings" ./build.sh
|
|
- run:
|
|
name: Run tests
|
|
command: WITH_LIBSNARK=1 LIBSNARK_SOURCE_PATH=$HOME/libsnark RUSTFLAGS="-D warnings" cargo test --release -- --test-threads=1
|
|
- run:
|
|
name: Generate code coverage report
|
|
command: ./scripts/cov.sh
|
|
wasm_test:
|
|
docker:
|
|
- image: rustlang/rust:nightly-slim
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
name: Version information
|
|
command: rustc --version; cargo --version; rustup --version
|
|
- run:
|
|
name: Calculate dependencies
|
|
command: cargo generate-lockfile
|
|
- restore_cache:
|
|
keys:
|
|
- v4-cargo-cache-{{ arch }}-{{ checksum "Cargo.lock" }}
|
|
- run:
|
|
name: Download wasm32 target
|
|
command: rustup target add wasm32-unknown-unknown
|
|
- run:
|
|
name: Build libsnark
|
|
command: LIBSNARK_SOURCE_PATH=$HOME/libsnark ./build_libsnark.sh
|
|
- run:
|
|
name: Run tests with WASM enabled
|
|
command: cd zokrates_core && cargo test --release --features wasm -- --test-threads=1
|
|
integration_test:
|
|
docker:
|
|
- image: rustlang/rust:nightly-slim
|
|
steps:
|
|
- checkout
|
|
- run:
|
|
name: Version information
|
|
command: rustc --version; cargo --version; rustup --version
|
|
- run:
|
|
name: Calculate dependencies
|
|
command: cargo generate-lockfile
|
|
- restore_cache:
|
|
keys:
|
|
- v4-cargo-cache-{{ arch }}-{{ checksum "Cargo.lock" }}
|
|
- run:
|
|
name: Build libsnark
|
|
command: LIBSNARK_SOURCE_PATH=$HOME/libsnark ./build_libsnark.sh
|
|
- run:
|
|
name: Run integration tests
|
|
command: WITH_LIBSNARK=1 LIBSNARK_SOURCE_PATH=$HOME/libsnark RUSTFLAGS="-D warnings" cargo test --release -- --ignored
|
|
deploy:
|
|
docker:
|
|
- image: circleci/python
|
|
steps:
|
|
- checkout
|
|
- setup_remote_docker:
|
|
docker_layer_caching: true
|
|
- run:
|
|
name: Release
|
|
command: ./scripts/release.sh
|
|
|
|
workflows:
|
|
version: 2
|
|
build-test-and-deploy:
|
|
jobs:
|
|
- build
|
|
- test
|
|
- wasm_test
|
|
- integration_test
|
|
- deploy:
|
|
# filters:
|
|
# branches:
|
|
# only:
|
|
# - master
|
|
requires:
|
|
- build
|
|
- test
|
|
- integration_test
|
|
|
|
|