2018-11-05 17:03:09 +00:00
|
|
|
version: 2
|
|
|
|
jobs:
|
2018-11-17 18:43:05 +00:00
|
|
|
# Job used for testing
|
2019-01-18 19:27:16 +00:00
|
|
|
lint:
|
|
|
|
docker:
|
|
|
|
- image: circleci/rust:latest
|
|
|
|
steps:
|
|
|
|
- checkout
|
2019-01-18 19:33:25 +00:00
|
|
|
- restore_cache:
|
|
|
|
keys:
|
2019-01-23 05:40:42 +00:00
|
|
|
- v6-lint-{{ arch }}-{{ checksum "Cargo.lock" }}
|
2019-01-18 19:33:25 +00:00
|
|
|
- run:
|
|
|
|
name: Install dependencies
|
|
|
|
command: |
|
|
|
|
sudo apt-get install -y cmake
|
2019-03-05 21:32:02 +00:00
|
|
|
curl -O https://releases.llvm.org/7.0.0/clang+llvm-7.0.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz
|
|
|
|
tar xf clang+llvm-7.0.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz
|
2019-03-05 21:45:19 +00:00
|
|
|
export PATH=$PATH:`pwd`/clang+llvm-7.0.0-x86_64-linux-gnu-ubuntu-16.04/bin/
|
2019-01-18 19:33:25 +00:00
|
|
|
- run:
|
|
|
|
name: Install lint deps
|
|
|
|
command: |
|
|
|
|
rustup component add rustfmt
|
|
|
|
rustup component add clippy
|
2019-01-18 19:59:31 +00:00
|
|
|
- run:
|
|
|
|
name: Execute lints
|
|
|
|
command: make lint
|
2019-01-18 19:33:25 +00:00
|
|
|
- save_cache:
|
|
|
|
paths:
|
|
|
|
- /usr/local/cargo/registry
|
|
|
|
- target/debug/.fingerprint
|
|
|
|
- target/debug/build
|
|
|
|
- target/debug/deps
|
2019-01-23 05:40:42 +00:00
|
|
|
key: v6-lint-{{ arch }}-{{ checksum "Cargo.lock" }}
|
2019-01-18 19:27:16 +00:00
|
|
|
|
2018-11-17 18:43:05 +00:00
|
|
|
test:
|
|
|
|
docker:
|
|
|
|
- image: circleci/rust:latest
|
|
|
|
steps:
|
|
|
|
- checkout
|
|
|
|
- restore_cache:
|
|
|
|
keys:
|
2019-01-23 05:40:42 +00:00
|
|
|
- v6-test-cargo-cache-linux-{{ arch }}-{{ checksum "Cargo.lock" }}
|
2019-01-18 19:27:16 +00:00
|
|
|
- run:
|
|
|
|
name: Install dependencies
|
|
|
|
command: |
|
|
|
|
sudo apt-get install -y cmake
|
2019-03-05 21:32:02 +00:00
|
|
|
curl -O https://releases.llvm.org/7.0.0/clang+llvm-7.0.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz
|
|
|
|
tar xf clang+llvm-7.0.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz
|
2019-03-05 21:45:19 +00:00
|
|
|
export PATH=$PATH:`pwd`/clang+llvm-7.0.0-x86_64-linux-gnu-ubuntu-16.04/bin/
|
2018-11-17 18:43:05 +00:00
|
|
|
- run: make test
|
2019-02-09 01:47:51 +00:00
|
|
|
- run: make integration-tests
|
2018-11-17 18:43:05 +00:00
|
|
|
- save_cache:
|
|
|
|
paths:
|
|
|
|
- /usr/local/cargo/registry
|
|
|
|
- target/debug/.fingerprint
|
|
|
|
- target/debug/build
|
|
|
|
- target/debug/deps
|
2019-01-23 05:40:42 +00:00
|
|
|
key: v6-test-cargo-cache-linux-{{ arch }}-{{ checksum "Cargo.lock" }}
|
2018-11-17 18:43:05 +00:00
|
|
|
|
2019-01-01 20:12:48 +00:00
|
|
|
test-macos:
|
|
|
|
macos:
|
|
|
|
xcode: "9.0"
|
|
|
|
steps:
|
|
|
|
- checkout
|
|
|
|
- restore_cache:
|
|
|
|
keys:
|
2019-01-23 05:40:42 +00:00
|
|
|
- v6-cargo-cache-darwin-{{ arch }}-{{ checksum "Cargo.lock" }}
|
2019-01-09 23:23:22 +00:00
|
|
|
- run:
|
2019-01-18 19:33:25 +00:00
|
|
|
name: Install crate dependencies
|
2019-01-09 23:23:22 +00:00
|
|
|
command: |
|
2019-01-23 05:32:06 +00:00
|
|
|
# Installing cmake outside of brew to improve speed
|
|
|
|
curl -O https://cmake.org/files/v3.4/cmake-3.4.1-Darwin-x86_64.tar.gz
|
|
|
|
tar xf cmake-3.4.1-Darwin-x86_64.tar.gz
|
|
|
|
export PATH="`pwd`/cmake-3.4.1-Darwin-x86_64/CMake.app/Contents/bin:$PATH"
|
2019-03-05 21:32:02 +00:00
|
|
|
# Installing LLVM outside of brew
|
|
|
|
curl -O https://releases.llvm.org/7.0.0/clang+llvm-7.0.0-x86_64-apple-darwin.tar.xz
|
|
|
|
tar xf clang+llvm-7.0.0-x86_64-apple-darwin.tar.xz
|
|
|
|
export LLVM_SYS_70_PREFIX="`pwd`/clang+llvm-7.0.0-x86_64-apple-darwin/"
|
2019-01-01 20:12:48 +00:00
|
|
|
- run:
|
|
|
|
name: Install Rust
|
|
|
|
command: |
|
|
|
|
curl https://sh.rustup.rs -sSf | sh -s -- -y
|
|
|
|
export PATH="$HOME/.cargo/bin:$PATH"
|
|
|
|
cargo --version
|
|
|
|
- run:
|
|
|
|
name: Execute tests
|
|
|
|
command: |
|
|
|
|
export PATH="$HOME/.cargo/bin:$PATH"
|
2019-01-23 05:32:06 +00:00
|
|
|
export PATH="`pwd`/cmake-3.4.1-Darwin-x86_64/CMake.app/Contents/bin:$PATH"
|
2019-01-01 20:12:48 +00:00
|
|
|
# We increase the ulimit for fixing cargo unclosed files in mac
|
|
|
|
ulimit -n 8000
|
|
|
|
sudo sysctl -w kern.maxfiles=655360 kern.maxfilesperproc=327680
|
|
|
|
make test
|
2019-01-14 04:56:59 +00:00
|
|
|
- run:
|
|
|
|
name: Execute integration tests
|
|
|
|
command: |
|
|
|
|
export PATH="$HOME/.cargo/bin:$PATH"
|
2019-01-23 05:32:06 +00:00
|
|
|
export PATH="`pwd`/cmake-3.4.1-Darwin-x86_64/CMake.app/Contents/bin:$PATH"
|
2019-01-18 20:20:13 +00:00
|
|
|
make integration-tests
|
2019-01-18 18:59:47 +00:00
|
|
|
- save_cache:
|
|
|
|
paths:
|
2019-01-23 05:40:42 +00:00
|
|
|
- ~/.cargo/registry/
|
2019-01-18 18:59:47 +00:00
|
|
|
- target/debug/.fingerprint
|
|
|
|
- target/debug/build
|
|
|
|
- target/debug/deps
|
|
|
|
- target/release/.fingerprint
|
|
|
|
- target/release/build
|
|
|
|
- target/release/deps
|
2019-01-23 05:40:42 +00:00
|
|
|
key: v6-cargo-cache-darwin-{{ arch }}-{{ checksum "Cargo.lock" }}
|
2019-01-01 20:12:48 +00:00
|
|
|
|
2018-11-17 18:43:05 +00:00
|
|
|
test-and-build:
|
2018-11-05 17:03:09 +00:00
|
|
|
docker:
|
2018-11-05 17:10:34 +00:00
|
|
|
- image: circleci/rust:latest
|
2018-11-05 17:03:09 +00:00
|
|
|
steps:
|
|
|
|
- checkout
|
|
|
|
- restore_cache:
|
|
|
|
keys:
|
2019-01-23 05:40:42 +00:00
|
|
|
- v6-cargo-cache-linux-{{ arch }}-{{ checksum "Cargo.lock" }}
|
2019-01-18 19:27:16 +00:00
|
|
|
- run:
|
|
|
|
name: Install dependencies
|
|
|
|
command: |
|
|
|
|
sudo apt-get install -y cmake
|
2019-03-05 21:32:02 +00:00
|
|
|
curl -O https://releases.llvm.org/7.0.0/clang+llvm-7.0.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz
|
|
|
|
tar xf clang+llvm-7.0.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz
|
2019-03-05 21:45:19 +00:00
|
|
|
export PATH=$PATH:`pwd`/clang+llvm-7.0.0-x86_64-linux-gnu-ubuntu-16.04/bin/
|
2018-11-13 18:28:50 +00:00
|
|
|
- run:
|
2018-11-23 18:35:41 +00:00
|
|
|
name: Execute tests
|
|
|
|
command: make test
|
|
|
|
- run:
|
|
|
|
name: Make release build
|
2018-11-13 18:28:50 +00:00
|
|
|
command: |
|
|
|
|
make release
|
|
|
|
mkdir -p artifacts
|
2018-11-13 18:51:04 +00:00
|
|
|
VERSION=$(cargo pkgid | cut -d# -f2 | cut -d: -f2)
|
2018-12-04 02:57:26 +00:00
|
|
|
# GIT_VERSION=$(git describe --exact-match --tags)
|
2018-11-13 18:51:04 +00:00
|
|
|
echo "${VERSION}" >> artifacts/version
|
2018-12-04 02:57:26 +00:00
|
|
|
echo "${CIRCLE_TAG}" >> artifacts/git_version
|
2018-11-13 18:28:50 +00:00
|
|
|
cp ./target/release/wasmer ./artifacts/$(./binary-name.sh)
|
|
|
|
- persist_to_workspace:
|
|
|
|
root: .
|
|
|
|
paths:
|
|
|
|
- artifacts
|
2018-11-05 17:03:09 +00:00
|
|
|
- save_cache:
|
|
|
|
paths:
|
|
|
|
- /usr/local/cargo/registry
|
|
|
|
- target/debug/.fingerprint
|
|
|
|
- target/debug/build
|
|
|
|
- target/debug/deps
|
2018-11-13 19:36:04 +00:00
|
|
|
- target/release/.fingerprint
|
2018-11-13 18:28:50 +00:00
|
|
|
- target/release/build
|
|
|
|
- target/release/deps
|
2019-01-23 05:40:42 +00:00
|
|
|
key: v6-cargo-cache-linux-{{ arch }}-{{ checksum "Cargo.lock" }}
|
2018-11-13 18:28:50 +00:00
|
|
|
|
2018-11-17 18:43:05 +00:00
|
|
|
test-and-build-macos:
|
2018-11-13 19:36:04 +00:00
|
|
|
macos:
|
|
|
|
xcode: "9.0"
|
|
|
|
steps:
|
|
|
|
- checkout
|
|
|
|
- restore_cache:
|
|
|
|
keys:
|
2019-01-23 05:40:42 +00:00
|
|
|
- v6-cargo-cache-darwin-{{ arch }}-{{ checksum "Cargo.lock" }}
|
2019-01-09 23:23:22 +00:00
|
|
|
- run:
|
2019-01-18 19:33:25 +00:00
|
|
|
name: Install crate dependencies
|
2019-01-09 23:23:22 +00:00
|
|
|
command: |
|
2019-01-23 05:32:06 +00:00
|
|
|
# Installing cmake outside of brew to improve speed
|
|
|
|
curl -O https://cmake.org/files/v3.4/cmake-3.4.1-Darwin-x86_64.tar.gz
|
|
|
|
tar xf cmake-3.4.1-Darwin-x86_64.tar.gz
|
|
|
|
export PATH="`pwd`/cmake-3.4.1-Darwin-x86_64/CMake.app/Contents/bin:$PATH"
|
2019-03-05 21:32:02 +00:00
|
|
|
# Installing LLVM outside of brew
|
|
|
|
curl -O https://releases.llvm.org/7.0.0/clang+llvm-7.0.0-x86_64-apple-darwin.tar.xz
|
|
|
|
tar xf clang+llvm-7.0.0-x86_64-apple-darwin.tar.xz
|
|
|
|
export LLVM_SYS_70_PREFIX="`pwd`/clang+llvm-7.0.0-x86_64-apple-darwin/"
|
2018-11-13 19:36:04 +00:00
|
|
|
- run:
|
2018-11-15 21:30:00 +00:00
|
|
|
name: Install Rust
|
2018-11-13 19:53:27 +00:00
|
|
|
command: |
|
2018-11-15 21:30:00 +00:00
|
|
|
curl https://sh.rustup.rs -sSf | sh -s -- -y
|
2018-11-13 19:53:27 +00:00
|
|
|
export PATH="$HOME/.cargo/bin:$PATH"
|
|
|
|
cargo --version
|
2018-11-13 19:36:04 +00:00
|
|
|
- run:
|
2018-11-13 19:53:27 +00:00
|
|
|
name: Execute tests
|
2018-11-13 20:12:02 +00:00
|
|
|
command: |
|
2019-01-23 05:32:06 +00:00
|
|
|
export PATH="`pwd`/cmake-3.4.1-Darwin-x86_64/CMake.app/Contents/bin:$PATH"
|
2018-11-13 19:53:27 +00:00
|
|
|
export PATH="$HOME/.cargo/bin:$PATH"
|
2018-12-28 12:59:55 +00:00
|
|
|
# We increase the ulimit for fixing cargo unclosed files in mac
|
|
|
|
ulimit -n 8000
|
|
|
|
sudo sysctl -w kern.maxfiles=655360 kern.maxfilesperproc=327680
|
2018-11-13 19:53:27 +00:00
|
|
|
make test
|
|
|
|
- run:
|
2018-11-23 18:35:41 +00:00
|
|
|
name: Make release build
|
2018-11-13 19:36:04 +00:00
|
|
|
command: |
|
2019-01-23 05:32:06 +00:00
|
|
|
export PATH="`pwd`/cmake-3.4.1-Darwin-x86_64/CMake.app/Contents/bin:$PATH"
|
2018-11-13 19:53:27 +00:00
|
|
|
export PATH="$HOME/.cargo/bin:$PATH"
|
2018-11-13 19:36:04 +00:00
|
|
|
make release
|
|
|
|
mkdir -p artifacts
|
2018-11-13 20:12:02 +00:00
|
|
|
# VERSION=$(cargo pkgid | cut -d# -f2 | cut -d: -f2)
|
|
|
|
# echo "${VERSION}" >> artifacts/version
|
2018-11-13 19:36:04 +00:00
|
|
|
cp ./target/release/wasmer ./artifacts/$(./binary-name.sh)
|
|
|
|
- persist_to_workspace:
|
|
|
|
root: .
|
|
|
|
paths:
|
|
|
|
- artifacts
|
|
|
|
- save_cache:
|
|
|
|
paths:
|
2019-01-23 05:40:42 +00:00
|
|
|
- ~/.cargo/registry/
|
2018-11-13 19:36:04 +00:00
|
|
|
- target/debug/.fingerprint
|
|
|
|
- target/debug/build
|
|
|
|
- target/debug/deps
|
|
|
|
- target/release/.fingerprint
|
|
|
|
- target/release/build
|
|
|
|
- target/release/deps
|
2019-01-23 05:40:42 +00:00
|
|
|
key: v6-cargo-cache-darwin-{{ arch }}-{{ checksum "Cargo.lock" }}
|
2018-11-13 18:28:50 +00:00
|
|
|
|
2018-12-24 19:38:54 +00:00
|
|
|
test-rust-nightly:
|
|
|
|
docker:
|
|
|
|
- image: circleci/rust:latest
|
|
|
|
steps:
|
|
|
|
- checkout
|
|
|
|
- restore_cache:
|
|
|
|
keys:
|
2019-01-23 05:40:42 +00:00
|
|
|
- v6-test-cargo-cache-linux-{{ arch }}-{{ checksum "Cargo.lock" }}-nightly
|
2019-01-18 20:20:13 +00:00
|
|
|
- run:
|
|
|
|
name: Install dependencies
|
|
|
|
command: |
|
|
|
|
sudo apt-get install -y cmake
|
2019-03-05 21:32:02 +00:00
|
|
|
curl -O https://releases.llvm.org/7.0.0/clang+llvm-7.0.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz
|
|
|
|
tar xf clang+llvm-7.0.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz
|
2019-03-05 21:45:19 +00:00
|
|
|
export PATH=$PATH:`pwd`/clang+llvm-7.0.0-x86_64-linux-gnu-ubuntu-16.04/bin/
|
2018-12-24 19:38:54 +00:00
|
|
|
- run: rustup default nightly
|
|
|
|
- run: make test
|
|
|
|
- save_cache:
|
|
|
|
paths:
|
|
|
|
- /usr/local/cargo/registry
|
|
|
|
- target/debug/.fingerprint
|
|
|
|
- target/debug/build
|
|
|
|
- target/debug/deps
|
2019-01-23 05:40:42 +00:00
|
|
|
key: v6-test-cargo-cache-linux-{{ arch }}-{{ checksum "Cargo.lock" }}-nightly
|
2018-12-24 19:38:54 +00:00
|
|
|
|
2018-11-13 18:28:50 +00:00
|
|
|
publish-github-release:
|
|
|
|
docker:
|
|
|
|
- image: cibuilds/github
|
|
|
|
steps:
|
|
|
|
- attach_workspace:
|
|
|
|
at: .
|
|
|
|
- run:
|
|
|
|
name: "Publish Release on GitHub"
|
|
|
|
command: |
|
|
|
|
# go get github.com/tcnksm/ghr
|
|
|
|
# VERSION=$(git log -1 --pretty=%B)
|
2018-11-23 18:35:41 +00:00
|
|
|
# VERSION=$(./artifacts/ --version)
|
2018-11-13 18:51:04 +00:00
|
|
|
VERSION=$(cat ./artifacts/version)
|
2018-12-04 02:19:03 +00:00
|
|
|
# VERSION_TAG=${CIRCLE_TAG}
|
2018-12-04 02:53:48 +00:00
|
|
|
VERSION_TAG=$(cat ./artifacts/git_version)
|
2018-12-05 23:15:12 +00:00
|
|
|
rm ./artifacts/version
|
|
|
|
rm ./artifacts/git_version
|
2018-12-04 02:53:48 +00:00
|
|
|
# VERSION_TAG=$(git describe --exact-match --tags)
|
2018-12-04 03:04:25 +00:00
|
|
|
#if [ "$VERSION" == "$VERSION_TAG" ]; then
|
|
|
|
# echo "Versions match, publishing to Github"
|
2018-12-22 19:33:22 +00:00
|
|
|
ghr -t ${GITHUB_TOKEN} -u ${CIRCLE_PROJECT_USERNAME} -r ${CIRCLE_PROJECT_REPONAME} -c ${CIRCLE_SHA1} -soft ${VERSION} ./artifacts/
|
2018-12-04 03:04:25 +00:00
|
|
|
#else
|
|
|
|
# echo "Versions don't match. Wasmer output version (wasmer --version) is ${VERSION} while Git tag is ${VERSION_TAG}"
|
|
|
|
# exit 1
|
|
|
|
#fi
|
2018-11-13 18:28:50 +00:00
|
|
|
|
|
|
|
workflows:
|
|
|
|
version: 2
|
|
|
|
main:
|
|
|
|
jobs:
|
2019-01-18 19:27:16 +00:00
|
|
|
- lint
|
2018-11-17 18:43:05 +00:00
|
|
|
- test:
|
|
|
|
filters:
|
|
|
|
branches:
|
|
|
|
ignore: master
|
2019-01-01 20:12:48 +00:00
|
|
|
- test-macos:
|
|
|
|
filters:
|
|
|
|
branches:
|
|
|
|
ignore: master
|
2018-11-17 18:43:05 +00:00
|
|
|
- test-and-build:
|
|
|
|
filters:
|
|
|
|
branches:
|
|
|
|
only: master
|
|
|
|
- test-and-build-macos:
|
|
|
|
filters:
|
|
|
|
branches:
|
|
|
|
only: master
|
2018-12-24 19:38:54 +00:00
|
|
|
- test-rust-nightly:
|
|
|
|
filters:
|
|
|
|
branches:
|
|
|
|
only: master
|
2018-11-13 18:28:50 +00:00
|
|
|
- publish-github-release:
|
|
|
|
requires:
|
2019-01-18 19:27:16 +00:00
|
|
|
- lint
|
2018-11-17 18:43:05 +00:00
|
|
|
- test-and-build
|
|
|
|
- test-and-build-macos
|
2018-11-23 18:35:41 +00:00
|
|
|
filters:
|
2019-01-18 19:43:53 +00:00
|
|
|
branches:
|
|
|
|
only: master
|