leo/.circleci/config.yml

250 lines
6.7 KiB
YAML
Raw Normal View History

2021-02-25 07:03:50 +03:00
version: 2.1
commands:
setup_environment:
2021-02-25 07:20:02 +03:00
description: "Setup environment"
2021-02-25 07:03:50 +03:00
parameters:
cache_key:
type: string
default: leo-stable-cache
steps:
- run: set -e
- setup_remote_docker
- run:
name: Prepare environment and install dependencies
command: |
export SCCACHE_CACHE_SIZE=200M
export WORK_DIR="$CIRCLE_WORKING_DIRECTORY/.cache/sccache"
export SCCACHE_DIR="$CIRCLE_WORKING_DIRECTORY/.cache/sccache"
mkdir -p "$CIRCLE_WORKING_DIRECTORY/.bin"
wget https://github.com/mozilla/sccache/releases/download/0.2.13/sccache-0.2.13-x86_64-unknown-linux-musl.tar.gz
tar -C "$CIRCLE_WORKING_DIRECTORY/.bin" -xvf sccache-0.2.13-x86_64-unknown-linux-musl.tar.gz
mv $CIRCLE_WORKING_DIRECTORY/.bin/sccache-0.2.13-x86_64-unknown-linux-musl/sccache $CIRCLE_WORKING_DIRECTORY/.bin/sccache
export PATH="$PATH:$CIRCLE_WORKING_DIRECTORY/.bin"
export RUSTC_WRAPPER="sccache"
rm -rf "$CIRCLE_WORKING_DIRECTORY/.cargo/registry"
sudo apt-get update && sudo apt-get install -y clang llvm-dev llvm pkg-config xz-utils make libssl-dev libssl-dev
- restore_cache:
keys:
- << parameters.cache_key >>
clear_environment:
description: "Clear environment"
parameters:
cache_key:
type: string
default: leo-stable-cache
steps:
- run: (sccache -s||true)
- run: set +e
- save_cache:
key: << parameters.cache_key >>
paths:
- .cache/sccache
- .cargo
jobs:
2021-02-25 07:11:23 +03:00
2021-02-25 07:03:50 +03:00
rust-stable:
2021-03-16 06:34:37 +03:00
docker:
- image: cimg/rust:1.50.0
resource_class: xlarge
steps:
- checkout
- setup_environment:
cache_key: leo-stable-cache
- run:
name: Build and run tests
no_output_timeout: 30m
command: cargo test --all
- persist_to_workspace:
root: ~/
paths: project/
- clear_environment:
cache_key: leo-stable-cache
rust-nightly:
docker:
- image: howardwu/snarkos-ci:2021-01-31
resource_class: xlarge
steps:
- checkout
- setup_environment:
cache_key: leo-nightly-cache
- run:
name: Build and test
no_output_timeout: 30m
command: cargo test --all
- clear_environment:
cache_key: leo-nightly-cache
2021-03-16 08:53:26 +03:00
# codecov:
# machine:
# image: ubuntu-1604:202004-01
# docker_layer_caching: true
# resource_class: xlarge
# steps:
# - attach_workspace:
# at: /home/circleci/project/
# - run:
# name: Run kcov
# command: >
# cd ~/project/project/ &&
# docker run --security-opt seccomp=unconfined -v ~/project/project/:/home/circleci/project/
# howardwu/snarkos-codecov:2021-01-31 bash /home/circleci/project/.resources/kcov.sh
# - run: cd ./project/ && bash <(curl -s https://codecov.io/bash)
2021-03-16 06:34:37 +03:00
2021-03-16 06:44:37 +03:00
leo-executable:
2021-02-25 07:03:50 +03:00
docker:
2021-02-25 08:48:54 +03:00
- image: cimg/rust:1.50.0
2021-02-25 07:03:50 +03:00
resource_class: xlarge
steps:
- checkout
- setup_environment:
2021-03-16 06:44:37 +03:00
cache_key: leo-executable-cache
2021-02-25 07:03:50 +03:00
- run:
2021-03-16 06:41:04 +03:00
name: Build and install Leo
2021-02-25 07:03:50 +03:00
no_output_timeout: 30m
2021-02-25 07:37:59 +03:00
command: cargo install --path . --root .
2021-02-25 07:03:50 +03:00
- persist_to_workspace:
2021-02-25 07:55:29 +03:00
root: ~/
2021-02-25 07:03:50 +03:00
paths: project/
- clear_environment:
2021-03-16 06:44:37 +03:00
cache_key: leo-executable-cache
2021-02-25 07:11:23 +03:00
2021-02-25 07:03:50 +03:00
leo-new:
docker:
2021-02-25 08:48:54 +03:00
- image: cimg/rust:1.50.0
2021-02-25 07:03:50 +03:00
resource_class: xlarge
steps:
- attach_workspace:
at: /home/circleci/project/
- run:
name: leo new
2021-02-25 08:11:31 +03:00
command: |
2021-02-25 08:32:57 +03:00
export LEO=/home/circleci/project/project/bin/leo
2021-02-25 08:23:47 +03:00
./project/.circleci/leo-new.sh
leo-init:
docker:
2021-02-25 08:48:54 +03:00
- image: cimg/rust:1.50.0
2021-02-25 08:23:47 +03:00
resource_class: xlarge
steps:
- attach_workspace:
at: /home/circleci/project/
- run:
2021-02-25 08:45:06 +03:00
name: leo init
2021-02-25 08:23:47 +03:00
command: |
2021-02-25 08:32:57 +03:00
export LEO=/home/circleci/project/project/bin/leo
2021-02-25 08:23:47 +03:00
./project/.circleci/leo-init.sh
2021-02-25 07:03:50 +03:00
2021-02-25 08:45:06 +03:00
leo-clean:
docker:
2021-02-25 08:48:54 +03:00
- image: cimg/rust:1.50.0
2021-02-25 08:45:06 +03:00
resource_class: xlarge
steps:
- attach_workspace:
at: /home/circleci/project/
- run:
name: leo clean
command: |
export LEO=/home/circleci/project/project/bin/leo
./project/.circleci/leo-clean.sh
2021-02-25 09:22:29 +03:00
leo-setup:
docker:
- image: cimg/rust:1.50.0
resource_class: xlarge
steps:
- attach_workspace:
at: /home/circleci/project/
- run:
name: leo setup
command: |
export LEO=/home/circleci/project/project/bin/leo
./project/.circleci/leo-setup.sh
2021-02-25 08:59:06 +03:00
leo-add-remove:
docker:
- image: cimg/rust:1.50.0
resource_class: xlarge
steps:
- attach_workspace:
at: /home/circleci/project/
- run:
name: leo add & remove
command: |
export LEO=/home/circleci/project/project/bin/leo
./project/.circleci/leo-add-remove.sh
2021-02-25 09:22:29 +03:00
leo-login-logout:
2021-02-25 09:13:55 +03:00
docker:
- image: cimg/rust:1.50.0
resource_class: xlarge
steps:
- attach_workspace:
at: /home/circleci/project/
- run:
2021-02-25 09:22:29 +03:00
name: leo login & logout
2021-02-25 09:13:55 +03:00
command: |
export LEO=/home/circleci/project/project/bin/leo
2021-02-25 09:22:29 +03:00
./project/.circleci/leo-login-logout.sh
2021-02-25 09:13:55 +03:00
2021-02-25 20:34:06 +03:00
leo-clone:
docker:
- image: cimg/rust:1.50.0
resource_class: xlarge
steps:
- attach_workspace:
at: /home/circleci/project/
- run:
name: leo clone
command: |
export LEO=/home/circleci/project/project/bin/leo
./project/.circleci/leo-clone.sh
leo-publish:
docker:
- image: cimg/rust:1.50.0
resource_class: xlarge
steps:
- attach_workspace:
at: /home/circleci/project/
- run:
name: leo publish
command: |
export LEO=/home/circleci/project/project/bin/leo
./project/.circleci/leo-publish.sh
2021-02-25 07:03:50 +03:00
workflows:
version: 2
main-workflow:
jobs:
- rust-stable
2021-03-16 06:34:37 +03:00
- rust-nightly
2021-03-16 08:53:26 +03:00
# - codecov:
# requires:
# - rust-stable
2021-03-16 06:44:37 +03:00
- leo-executable
2021-03-16 06:34:37 +03:00
- leo-new:
requires:
2021-03-16 06:44:37 +03:00
- leo-executable
2021-02-25 08:23:47 +03:00
- leo-init:
requires:
2021-03-16 06:44:37 +03:00
- leo-executable
2021-02-25 08:45:06 +03:00
- leo-clean:
requires:
2021-03-16 06:44:37 +03:00
- leo-executable
2021-02-25 09:22:29 +03:00
- leo-setup:
2021-02-25 08:59:06 +03:00
requires:
2021-03-16 06:44:37 +03:00
- leo-executable
2021-02-25 09:22:29 +03:00
- leo-add-remove:
2021-02-25 09:13:55 +03:00
requires:
2021-03-16 06:44:37 +03:00
- leo-executable
2021-02-25 09:22:29 +03:00
- leo-login-logout:
requires:
2021-03-16 06:44:37 +03:00
- leo-executable
2021-02-25 21:03:17 +03:00
- leo-clone:
requires:
2021-03-16 06:44:37 +03:00
- leo-executable
2021-02-25 20:34:06 +03:00
- leo-publish:
requires:
2021-03-16 06:44:37 +03:00
- leo-executable