129 lines
4 KiB
YAML
129 lines
4 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: Build libsnark
|
|
command: LIBSNARK_SOURCE_PATH=$HOME/libsnark ./build_libsnark.sh
|
|
- run:
|
|
name: Build
|
|
command: ZOKRATES_HOME=$(pwd)/stdlib/ 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: ZOKRATES_HOME=$(pwd)/stdlib/ WITH_LIBSNARK=1 LIBSNARK_SOURCE_PATH=$HOME/libsnark RUSTFLAGS="-D warnings" ./build.sh
|
|
- run:
|
|
name: Run tests
|
|
command: ZOKRATES_HOME=$(pwd)/stdlib/ 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: 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: ZOKRATES_HOME=$(pwd)/stdlib/ LIBSNARK_SOURCE_PATH=$HOME/libsnark ./build_libsnark.sh
|
|
- run:
|
|
name: Run integration tests
|
|
command: ZOKRATES_HOME=$(pwd)/stdlib/ 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
|
|
|
|
|