From 462b0b51491367d1fe5cf1b2d5a46c8f521c19e4 Mon Sep 17 00:00:00 2001 From: Syrus Date: Sat, 10 Aug 2019 11:11:54 -0700 Subject: [PATCH 01/54] Initial version of Azure pipelines --- .azure-pipelines.yml | 79 +++++++++++++++++++++++++++++++++++++++++ .azure/install-rust.yml | 40 +++++++++++++++++++++ .circleci/config.yml | 3 -- Makefile | 24 +++++++------ 4 files changed, 132 insertions(+), 14 deletions(-) create mode 100644 .azure-pipelines.yml create mode 100644 .azure/install-rust.yml diff --git a/.azure-pipelines.yml b/.azure-pipelines.yml new file mode 100644 index 000000000..f377f977c --- /dev/null +++ b/.azure-pipelines.yml @@ -0,0 +1,79 @@ +name: $(Build.SourceBranch)-$(date:yyyyMMdd)$(rev:.r) + +# The Different jobs (lint, test, build to run) +jobs: +- job: lint + pool: + vmImage: 'ubuntu-16.04' + steps: + - checkout: self + submodules: true + - template: .azure/install-rust.yml + - displayName: Lint dependencies + script: | + rustup component add rustfmt + rustup component add clippy || cargo install --git https://github.com/rust-lang/rust-clippy/ --force clippy + - displayName: Lint + script: cargo fmt --all -- --check + + variables: + rust_toolchain: stable + +- job: Test + strategy: + matrix: + linux: + imageName: 'ubuntu-16.04' + mac: + imageName: 'macos-10.14' + windows: + imageName: 'vs2017-win2016' + + variables: + rust_toolchain: nightly-2019-06-10 + + pool: + vmImage: $(imageName) + + steps: + - checkout: self + submodules: true + - template: .azure/install-rust.yml + - displayName: Check with Flags + bash: make check + - displayName: Tests + bash: make test + - displayName: Integration Tests + bash: make integration-tests + +# - job: Build +# strategy: +# matrix: +# linux: +# imageName: 'ubuntu-16.04' +# mac: +# imageName: 'macos-10.14' +# MACOSX_DEPLOYMENT_TARGET: 10.10 +# windows: +# imageName: 'vs2017-win2016' +# RUSTFLAGS: -Ctarget-feature=+crt-static + +# variables: +# rust_toolchain: nightly-2019-06-10 + +# pool: +# vmImage: $(imageName) + +# steps: +# - checkout: self +# submodules: true +# - template: .azure/install-rust.yml +# - displayName: Tests +# bash: make test + + +trigger: + branches: + include: + - '*' + diff --git a/.azure/install-rust.yml b/.azure/install-rust.yml new file mode 100644 index 000000000..5c5915d0a --- /dev/null +++ b/.azure/install-rust.yml @@ -0,0 +1,40 @@ +# This template installs Rust (if doesn't exist in the systems) +# Also installs the desired Rust toolchain + +# Template inspired by Tokio and wasm-bindgen templates +# Tokio template: https://github.com/tokio-rs/tokio/blob/master/ci/azure-install-rust.yml +# Wasm-bindgen template: https://github.com/rustwasm/wasm-bindgen/blob/master/ci/azure-install-rust.yml + +steps: + # Install Rust in Linux, Macos + - displayName: "Install Rust (Linux, macOS)" + script: | + set -ex + if [ -x "`command -v rustup`" ]; then + echo `command -v rustup` `rustup -V` installed + else + curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain $RUST_TOOLCHAIN + echo "##vso[task.prependpath]$HOME/.cargo/bin" + fi + condition: not(eq(variables['Agent.OS'], 'Windows_NT')) + + - displayName: "Install Rust (Windows)" + script: | + set -ex + if [ -x "`command -v rustup`" ]; then + echo `command -v rustup` `rustup -V` installed + else + curl -sSf -o rustup-init.exe https://win.rustup.rs + ./rustup-init.exe -y --default-toolchain $RUST_TOOLCHAIN + echo "##vso[task.prependpath]$USERPROFILE/.cargo/bin" + fi + condition: eq(variables['Agent.OS'], 'Windows_NT') + + - displayName: Install Rust + bash: | + set -ex + rustup update $RUST_TOOLCHAIN + rustup default $RUST_TOOLCHAIN + + rustc -Vv + cargo -V diff --git a/.circleci/config.yml b/.circleci/config.yml index 4a3b44588..67bcbbbc2 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -112,9 +112,6 @@ jobs: name: Check command: | make check - make compile-bench-singlepass - make compile-bench-llvm - # TODO: add compile-bench-clif when it works - run: name: Integration Tests command: make integration-tests diff --git a/Makefile b/Makefile index a12d14fe5..4fba50646 100644 --- a/Makefile +++ b/Makefile @@ -127,9 +127,20 @@ debug: install: cargo install --path . -check: - cargo check --release --features backend-singlepass,backend-llvm,loader-kernel +# Checks +check-bench-singlepass: + cargo bench --all --no-run --no-default-features --features "backend-singlepass" +check-bench-clif: + cargo bench --all --no-run --no-default-features --features "backend-cranelift" +check-bench-llvm: + cargo bench --all --no-run --no-default-features --features "backend-llvm" +check-bench: check-bench-singlepass check-bench-llvm + +check: check-bench + cargo check --release --features backend-singlepass,backend-llvm,loader-kernel,debug + +# Release release: cargo build --release --features backend-singlepass,backend-llvm,loader-kernel @@ -152,15 +163,6 @@ bench-clif: bench-llvm: cargo bench --all --no-default-features --features "backend-llvm" -# compile but don't run the benchmarks -compile-bench-singlepass: - cargo bench --all --no-run --no-default-features --features "backend-singlepass" -compile-bench-clif: - cargo bench --all --no-run --no-default-features --features "backend-cranelift" -compile-bench-llvm: - cargo bench --all --no-run --no-default-features --features "backend-llvm" - - # Build utils build-install: mkdir -p ./install/bin From 98711dd3d8c4713a5656eea761828bcc5f4ca177 Mon Sep 17 00:00:00 2001 From: Syrus Date: Sat, 10 Aug 2019 14:53:47 -0700 Subject: [PATCH 02/54] Renamed azure pipelines config file --- .azure-pipelines.yml => azure-pipelines.yml | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .azure-pipelines.yml => azure-pipelines.yml (100%) diff --git a/.azure-pipelines.yml b/azure-pipelines.yml similarity index 100% rename from .azure-pipelines.yml rename to azure-pipelines.yml From 0ae66297b729408db855a433630d2e7c09eea828 Mon Sep 17 00:00:00 2001 From: Syrus Date: Sat, 10 Aug 2019 14:56:58 -0700 Subject: [PATCH 03/54] Fixed config --- .azure/install-rust.yml | 12 ++++++------ azure-pipelines.yml | 24 ++++++++++++------------ 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/.azure/install-rust.yml b/.azure/install-rust.yml index 5c5915d0a..8bf2244bb 100644 --- a/.azure/install-rust.yml +++ b/.azure/install-rust.yml @@ -7,8 +7,7 @@ steps: # Install Rust in Linux, Macos - - displayName: "Install Rust (Linux, macOS)" - script: | + - script: | set -ex if [ -x "`command -v rustup`" ]; then echo `command -v rustup` `rustup -V` installed @@ -16,10 +15,10 @@ steps: curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain $RUST_TOOLCHAIN echo "##vso[task.prependpath]$HOME/.cargo/bin" fi + displayName: "Install Rust (Linux, macOS)" condition: not(eq(variables['Agent.OS'], 'Windows_NT')) - - displayName: "Install Rust (Windows)" - script: | + - script: | set -ex if [ -x "`command -v rustup`" ]; then echo `command -v rustup` `rustup -V` installed @@ -28,13 +27,14 @@ steps: ./rustup-init.exe -y --default-toolchain $RUST_TOOLCHAIN echo "##vso[task.prependpath]$USERPROFILE/.cargo/bin" fi + displayName: "Install Rust (Windows)" condition: eq(variables['Agent.OS'], 'Windows_NT') - - displayName: Install Rust - bash: | + - bash: | set -ex rustup update $RUST_TOOLCHAIN rustup default $RUST_TOOLCHAIN rustc -Vv cargo -V + displayName: Install Rust diff --git a/azure-pipelines.yml b/azure-pipelines.yml index f377f977c..3a2a94244 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -9,12 +9,12 @@ jobs: - checkout: self submodules: true - template: .azure/install-rust.yml - - displayName: Lint dependencies - script: | + - script: | rustup component add rustfmt rustup component add clippy || cargo install --git https://github.com/rust-lang/rust-clippy/ --force clippy - - displayName: Lint - script: cargo fmt --all -- --check + displayName: Lint dependencies + - script: cargo fmt --all -- --check + displayName: Lint variables: rust_toolchain: stable @@ -39,12 +39,12 @@ jobs: - checkout: self submodules: true - template: .azure/install-rust.yml - - displayName: Check with Flags - bash: make check - - displayName: Tests - bash: make test - - displayName: Integration Tests - bash: make integration-tests + - bash: make check + displayName: Check with Flags + - bash: make test + displayName: Tests + - bash: make integration-tests + displayName: Integration Tests # - job: Build # strategy: @@ -68,8 +68,8 @@ jobs: # - checkout: self # submodules: true # - template: .azure/install-rust.yml -# - displayName: Tests -# bash: make test +# - bash: make test +# displayName: Tests trigger: From a82907eb2265a524905819bd363ab23bbbe4ba80 Mon Sep 17 00:00:00 2001 From: Syrus Date: Sat, 10 Aug 2019 15:32:09 -0700 Subject: [PATCH 04/54] Improved Azure install requirements --- .azure/install-cmake.yml | 43 ++++++++++++++++++++++++++++++++++++ .azure/install-llvm.yml | 47 ++++++++++++++++++++++++++++++++++++++++ .azure/install-rust.yml | 5 ++--- azure-pipelines.yml | 2 ++ 4 files changed, 94 insertions(+), 3 deletions(-) create mode 100644 .azure/install-cmake.yml create mode 100644 .azure/install-llvm.yml diff --git a/.azure/install-cmake.yml b/.azure/install-cmake.yml new file mode 100644 index 000000000..707905b55 --- /dev/null +++ b/.azure/install-cmake.yml @@ -0,0 +1,43 @@ +# This template installs CMake (if doesn't exist in the systems) + +steps: + - bash: | + set -ex + if [ -x "`command -v cmake`" ]; then + echo `command -v cmake` `cmake --version` installed + else + 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 CMAKE_BIN_PATH="`pwd`/cmake-3.4.1-Darwin-x86_64/CMake.app/Contents/bin" + echo "##vso[task.prependpath]$CMAKE_BIN_PATH" + fi + displayName: "Install CMake (macOS)" + condition: eq(variables['Agent.OS'], 'Darwin') + + - bash: | + set -ex + if [ -x "`command -v cmake`" ]; then + echo `command -v cmake` `cmake --version` installed + else + curl -O https://cmake.org/files/v3.4/cmake-3.4.1-Linux-x86_64.tar.gz + tar xf cmake-3.4.1-Linux-x86_64.tar.gz + export CMAKE_BIN_PATH="`pwd`/cmake-3.4.1-Linux-x86_64/CMake.app/Contents/bin" + echo "##vso[task.prependpath]$CMAKE_BIN_PATH" + fi + displayName: "Install CMake (Linux)" + condition: eq(variables['Agent.OS'], 'Linux') + + - bash: | + set -ex + if [ -x "`command -v cmake`" ]; then + echo `command -v cmake` `cmake --version` installed + else + chocolatey install cmake --installargs 'ADD_CMAKE_TO_PATH=System' + fi + displayName: "Install CMake (Windows)" + condition: eq(variables['Agent.OS'], 'Windows_NT') + + - bash: | + set -ex + cmake --version + displayName: CMake version diff --git a/.azure/install-llvm.yml b/.azure/install-llvm.yml new file mode 100644 index 000000000..7d822e08b --- /dev/null +++ b/.azure/install-llvm.yml @@ -0,0 +1,47 @@ +# This template installs LLVM (if doesn't exist in the systems) + +steps: + - bash: | + set -ex + if [ -x "`command -v llvm-config`" ]; then + echo `command -v llvm-config` `llvm-config --version` installed + else + curl -O https://releases.llvm.org/8.0.0/clang+llvm-8.0.0-x86_64-apple-darwin.tar.xz + tar xf clang+llvm-8.0.0-x86_64-apple-darwin.tar.xz + export LLVM_SYS_80_PREFIX="`pwd`/clang+llvm-8.0.0-x86_64-apple-darwin/" + echo "##vso[task.prependpath]$LLVM_SYS_80_PREFIX/bin" + fi + displayName: "Install LLVM (macOS)" + condition: eq(variables['Agent.OS'], 'Darwin') + + - bash: | + set -ex + if [ -x "`command -v llvm-config`" ]; then + echo `command -v llvm-config` `llvm-config --version` installed + else + curl -O https://releases.llvm.org/8.0.0/clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz + tar xf clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz + export LLVM_SYS_80_PREFIX="`pwd`/clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04/" + echo "##vso[task.prependpath]$LLVM_SYS_80_PREFIX/bin" + fi + displayName: "Install LLVM (Linux)" + condition: eq(variables['Agent.OS'], 'Linux') + + - bash: | + set -ex + if [ -x "`command -v llvm-config`" ]; then + echo `command -v cmake` `llvm-config --version` installed + else + curl -O https://github.com/wasmerio/windows-llvm-build/releases/download/v8.0.0/llvm-8.0.0-install.zip + unzip llvm-8.0.0-install.zip + export LLVM_SYS_80_PREFIX="`pwd`/llvm-8.0.0-install/" + echo "##vso[task.prependpath]$LLVM_SYS_80_PREFIX/bin" + # chocolatey install cmake --installargs 'ADD_CMAKE_TO_PATH=System' + fi + displayName: "Install LLVM (Windows)" + condition: eq(variables['Agent.OS'], 'Windows_NT') + + - bash: | + set -ex + llvm-config --version + displayName: LLVM version diff --git a/.azure/install-rust.yml b/.azure/install-rust.yml index 8bf2244bb..ac3fb3055 100644 --- a/.azure/install-rust.yml +++ b/.azure/install-rust.yml @@ -6,8 +6,7 @@ # Wasm-bindgen template: https://github.com/rustwasm/wasm-bindgen/blob/master/ci/azure-install-rust.yml steps: - # Install Rust in Linux, Macos - - script: | + - bash: | set -ex if [ -x "`command -v rustup`" ]; then echo `command -v rustup` `rustup -V` installed @@ -18,7 +17,7 @@ steps: displayName: "Install Rust (Linux, macOS)" condition: not(eq(variables['Agent.OS'], 'Windows_NT')) - - script: | + - bash: | set -ex if [ -x "`command -v rustup`" ]; then echo `command -v rustup` `rustup -V` installed diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 3a2a94244..3642f0d86 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -39,6 +39,8 @@ jobs: - checkout: self submodules: true - template: .azure/install-rust.yml + - template: .azure/install-cmake.yml + - template: .azure/install-llvm.yml - bash: make check displayName: Check with Flags - bash: make test From 141fad86b3a2a6543080744f9f82a13b7e6609d7 Mon Sep 17 00:00:00 2001 From: Syrus Date: Sat, 10 Aug 2019 15:48:56 -0700 Subject: [PATCH 05/54] Added Cache, improved LLVM install --- .azure/install-llvm.yml | 17 ++++++++++------- azure-pipelines.yml | 8 ++++++++ 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/.azure/install-llvm.yml b/.azure/install-llvm.yml index 7d822e08b..cc8b641d2 100644 --- a/.azure/install-llvm.yml +++ b/.azure/install-llvm.yml @@ -8,8 +8,9 @@ steps: else curl -O https://releases.llvm.org/8.0.0/clang+llvm-8.0.0-x86_64-apple-darwin.tar.xz tar xf clang+llvm-8.0.0-x86_64-apple-darwin.tar.xz - export LLVM_SYS_80_PREFIX="`pwd`/clang+llvm-8.0.0-x86_64-apple-darwin/" - echo "##vso[task.prependpath]$LLVM_SYS_80_PREFIX/bin" + export LLVM_PATH="`pwd`/clang+llvm-8.0.0-x86_64-apple-darwin/" + echo "##vso[task.prependpath]$LLVM_PATH/bin" + echo "##vso[task.setvariable variable=LLVM_SYS_80_PREFIX]$LLVM_PATH" fi displayName: "Install LLVM (macOS)" condition: eq(variables['Agent.OS'], 'Darwin') @@ -21,8 +22,9 @@ steps: else curl -O https://releases.llvm.org/8.0.0/clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz tar xf clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz - export LLVM_SYS_80_PREFIX="`pwd`/clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04/" - echo "##vso[task.prependpath]$LLVM_SYS_80_PREFIX/bin" + export LLVM_PATH="`pwd`/clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04/" + echo "##vso[task.prependpath]$LLVM_PATH/bin" + echo "##vso[task.setvariable variable=LLVM_SYS_80_PREFIX]$LLVM_PATH" fi displayName: "Install LLVM (Linux)" condition: eq(variables['Agent.OS'], 'Linux') @@ -33,9 +35,10 @@ steps: echo `command -v cmake` `llvm-config --version` installed else curl -O https://github.com/wasmerio/windows-llvm-build/releases/download/v8.0.0/llvm-8.0.0-install.zip - unzip llvm-8.0.0-install.zip - export LLVM_SYS_80_PREFIX="`pwd`/llvm-8.0.0-install/" - echo "##vso[task.prependpath]$LLVM_SYS_80_PREFIX/bin" + 7z x llvm-8.0.0-install.zip + export LLVM_PATH="`pwd`/llvm-8.0.0-install/" + echo "##vso[task.prependpath]$LLVM_PATH/bin" + echo "##vso[task.setvariable variable=LLVM_SYS_80_PREFIX]$LLVM_PATH" # chocolatey install cmake --installargs 'ADD_CMAKE_TO_PATH=System' fi displayName: "Install LLVM (Windows)" diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 3642f0d86..36e6499c9 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -41,6 +41,14 @@ jobs: - template: .azure/install-rust.yml - template: .azure/install-cmake.yml - template: .azure/install-llvm.yml + - task: CacheBeta@0 + inputs: + key: | + cargo + $(Agent.OS) + $(Build.SourcesDirectory)/Cargo.lock + path: $(Build.SourcesDirectory)/target + displayName: Cache Cargo Target - bash: make check displayName: Check with Flags - bash: make test From bdf8a406871d8a0caa8aace794c4de4a416e203f Mon Sep 17 00:00:00 2001 From: Syrus Date: Sat, 10 Aug 2019 16:17:58 -0700 Subject: [PATCH 06/54] Fixed LLVM install in Windows --- .azure/install-llvm.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.azure/install-llvm.yml b/.azure/install-llvm.yml index cc8b641d2..29e943005 100644 --- a/.azure/install-llvm.yml +++ b/.azure/install-llvm.yml @@ -34,7 +34,7 @@ steps: if [ -x "`command -v llvm-config`" ]; then echo `command -v cmake` `llvm-config --version` installed else - curl -O https://github.com/wasmerio/windows-llvm-build/releases/download/v8.0.0/llvm-8.0.0-install.zip + curl -OL https://github.com/wasmerio/windows-llvm-build/releases/download/v8.0.0/llvm-8.0.0-install.zip 7z x llvm-8.0.0-install.zip export LLVM_PATH="`pwd`/llvm-8.0.0-install/" echo "##vso[task.prependpath]$LLVM_PATH/bin" From 739f52a81d3e4e24010b52b817bbeb1cf94a075d Mon Sep 17 00:00:00 2001 From: Syrus Date: Sat, 10 Aug 2019 16:18:06 -0700 Subject: [PATCH 07/54] Comment integration tests for now --- azure-pipelines.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 36e6499c9..3ae02e6bf 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -53,8 +53,8 @@ jobs: displayName: Check with Flags - bash: make test displayName: Tests - - bash: make integration-tests - displayName: Integration Tests + # - bash: make integration-tests + # displayName: Integration Tests # - job: Build # strategy: From 86684bd1a167f295f051e23ad4172b2ebf5ca811 Mon Sep 17 00:00:00 2001 From: Syrus Date: Sat, 10 Aug 2019 16:31:50 -0700 Subject: [PATCH 08/54] Fixed windows tests --- azure-pipelines.yml | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 3ae02e6bf..23f433370 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -24,13 +24,13 @@ jobs: matrix: linux: imageName: 'ubuntu-16.04' + rust_toolchain: nightly-2019-06-10 mac: imageName: 'macos-10.14' + rust_toolchain: nightly-2019-06-10 windows: imageName: 'vs2017-win2016' - - variables: - rust_toolchain: nightly-2019-06-10 + rust_toolchain: stable pool: vmImage: $(imageName) @@ -52,7 +52,12 @@ jobs: - bash: make check displayName: Check with Flags - bash: make test - displayName: Tests + displayName: Tests (*nix) + condition: and(succeeded(), not(eq(variables['Agent.OS'], 'Windows_NT'))) + - bash: make spectests-cranelift + displayName: Tests (Windows) + condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT')) + # - bash: make integration-tests # displayName: Integration Tests From ee1ca08bb89edae1c0d14403eab3740367e9960d Mon Sep 17 00:00:00 2001 From: Syrus Date: Sat, 10 Aug 2019 16:41:58 -0700 Subject: [PATCH 09/54] Moved check down --- azure-pipelines.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 23f433370..6d3dfaa0f 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -49,14 +49,15 @@ jobs: $(Build.SourcesDirectory)/Cargo.lock path: $(Build.SourcesDirectory)/target displayName: Cache Cargo Target - - bash: make check - displayName: Check with Flags - bash: make test displayName: Tests (*nix) condition: and(succeeded(), not(eq(variables['Agent.OS'], 'Windows_NT'))) - bash: make spectests-cranelift displayName: Tests (Windows) condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT')) + - bash: make check + displayName: Check with Flags + condition: and(succeeded(), not(eq(variables['Agent.OS'], 'Windows_NT'))) # - bash: make integration-tests # displayName: Integration Tests From 28ebba41b0c4dd746e030c5e7aa9e390de2281fa Mon Sep 17 00:00:00 2001 From: Syrus Date: Sat, 10 Aug 2019 17:39:39 -0700 Subject: [PATCH 10/54] Added sscache to improve compilation times --- .azure/install-rust.yml | 3 +++ .azure/install-sccache.yml | 41 ++++++++++++++++++++++++++++++++++++++ azure-pipelines.yml | 1 + 3 files changed, 45 insertions(+) create mode 100644 .azure/install-sccache.yml diff --git a/.azure/install-rust.yml b/.azure/install-rust.yml index ac3fb3055..7de2142b5 100644 --- a/.azure/install-rust.yml +++ b/.azure/install-rust.yml @@ -37,3 +37,6 @@ steps: rustc -Vv cargo -V displayName: Install Rust + + - bash: echo "##vso[task.setvariable variable=RUSTC_VERSION;]`rustc --version`" + displayName: Set rustc version in env var diff --git a/.azure/install-sccache.yml b/.azure/install-sccache.yml new file mode 100644 index 000000000..3111aac9d --- /dev/null +++ b/.azure/install-sccache.yml @@ -0,0 +1,41 @@ +# This template installs sccache (Shared Compilation Cache) +# More info: https://github.com/mozilla/sccache + +steps: + + - bash: | + set -e + curl -Lfo sccache.tar.gz https://github.com/mozilla/sccache/releases/download/0.2.10/sccache-0.2.10-x86_64-apple-darwin.tar.gz + tar -xzf sccache.tar.gz + cp sccache-*/sccache /usr/local/bin/ + displayName: Install sccache (macOS) + condition: and(succeeded(), eq(variables['Agent.OS'], 'Darwin')) + + - bash: | + set -e + curl -Lfo sccache.tar.gz https://github.com/mozilla/sccache/releases/download/0.2.10/sccache-0.2.10-x86_64-unknown-linux-musl.tar.gz + tar -xzf sccache.tar.gz + sudo cp sccache-*/sccache /usr/local/bin/ + displayName: Install sccache (Linux) + condition: and(succeeded(), eq(variables['Agent.OS'], 'Linux')) + + - bash: | + curl -Lfo sccache.tar.gz https://github.com/mozilla/sccache/releases/download/0.2.10/sccache-0.2.10-x86_64-pc-windows-msvc.tar.gz + tar -xzf sccache.tar.gz + move sccache-* sccache + echo "##vso[task.prependpath]%CD%\sccache" + displayName: Install sccache (Windows) + condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT')) + + - bash: | + set -ex + sccache -V + displayName: sccache version + + - bash: | + set -ex + echo "##vso[task.setvariable variable=RUSTC_WRAPPER;]sccache" + SCCACHE_ERROR_LOG=`pwd`/sccache.log RUST_LOG=debug sscache --start-server + sscache -s + cat sccache.log + displayName: Start sccache diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 6d3dfaa0f..80b874e5c 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -41,6 +41,7 @@ jobs: - template: .azure/install-rust.yml - template: .azure/install-cmake.yml - template: .azure/install-llvm.yml + - template: .azure/install-sscache.yml - task: CacheBeta@0 inputs: key: | From 1045d46d3d8cb6296f4ab2a858834187f3eaddc6 Mon Sep 17 00:00:00 2001 From: Syrus Date: Sat, 10 Aug 2019 17:41:50 -0700 Subject: [PATCH 11/54] Fixed reference error --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 80b874e5c..7ef749d2d 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -41,7 +41,7 @@ jobs: - template: .azure/install-rust.yml - template: .azure/install-cmake.yml - template: .azure/install-llvm.yml - - template: .azure/install-sscache.yml + - template: .azure/install-sccache.yml - task: CacheBeta@0 inputs: key: | From 025bd9e32c980cdd12a27f8118998fa7b7239a7c Mon Sep 17 00:00:00 2001 From: Syrus Date: Sat, 10 Aug 2019 17:47:09 -0700 Subject: [PATCH 12/54] Trying to fix sccache install --- .azure/install-sccache.yml | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/.azure/install-sccache.yml b/.azure/install-sccache.yml index 3111aac9d..26d626fa4 100644 --- a/.azure/install-sccache.yml +++ b/.azure/install-sccache.yml @@ -7,7 +7,9 @@ steps: set -e curl -Lfo sccache.tar.gz https://github.com/mozilla/sccache/releases/download/0.2.10/sccache-0.2.10-x86_64-apple-darwin.tar.gz tar -xzf sccache.tar.gz - cp sccache-*/sccache /usr/local/bin/ + mv sccache-* sccache + export SCCACHE_PATH="`pwd`/sccache/" + echo "##vso[task.prependpath]$SCCACHE_PATH" displayName: Install sccache (macOS) condition: and(succeeded(), eq(variables['Agent.OS'], 'Darwin')) @@ -15,15 +17,18 @@ steps: set -e curl -Lfo sccache.tar.gz https://github.com/mozilla/sccache/releases/download/0.2.10/sccache-0.2.10-x86_64-unknown-linux-musl.tar.gz tar -xzf sccache.tar.gz - sudo cp sccache-*/sccache /usr/local/bin/ + mv sccache-* sccache + export SCCACHE_PATH="`pwd`/sccache/" + echo "##vso[task.prependpath]$SCCACHE_PATH" displayName: Install sccache (Linux) condition: and(succeeded(), eq(variables['Agent.OS'], 'Linux')) - bash: | curl -Lfo sccache.tar.gz https://github.com/mozilla/sccache/releases/download/0.2.10/sccache-0.2.10-x86_64-pc-windows-msvc.tar.gz tar -xzf sccache.tar.gz - move sccache-* sccache - echo "##vso[task.prependpath]%CD%\sccache" + mv sccache-* sccache + export SCCACHE_PATH="`pwd`/sccache/" + echo "##vso[task.prependpath]$SCCACHE_PATH" displayName: Install sccache (Windows) condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT')) From f83e4edf4f7f671a759434133cf124b72cceea25 Mon Sep 17 00:00:00 2001 From: Syrus Date: Sat, 10 Aug 2019 17:49:31 -0700 Subject: [PATCH 13/54] Fixed references to sccache --- .azure/install-sccache.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.azure/install-sccache.yml b/.azure/install-sccache.yml index 26d626fa4..6174e3884 100644 --- a/.azure/install-sccache.yml +++ b/.azure/install-sccache.yml @@ -40,7 +40,7 @@ steps: - bash: | set -ex echo "##vso[task.setvariable variable=RUSTC_WRAPPER;]sccache" - SCCACHE_ERROR_LOG=`pwd`/sccache.log RUST_LOG=debug sscache --start-server - sscache -s + SCCACHE_ERROR_LOG=`pwd`/sccache.log RUST_LOG=debug sccache --start-server + sccache -s cat sccache.log displayName: Start sccache From af12f627ade66c2c329c79bda459ef74c1b29d08 Mon Sep 17 00:00:00 2001 From: Syrus Date: Sat, 10 Aug 2019 17:57:35 -0700 Subject: [PATCH 14/54] Improved sccache usage --- .azure/install-sccache.yml | 1 + azure-pipelines.yml | 3 +++ 2 files changed, 4 insertions(+) diff --git a/.azure/install-sccache.yml b/.azure/install-sccache.yml index 6174e3884..c5aabe367 100644 --- a/.azure/install-sccache.yml +++ b/.azure/install-sccache.yml @@ -38,6 +38,7 @@ steps: displayName: sccache version - bash: | + mkdir -p $SCCACHE_DIR set -ex echo "##vso[task.setvariable variable=RUSTC_WRAPPER;]sccache" SCCACHE_ERROR_LOG=`pwd`/sccache.log RUST_LOG=debug sccache --start-server diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 7ef749d2d..f0e8df61e 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -32,6 +32,9 @@ jobs: imageName: 'vs2017-win2016' rust_toolchain: stable + variables: + SCCACHE_DIR: $(Pipeline.Workspace)/.sccache + pool: vmImage: $(imageName) From 3517bd51ebeab53ebd95a01b5f49ecf3f7395f00 Mon Sep 17 00:00:00 2001 From: Syrus Date: Sat, 10 Aug 2019 18:02:57 -0700 Subject: [PATCH 15/54] Trying to fix sccache --- .azure/install-sccache.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.azure/install-sccache.yml b/.azure/install-sccache.yml index c5aabe367..ce31633db 100644 --- a/.azure/install-sccache.yml +++ b/.azure/install-sccache.yml @@ -40,7 +40,8 @@ steps: - bash: | mkdir -p $SCCACHE_DIR set -ex - echo "##vso[task.setvariable variable=RUSTC_WRAPPER;]sccache" + echo "##vso[task.setvariable variable=RUSTC_WRAPPER]sccache" + env SCCACHE_ERROR_LOG=`pwd`/sccache.log RUST_LOG=debug sccache --start-server sccache -s cat sccache.log From fff86f8043f635f1364065940297accab3f7f568 Mon Sep 17 00:00:00 2001 From: Syrus Date: Sat, 10 Aug 2019 18:15:29 -0700 Subject: [PATCH 16/54] Fix sccache in Windows --- .azure/install-sccache.yml | 21 ++++++++++----------- azure-pipelines.yml | 2 +- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/.azure/install-sccache.yml b/.azure/install-sccache.yml index ce31633db..09d7fbefa 100644 --- a/.azure/install-sccache.yml +++ b/.azure/install-sccache.yml @@ -8,8 +8,8 @@ steps: curl -Lfo sccache.tar.gz https://github.com/mozilla/sccache/releases/download/0.2.10/sccache-0.2.10-x86_64-apple-darwin.tar.gz tar -xzf sccache.tar.gz mv sccache-* sccache - export SCCACHE_PATH="`pwd`/sccache/" - echo "##vso[task.prependpath]$SCCACHE_PATH" + sccache=`pwd`/sccache/sccache + echo "##vso[task.setvariable variable=SCCACHE_BIN]$sccache" displayName: Install sccache (macOS) condition: and(succeeded(), eq(variables['Agent.OS'], 'Darwin')) @@ -18,8 +18,8 @@ steps: curl -Lfo sccache.tar.gz https://github.com/mozilla/sccache/releases/download/0.2.10/sccache-0.2.10-x86_64-unknown-linux-musl.tar.gz tar -xzf sccache.tar.gz mv sccache-* sccache - export SCCACHE_PATH="`pwd`/sccache/" - echo "##vso[task.prependpath]$SCCACHE_PATH" + sccache=`pwd`/sccache/sccache + echo "##vso[task.setvariable variable=SCCACHE_BIN]$sccache" displayName: Install sccache (Linux) condition: and(succeeded(), eq(variables['Agent.OS'], 'Linux')) @@ -27,22 +27,21 @@ steps: curl -Lfo sccache.tar.gz https://github.com/mozilla/sccache/releases/download/0.2.10/sccache-0.2.10-x86_64-pc-windows-msvc.tar.gz tar -xzf sccache.tar.gz mv sccache-* sccache - export SCCACHE_PATH="`pwd`/sccache/" - echo "##vso[task.prependpath]$SCCACHE_PATH" + sccache=`pwd`/sccache/sccache.exe + echo "##vso[task.setvariable variable=SCCACHE_BIN]$sccache" displayName: Install sccache (Windows) condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT')) - bash: | set -ex - sccache -V + $SCCACHE_BIN -V displayName: sccache version - bash: | mkdir -p $SCCACHE_DIR set -ex - echo "##vso[task.setvariable variable=RUSTC_WRAPPER]sccache" - env - SCCACHE_ERROR_LOG=`pwd`/sccache.log RUST_LOG=debug sccache --start-server - sccache -s + echo "##vso[task.setvariable variable=RUSTC_WRAPPER]$SCCACHE_BIN" + SCCACHE_ERROR_LOG=`pwd`/sccache.log RUST_LOG=debug $SCCACHE_BIN --start-server + $SCCACHE_BIN -s cat sccache.log displayName: Start sccache diff --git a/azure-pipelines.yml b/azure-pipelines.yml index f0e8df61e..1b9e65531 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -42,9 +42,9 @@ jobs: - checkout: self submodules: true - template: .azure/install-rust.yml + - template: .azure/install-sccache.yml - template: .azure/install-cmake.yml - template: .azure/install-llvm.yml - - template: .azure/install-sccache.yml - task: CacheBeta@0 inputs: key: | From 8f31678813a26fdb487d5ff60741d4968597eaca Mon Sep 17 00:00:00 2001 From: Syrus Date: Sat, 10 Aug 2019 18:17:01 -0700 Subject: [PATCH 17/54] Improve cache --- azure-pipelines.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 1b9e65531..da252883e 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -48,10 +48,10 @@ jobs: - task: CacheBeta@0 inputs: key: | - cargo + sccache $(Agent.OS) $(Build.SourcesDirectory)/Cargo.lock - path: $(Build.SourcesDirectory)/target + path: $(SCCACHE_DIR) displayName: Cache Cargo Target - bash: make test displayName: Tests (*nix) From ff6b0bb46e9e6b4d0e1b0fd7b2e85bcc21795eb1 Mon Sep 17 00:00:00 2001 From: Syrus Date: Sat, 24 Aug 2019 08:53:08 -0700 Subject: [PATCH 18/54] Added build step --- azure-pipelines.yml | 64 +++++++++++++++++++++++++++++---------------- 1 file changed, 42 insertions(+), 22 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index da252883e..876d3e2d9 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -66,31 +66,51 @@ jobs: # - bash: make integration-tests # displayName: Integration Tests -# - job: Build -# strategy: -# matrix: -# linux: -# imageName: 'ubuntu-16.04' -# mac: -# imageName: 'macos-10.14' -# MACOSX_DEPLOYMENT_TARGET: 10.10 -# windows: -# imageName: 'vs2017-win2016' -# RUSTFLAGS: -Ctarget-feature=+crt-static +- job: Build + strategy: + matrix: + linux: + imageName: 'ubuntu-16.04' + rust_toolchain: nightly-2019-06-10 + mac: + imageName: 'macos-10.14' + rust_toolchain: nightly-2019-06-10 + MACOSX_DEPLOYMENT_TARGET: 10.10 + windows: + imageName: 'vs2017-win2016' + rust_toolchain: stable + RUSTFLAGS: -Ctarget-feature=+crt-static -# variables: -# rust_toolchain: nightly-2019-06-10 + variables: + SCCACHE_DIR: $(Pipeline.Workspace)/.sccache -# pool: -# vmImage: $(imageName) - -# steps: -# - checkout: self -# submodules: true -# - template: .azure/install-rust.yml -# - bash: make test -# displayName: Tests + pool: + vmImage: $(imageName) + steps: + - checkout: self + submodules: true + - template: .azure/install-rust.yml + - template: .azure/install-sccache.yml + - template: .azure/install-cmake.yml + - template: .azure/install-llvm.yml + - task: CacheBeta@0 + inputs: + key: | + sccache + $(Agent.OS) + $(Build.SourcesDirectory)/Cargo.lock + path: $(SCCACHE_DIR) + displayName: Cache Cargo Target + - bash: make release + displayName: Build Release + condition: and(succeeded(), not(eq(variables['Agent.OS'], 'Windows_NT'))) + - bash: release-llvm + displayName: Build (Windows) + condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT')) + - bash: make capi + displayName: Check with Flags + condition: and(succeeded(), not(eq(variables['Agent.OS'], 'Windows_NT'))) trigger: branches: From 9411ba64f86b5c4751ba51104549bb39f6145361 Mon Sep 17 00:00:00 2001 From: Syrus Date: Sat, 24 Aug 2019 09:14:15 -0700 Subject: [PATCH 19/54] Fixed windows make release llvm --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 876d3e2d9..e2970c765 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -105,7 +105,7 @@ jobs: - bash: make release displayName: Build Release condition: and(succeeded(), not(eq(variables['Agent.OS'], 'Windows_NT'))) - - bash: release-llvm + - bash: make release-llvm displayName: Build (Windows) condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT')) - bash: make capi From abcde5face6dd3fc1231160e5bdf27b7a98aeb12 Mon Sep 17 00:00:00 2001 From: Syrus Date: Sat, 24 Aug 2019 10:22:39 -0700 Subject: [PATCH 20/54] Trying to simplify cache --- azure-pipelines.yml | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index e2970c765..a62da5904 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -47,10 +47,7 @@ jobs: - template: .azure/install-llvm.yml - task: CacheBeta@0 inputs: - key: | - sccache - $(Agent.OS) - $(Build.SourcesDirectory)/Cargo.lock + key: sccache | $(Agent.OS) | Cargo.lock path: $(SCCACHE_DIR) displayName: Cache Cargo Target - bash: make test @@ -96,10 +93,7 @@ jobs: - template: .azure/install-llvm.yml - task: CacheBeta@0 inputs: - key: | - sccache - $(Agent.OS) - $(Build.SourcesDirectory)/Cargo.lock + key: sccache | $(Agent.OS) | Cargo.lock path: $(SCCACHE_DIR) displayName: Cache Cargo Target - bash: make release From 989e7129abacd29fceff084871e420cadd28484d Mon Sep 17 00:00:00 2001 From: Syrus Date: Sat, 24 Aug 2019 11:45:44 -0700 Subject: [PATCH 21/54] Use Azure Blog Storage cache --- .azure/install-sccache.yml | 2 +- azure-pipelines.yml | 28 ++++++++++++++-------------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/.azure/install-sccache.yml b/.azure/install-sccache.yml index 09d7fbefa..8102ed230 100644 --- a/.azure/install-sccache.yml +++ b/.azure/install-sccache.yml @@ -38,7 +38,7 @@ steps: displayName: sccache version - bash: | - mkdir -p $SCCACHE_DIR + # mkdir -p $SCCACHE_DIR set -ex echo "##vso[task.setvariable variable=RUSTC_WRAPPER]$SCCACHE_BIN" SCCACHE_ERROR_LOG=`pwd`/sccache.log RUST_LOG=debug $SCCACHE_BIN --start-server diff --git a/azure-pipelines.yml b/azure-pipelines.yml index a62da5904..a2c27e8a0 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -32,8 +32,8 @@ jobs: imageName: 'vs2017-win2016' rust_toolchain: stable - variables: - SCCACHE_DIR: $(Pipeline.Workspace)/.sccache + # variables: + # SCCACHE_DIR: $(Pipeline.Workspace)/.sccache pool: vmImage: $(imageName) @@ -45,11 +45,11 @@ jobs: - template: .azure/install-sccache.yml - template: .azure/install-cmake.yml - template: .azure/install-llvm.yml - - task: CacheBeta@0 - inputs: - key: sccache | $(Agent.OS) | Cargo.lock - path: $(SCCACHE_DIR) - displayName: Cache Cargo Target + # - task: CacheBeta@0 + # inputs: + # key: sccache | $(Agent.OS) | Cargo.lock + # path: $(SCCACHE_DIR) + # displayName: Cache Cargo Target - bash: make test displayName: Tests (*nix) condition: and(succeeded(), not(eq(variables['Agent.OS'], 'Windows_NT'))) @@ -78,8 +78,8 @@ jobs: rust_toolchain: stable RUSTFLAGS: -Ctarget-feature=+crt-static - variables: - SCCACHE_DIR: $(Pipeline.Workspace)/.sccache + # variables: + # SCCACHE_DIR: $(Pipeline.Workspace)/.sccache pool: vmImage: $(imageName) @@ -91,11 +91,11 @@ jobs: - template: .azure/install-sccache.yml - template: .azure/install-cmake.yml - template: .azure/install-llvm.yml - - task: CacheBeta@0 - inputs: - key: sccache | $(Agent.OS) | Cargo.lock - path: $(SCCACHE_DIR) - displayName: Cache Cargo Target + # - task: CacheBeta@0 + # inputs: + # key: sccache | $(Agent.OS) | Cargo.lock + # path: $(SCCACHE_DIR) + # displayName: Cache Cargo Target - bash: make release displayName: Build Release condition: and(succeeded(), not(eq(variables['Agent.OS'], 'Windows_NT'))) From f772dbfbb6a96feb9f8b9b44ddffc56938861146 Mon Sep 17 00:00:00 2001 From: Syrus Date: Sat, 24 Aug 2019 11:57:14 -0700 Subject: [PATCH 22/54] Fixed sccache --- .azure/install-sccache.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.azure/install-sccache.yml b/.azure/install-sccache.yml index 8102ed230..8c2460ecb 100644 --- a/.azure/install-sccache.yml +++ b/.azure/install-sccache.yml @@ -40,8 +40,12 @@ steps: - bash: | # mkdir -p $SCCACHE_DIR set -ex + env echo "##vso[task.setvariable variable=RUSTC_WRAPPER]$SCCACHE_BIN" SCCACHE_ERROR_LOG=`pwd`/sccache.log RUST_LOG=debug $SCCACHE_BIN --start-server $SCCACHE_BIN -s cat sccache.log displayName: Start sccache + env: + SCCACHE_AZURE_CONNECTION_STRING: $(SCCACHE_AZURE_CONNECTION_STRING) + SCCACHE_AZURE_BLOB_CONTAINER: $(SCCACHE_AZURE_BLOB_CONTAINER) From a18fdde72c1f3b68ba8f91a203e0e051aecb1728 Mon Sep 17 00:00:00 2001 From: Syrus Date: Sat, 24 Aug 2019 12:11:18 -0700 Subject: [PATCH 23/54] Trying to fix sccache --- .azure/install-sccache.yml | 62 +++++++++++++++----------------------- 1 file changed, 24 insertions(+), 38 deletions(-) diff --git a/.azure/install-sccache.yml b/.azure/install-sccache.yml index 8c2460ecb..dffbb13d3 100644 --- a/.azure/install-sccache.yml +++ b/.azure/install-sccache.yml @@ -1,51 +1,37 @@ # This template installs sccache (Shared Compilation Cache) # More info: https://github.com/mozilla/sccache +# Template originally from wasm-bindgen +# https://github.com/rustwasm/wasm-bindgen/blob/master/ci/azure-install-sccache.yml steps: - - - bash: | - set -e - curl -Lfo sccache.tar.gz https://github.com/mozilla/sccache/releases/download/0.2.10/sccache-0.2.10-x86_64-apple-darwin.tar.gz - tar -xzf sccache.tar.gz - mv sccache-* sccache - sccache=`pwd`/sccache/sccache - echo "##vso[task.setvariable variable=SCCACHE_BIN]$sccache" - displayName: Install sccache (macOS) - condition: and(succeeded(), eq(variables['Agent.OS'], 'Darwin')) - - - bash: | - set -e - curl -Lfo sccache.tar.gz https://github.com/mozilla/sccache/releases/download/0.2.10/sccache-0.2.10-x86_64-unknown-linux-musl.tar.gz - tar -xzf sccache.tar.gz - mv sccache-* sccache - sccache=`pwd`/sccache/sccache - echo "##vso[task.setvariable variable=SCCACHE_BIN]$sccache" - displayName: Install sccache (Linux) - condition: and(succeeded(), eq(variables['Agent.OS'], 'Linux')) - - - bash: | - curl -Lfo sccache.tar.gz https://github.com/mozilla/sccache/releases/download/0.2.10/sccache-0.2.10-x86_64-pc-windows-msvc.tar.gz - tar -xzf sccache.tar.gz - mv sccache-* sccache - sccache=`pwd`/sccache/sccache.exe - echo "##vso[task.setvariable variable=SCCACHE_BIN]$sccache" - displayName: Install sccache (Windows) - condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT')) - - bash: | set -ex - $SCCACHE_BIN -V - displayName: sccache version - + curl -L https://github.com/mozilla/sccache/releases/download/0.2.10/sccache-0.2.10-x86_64-unknown-linux-musl.tar.gz | tar xzf - + sccache=`pwd`/sccache-0.2.10-x86_64-unknown-linux-musl/sccache + echo "##vso[task.setvariable variable=RUSTC_WRAPPER;]$sccache" + displayName: Install sccache - Linux + condition: eq( variables['Agent.OS'], 'Linux' ) + - bash: | + set -ex + brew install openssl@1.1 + curl -L https://github.com/mozilla/sccache/releases/download/0.2.10/sccache-0.2.10-x86_64-apple-darwin.tar.gz | tar xzf - + sccache=`pwd`/sccache-0.2.10-x86_64-apple-darwin/sccache + echo "##vso[task.setvariable variable=RUSTC_WRAPPER;]$sccache" + displayName: Install sccache - Darwin + condition: eq( variables['Agent.OS'], 'Darwin' ) + - powershell: | + Invoke-WebRequest https://github.com/mozilla/sccache/releases/download/0.2.10/sccache-0.2.10-x86_64-pc-windows-msvc.tar.gz -OutFile sccache.tar.gz + tar xzf sccache.tar.gz + Write-Host "##vso[task.setvariable variable=RUSTC_WRAPPER;]$pwd/sccache-0.2.10-x86_64-pc-windows-msvc/sccache.exe" + displayName: Install sccache - Windows + condition: eq( variables['Agent.OS'], 'Windows_NT' ) - bash: | - # mkdir -p $SCCACHE_DIR set -ex env - echo "##vso[task.setvariable variable=RUSTC_WRAPPER]$SCCACHE_BIN" - SCCACHE_ERROR_LOG=`pwd`/sccache.log RUST_LOG=debug $SCCACHE_BIN --start-server - $SCCACHE_BIN -s + SCCACHE_ERROR_LOG=`pwd`/sccache.log RUST_LOG=debug $RUSTC_WRAPPER --start-server + $RUSTC_WRAPPER -s cat sccache.log - displayName: Start sccache + displayName: "start sccache" env: SCCACHE_AZURE_CONNECTION_STRING: $(SCCACHE_AZURE_CONNECTION_STRING) SCCACHE_AZURE_BLOB_CONTAINER: $(SCCACHE_AZURE_BLOB_CONTAINER) From 8739d9002b0d2cdbf36a6170199844856d2e7a9b Mon Sep 17 00:00:00 2001 From: Syrus Date: Sat, 24 Aug 2019 12:52:39 -0700 Subject: [PATCH 24/54] Improved Azure pipelines integration --- azure-pipelines.yml | 25 ++++++------------------- 1 file changed, 6 insertions(+), 19 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index a2c27e8a0..b3f29e83d 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -32,9 +32,6 @@ jobs: imageName: 'vs2017-win2016' rust_toolchain: stable - # variables: - # SCCACHE_DIR: $(Pipeline.Workspace)/.sccache - pool: vmImage: $(imageName) @@ -45,11 +42,6 @@ jobs: - template: .azure/install-sccache.yml - template: .azure/install-cmake.yml - template: .azure/install-llvm.yml - # - task: CacheBeta@0 - # inputs: - # key: sccache | $(Agent.OS) | Cargo.lock - # path: $(SCCACHE_DIR) - # displayName: Cache Cargo Target - bash: make test displayName: Tests (*nix) condition: and(succeeded(), not(eq(variables['Agent.OS'], 'Windows_NT'))) @@ -78,9 +70,6 @@ jobs: rust_toolchain: stable RUSTFLAGS: -Ctarget-feature=+crt-static - # variables: - # SCCACHE_DIR: $(Pipeline.Workspace)/.sccache - pool: vmImage: $(imageName) @@ -91,20 +80,18 @@ jobs: - template: .azure/install-sccache.yml - template: .azure/install-cmake.yml - template: .azure/install-llvm.yml - # - task: CacheBeta@0 - # inputs: - # key: sccache | $(Agent.OS) | Cargo.lock - # path: $(SCCACHE_DIR) - # displayName: Cache Cargo Target - bash: make release - displayName: Build Release + displayName: Build (*nix) condition: and(succeeded(), not(eq(variables['Agent.OS'], 'Windows_NT'))) - bash: make release-llvm displayName: Build (Windows) condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT')) - bash: make capi - displayName: Check with Flags - condition: and(succeeded(), not(eq(variables['Agent.OS'], 'Windows_NT'))) + displayName: Build c-api + - bash: | + install_name_tool -id "@rpath/libwasmer_runtime_c_api.dylib" target/release/libwasmer_runtime_c_api.dylib + displayName: Build c-api (Darwin fix) + condition: and(succeeded(), eq(variables['Agent.OS'], 'Darwin')) trigger: branches: From 034ffcff5c97962f1df6f197f1279a7c3e251296 Mon Sep 17 00:00:00 2001 From: Syrus Date: Sat, 24 Aug 2019 12:53:16 -0700 Subject: [PATCH 25/54] Use macos for linting --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index b3f29e83d..43060170e 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -4,7 +4,7 @@ name: $(Build.SourceBranch)-$(date:yyyyMMdd)$(rev:.r) jobs: - job: lint pool: - vmImage: 'ubuntu-16.04' + vmImage: 'macos-10.14' steps: - checkout: self submodules: true From 8f1a77735deb885b12b455e2976a84ed6e76643d Mon Sep 17 00:00:00 2001 From: Syrus Date: Sat, 24 Aug 2019 13:16:58 -0700 Subject: [PATCH 26/54] Added sccache log --- azure-pipelines.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 43060170e..47d9e5cf1 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -51,6 +51,8 @@ jobs: - bash: make check displayName: Check with Flags condition: and(succeeded(), not(eq(variables['Agent.OS'], 'Windows_NT'))) + - script: "%RUSTC_WRAPPER% -s" + - script: cat sccache.log # - bash: make integration-tests # displayName: Integration Tests @@ -92,6 +94,8 @@ jobs: install_name_tool -id "@rpath/libwasmer_runtime_c_api.dylib" target/release/libwasmer_runtime_c_api.dylib displayName: Build c-api (Darwin fix) condition: and(succeeded(), eq(variables['Agent.OS'], 'Darwin')) + - script: "%RUSTC_WRAPPER% -s" + - script: cat sccache.log trigger: branches: From 8243cf0737a7b78de9b9e13c7b94abb73b7f6521 Mon Sep 17 00:00:00 2001 From: Syrus Date: Sat, 24 Aug 2019 21:53:11 -0700 Subject: [PATCH 27/54] Trying to fix azure build --- azure-pipelines.yml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 47d9e5cf1..7773339ee 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -51,8 +51,6 @@ jobs: - bash: make check displayName: Check with Flags condition: and(succeeded(), not(eq(variables['Agent.OS'], 'Windows_NT'))) - - script: "%RUSTC_WRAPPER% -s" - - script: cat sccache.log # - bash: make integration-tests # displayName: Integration Tests @@ -70,7 +68,7 @@ jobs: windows: imageName: 'vs2017-win2016' rust_toolchain: stable - RUSTFLAGS: -Ctarget-feature=+crt-static + # RUSTFLAGS: -Ctarget-feature=+crt-static pool: vmImage: $(imageName) @@ -94,8 +92,6 @@ jobs: install_name_tool -id "@rpath/libwasmer_runtime_c_api.dylib" target/release/libwasmer_runtime_c_api.dylib displayName: Build c-api (Darwin fix) condition: and(succeeded(), eq(variables['Agent.OS'], 'Darwin')) - - script: "%RUSTC_WRAPPER% -s" - - script: cat sccache.log trigger: branches: From 01f1ad5b30db3f5d1fc35575cd0bd63a1273ff51 Mon Sep 17 00:00:00 2001 From: Syrus Date: Sat, 24 Aug 2019 22:19:29 -0700 Subject: [PATCH 28/54] Trying to fix llvm in windows --- .azure/install-llvm.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.azure/install-llvm.yml b/.azure/install-llvm.yml index 29e943005..a7fa86a31 100644 --- a/.azure/install-llvm.yml +++ b/.azure/install-llvm.yml @@ -36,9 +36,9 @@ steps: else curl -OL https://github.com/wasmerio/windows-llvm-build/releases/download/v8.0.0/llvm-8.0.0-install.zip 7z x llvm-8.0.0-install.zip - export LLVM_PATH="`pwd`/llvm-8.0.0-install/" + LLVM_PATH=`pwd`/llvm-8.0.0-install/ echo "##vso[task.prependpath]$LLVM_PATH/bin" - echo "##vso[task.setvariable variable=LLVM_SYS_80_PREFIX]$LLVM_PATH" + echo "##vso[task.setvariable variable=LLVM_SYS_80_PREFIX;]$LLVM_PATH" # chocolatey install cmake --installargs 'ADD_CMAKE_TO_PATH=System' fi displayName: "Install LLVM (Windows)" From 998a25e2d1bd1e270c54a5febed9492def49c237 Mon Sep 17 00:00:00 2001 From: Syrus Date: Sun, 25 Aug 2019 00:24:21 -0700 Subject: [PATCH 29/54] Fixed windows tests --- lib/runtime-c-api/tests/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/runtime-c-api/tests/CMakeLists.txt b/lib/runtime-c-api/tests/CMakeLists.txt index 1a3351123..7db3cbcb0 100644 --- a/lib/runtime-c-api/tests/CMakeLists.txt +++ b/lib/runtime-c-api/tests/CMakeLists.txt @@ -18,7 +18,7 @@ add_executable(test-context test-context.c) add_executable(test-module-import-instantiate test-module-import-instantiate.c) find_library( - WASMER_LIB NAMES libwasmer_runtime_c_api.dylib libwasmer_runtime_c_api.so libwasmer_runtime_c_api.dll + WASMER_LIB NAMES libwasmer_runtime_c_api.dylib libwasmer_runtime_c_api.so wasmer_runtime_c_api.dll PATHS ${CMAKE_SOURCE_DIR}/../../../target/release/ ) From 410c113b523927ce96f3bc1fe0fdaf9933439a20 Mon Sep 17 00:00:00 2001 From: Syrus Date: Sun, 25 Aug 2019 01:02:49 -0700 Subject: [PATCH 30/54] Trying to fix windows LLVM PATH --- .azure/install-llvm.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.azure/install-llvm.yml b/.azure/install-llvm.yml index a7fa86a31..745cc1d98 100644 --- a/.azure/install-llvm.yml +++ b/.azure/install-llvm.yml @@ -36,9 +36,10 @@ steps: else curl -OL https://github.com/wasmerio/windows-llvm-build/releases/download/v8.0.0/llvm-8.0.0-install.zip 7z x llvm-8.0.0-install.zip - LLVM_PATH=`pwd`/llvm-8.0.0-install/ + LLVM_PATH=`pwd`/llvm-8.0.0-install + LLVM_PATH_WIN=`echo %cd%`\\llvm-8.0.0-install echo "##vso[task.prependpath]$LLVM_PATH/bin" - echo "##vso[task.setvariable variable=LLVM_SYS_80_PREFIX;]$LLVM_PATH" + echo "##vso[task.setvariable variable=LLVM_SYS_80_PREFIX;]$LLVM_PATH_WIN" # chocolatey install cmake --installargs 'ADD_CMAKE_TO_PATH=System' fi displayName: "Install LLVM (Windows)" From 2a1c78cbb8980be49bff629f3b4ae54a9c8cb882 Mon Sep 17 00:00:00 2001 From: Syrus Date: Sun, 25 Aug 2019 01:03:54 -0700 Subject: [PATCH 31/54] Added env to LLVM --- .azure/install-llvm.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.azure/install-llvm.yml b/.azure/install-llvm.yml index 745cc1d98..673eb6438 100644 --- a/.azure/install-llvm.yml +++ b/.azure/install-llvm.yml @@ -47,5 +47,6 @@ steps: - bash: | set -ex + env llvm-config --version displayName: LLVM version From d12c3470af64c10ff49aa1827faf3f21b52e39ab Mon Sep 17 00:00:00 2001 From: Syrus Date: Sun, 25 Aug 2019 01:12:33 -0700 Subject: [PATCH 32/54] Trying to fix LLVM_PATH_WIN --- .azure/install-llvm.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.azure/install-llvm.yml b/.azure/install-llvm.yml index 673eb6438..f035ed635 100644 --- a/.azure/install-llvm.yml +++ b/.azure/install-llvm.yml @@ -37,7 +37,7 @@ steps: curl -OL https://github.com/wasmerio/windows-llvm-build/releases/download/v8.0.0/llvm-8.0.0-install.zip 7z x llvm-8.0.0-install.zip LLVM_PATH=`pwd`/llvm-8.0.0-install - LLVM_PATH_WIN=`echo %cd%`\\llvm-8.0.0-install + LLVM_PATH_WIN=`cd`\\llvm-8.0.0-install echo "##vso[task.prependpath]$LLVM_PATH/bin" echo "##vso[task.setvariable variable=LLVM_SYS_80_PREFIX;]$LLVM_PATH_WIN" # chocolatey install cmake --installargs 'ADD_CMAKE_TO_PATH=System' From 0d450607cf40a95606096d82940016bd58daeb76 Mon Sep 17 00:00:00 2001 From: Syrus Date: Sun, 25 Aug 2019 01:22:54 -0700 Subject: [PATCH 33/54] Trying to fix windows llvm --- .azure/install-llvm.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.azure/install-llvm.yml b/.azure/install-llvm.yml index f035ed635..770684db2 100644 --- a/.azure/install-llvm.yml +++ b/.azure/install-llvm.yml @@ -37,9 +37,9 @@ steps: curl -OL https://github.com/wasmerio/windows-llvm-build/releases/download/v8.0.0/llvm-8.0.0-install.zip 7z x llvm-8.0.0-install.zip LLVM_PATH=`pwd`/llvm-8.0.0-install - LLVM_PATH_WIN=`cd`\\llvm-8.0.0-install + LLVM_PATH_WIN=$SYSTEM_DEFAULTWORKINGDIRECTORY\llvm-8.0.0-install echo "##vso[task.prependpath]$LLVM_PATH/bin" - echo "##vso[task.setvariable variable=LLVM_SYS_80_PREFIX;]$LLVM_PATH_WIN" + echo "##vso[task.setvariable variable=LLVM_SYS_80_PREFIX]$LLVM_PATH_WIN" # chocolatey install cmake --installargs 'ADD_CMAKE_TO_PATH=System' fi displayName: "Install LLVM (Windows)" From 3d787b91248e21768695e1481745378d8d3d0d05 Mon Sep 17 00:00:00 2001 From: Syrus Date: Sun, 25 Aug 2019 01:33:19 -0700 Subject: [PATCH 34/54] Small llvm path win fix --- .azure/install-llvm.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.azure/install-llvm.yml b/.azure/install-llvm.yml index 770684db2..0a2a674b1 100644 --- a/.azure/install-llvm.yml +++ b/.azure/install-llvm.yml @@ -37,7 +37,7 @@ steps: curl -OL https://github.com/wasmerio/windows-llvm-build/releases/download/v8.0.0/llvm-8.0.0-install.zip 7z x llvm-8.0.0-install.zip LLVM_PATH=`pwd`/llvm-8.0.0-install - LLVM_PATH_WIN=$SYSTEM_DEFAULTWORKINGDIRECTORY\llvm-8.0.0-install + LLVM_PATH_WIN=$SYSTEM_DEFAULTWORKINGDIRECTORY\\llvm-8.0.0-install echo "##vso[task.prependpath]$LLVM_PATH/bin" echo "##vso[task.setvariable variable=LLVM_SYS_80_PREFIX]$LLVM_PATH_WIN" # chocolatey install cmake --installargs 'ADD_CMAKE_TO_PATH=System' From 4da56d1dc62fdebab8de02fa44108d48adc16068 Mon Sep 17 00:00:00 2001 From: Syrus Date: Sun, 25 Aug 2019 17:32:04 -0700 Subject: [PATCH 35/54] Fix C-API on Windows --- azure-pipelines.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 7773339ee..0c2e189a0 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -87,7 +87,13 @@ jobs: displayName: Build (Windows) condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT')) - bash: make capi - displayName: Build c-api + displayName: Build c-api (*nix) + condition: and(succeeded(), not(eq(variables['Agent.OS'], 'Windows_NT'))) + - bash: | + cargo build --release + cargo build -p wasmer-runtime-c-api --release + displayName: Build c-api (Windows) + condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT')) - bash: | install_name_tool -id "@rpath/libwasmer_runtime_c_api.dylib" target/release/libwasmer_runtime_c_api.dylib displayName: Build c-api (Darwin fix) From 2b08e19a7a0a89651adbbbeed810252b0b410ba9 Mon Sep 17 00:00:00 2001 From: Syrus Date: Sun, 25 Aug 2019 18:18:12 -0700 Subject: [PATCH 36/54] Separate check out of tests --- azure-pipelines.yml | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 0c2e189a0..9f657ee7b 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -48,13 +48,22 @@ jobs: - bash: make spectests-cranelift displayName: Tests (Windows) condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT')) + +- job: Check + pool: + vmImage: 'macos-10.14' + + steps: + - checkout: self + submodules: true + - template: .azure/install-rust.yml + - template: .azure/install-sccache.yml + - template: .azure/install-cmake.yml + - template: .azure/install-llvm.yml - bash: make check displayName: Check with Flags condition: and(succeeded(), not(eq(variables['Agent.OS'], 'Windows_NT'))) - # - bash: make integration-tests - # displayName: Integration Tests - - job: Build strategy: matrix: From e48da878e340d3e9093e4170b04ab167a73d9194 Mon Sep 17 00:00:00 2001 From: Syrus Date: Sun, 25 Aug 2019 18:19:56 -0700 Subject: [PATCH 37/54] Fixed rust toolchain for check --- azure-pipelines.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 9f657ee7b..4922c3d02 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -53,6 +53,9 @@ jobs: pool: vmImage: 'macos-10.14' + variables: + rust_toolchain: nightly-2019-06-10 + steps: - checkout: self submodules: true From 1dde19cc833940535be0e171eaa5f137e4779f2c Mon Sep 17 00:00:00 2001 From: Syrus Date: Sun, 25 Aug 2019 19:32:34 -0700 Subject: [PATCH 38/54] Added InnoSetup --- .azure/install-innosetup.yml | 15 +++++++++++++++ azure-pipelines.yml | 1 + 2 files changed, 16 insertions(+) create mode 100644 .azure/install-innosetup.yml diff --git a/.azure/install-innosetup.yml b/.azure/install-innosetup.yml new file mode 100644 index 000000000..192bffa50 --- /dev/null +++ b/.azure/install-innosetup.yml @@ -0,0 +1,15 @@ +# This template installs InnoSetup + +steps: + - powershell: | + Invoke-WebRequest https://s3-us-west-1.amazonaws.com/rust-lang-ci2/rust-ci-mirror/2017-08-22-is.exe + 2017-08-22-is.exe /VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP- + Write-Host "##vso[task.prependpath]C:\Program Files (x86)\Inno Setup 5" + displayName: Install InnoSetup - Windows + condition: eq(variables['Agent.OS'], 'Windows_NT') + + - bash: | + set -ex + iscc + displayName: InnoSetup + condition: eq(variables['Agent.OS'], 'Windows_NT') diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 4922c3d02..255d1b688 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -63,6 +63,7 @@ jobs: - template: .azure/install-sccache.yml - template: .azure/install-cmake.yml - template: .azure/install-llvm.yml + - template: .azure/install-innosetup.yml - bash: make check displayName: Check with Flags condition: and(succeeded(), not(eq(variables['Agent.OS'], 'Windows_NT'))) From 8dc82915001a92e193c7eabcbfc6947c804e0276 Mon Sep 17 00:00:00 2001 From: Syrus Date: Sun, 25 Aug 2019 19:37:35 -0700 Subject: [PATCH 39/54] Fixed innosetup install --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 255d1b688..31652fd2d 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -63,7 +63,6 @@ jobs: - template: .azure/install-sccache.yml - template: .azure/install-cmake.yml - template: .azure/install-llvm.yml - - template: .azure/install-innosetup.yml - bash: make check displayName: Check with Flags condition: and(succeeded(), not(eq(variables['Agent.OS'], 'Windows_NT'))) @@ -92,6 +91,7 @@ jobs: - template: .azure/install-rust.yml - template: .azure/install-sccache.yml - template: .azure/install-cmake.yml + - template: .azure/install-innosetup.yml - template: .azure/install-llvm.yml - bash: make release displayName: Build (*nix) From a31dae2bf24461c32971f0d935582ff03222280b Mon Sep 17 00:00:00 2001 From: Syrus Date: Wed, 28 Aug 2019 17:38:01 -0700 Subject: [PATCH 40/54] Trying to improve InnoSetup --- .azure/install-innosetup.yml | 6 ++---- .azure/install-rust.yml | 7 ++++--- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/.azure/install-innosetup.yml b/.azure/install-innosetup.yml index 192bffa50..f4d563221 100644 --- a/.azure/install-innosetup.yml +++ b/.azure/install-innosetup.yml @@ -1,10 +1,8 @@ # This template installs InnoSetup steps: - - powershell: | - Invoke-WebRequest https://s3-us-west-1.amazonaws.com/rust-lang-ci2/rust-ci-mirror/2017-08-22-is.exe - 2017-08-22-is.exe /VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP- - Write-Host "##vso[task.prependpath]C:\Program Files (x86)\Inno Setup 5" + - bash: | + choco install innosetup -y displayName: Install InnoSetup - Windows condition: eq(variables['Agent.OS'], 'Windows_NT') diff --git a/.azure/install-rust.yml b/.azure/install-rust.yml index 7de2142b5..4a7a340c0 100644 --- a/.azure/install-rust.yml +++ b/.azure/install-rust.yml @@ -22,9 +22,10 @@ steps: if [ -x "`command -v rustup`" ]; then echo `command -v rustup` `rustup -V` installed else - curl -sSf -o rustup-init.exe https://win.rustup.rs - ./rustup-init.exe -y --default-toolchain $RUST_TOOLCHAIN - echo "##vso[task.prependpath]$USERPROFILE/.cargo/bin" + choco install rust -y + # curl -sSf -o rustup-init.exe https://win.rustup.rs + # ./rustup-init.exe -y --default-toolchain $RUST_TOOLCHAIN + # echo "##vso[task.prependpath]$USERPROFILE/.cargo/bin" fi displayName: "Install Rust (Windows)" condition: eq(variables['Agent.OS'], 'Windows_NT') From 366c6e1efbd4f2158b53b550effecf2b4dd76bb3 Mon Sep 17 00:00:00 2001 From: Syrus Date: Wed, 28 Aug 2019 17:53:33 -0700 Subject: [PATCH 41/54] Improved Azure Pipelines to make the releases --- .azure/install-innosetup.yml | 17 +++++++++++------ azure-pipelines.yml | 25 +++++++++++++++++++------ 2 files changed, 30 insertions(+), 12 deletions(-) diff --git a/.azure/install-innosetup.yml b/.azure/install-innosetup.yml index f4d563221..bd7e2980e 100644 --- a/.azure/install-innosetup.yml +++ b/.azure/install-innosetup.yml @@ -2,12 +2,17 @@ steps: - bash: | - choco install innosetup -y + set -ex + if [ -x "`command -v iscc`" ]; then + echo `command -v iscc` `iscc -?` installed + else + choco install innosetup -y + fi displayName: Install InnoSetup - Windows condition: eq(variables['Agent.OS'], 'Windows_NT') - - bash: | - set -ex - iscc - displayName: InnoSetup - condition: eq(variables['Agent.OS'], 'Windows_NT') + # - bash: | + # set -ex + # iscc + # displayName: InnoSetup + # condition: eq(variables['Agent.OS'], 'Windows_NT') diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 31652fd2d..1d3b43f64 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -93,12 +93,6 @@ jobs: - template: .azure/install-cmake.yml - template: .azure/install-innosetup.yml - template: .azure/install-llvm.yml - - bash: make release - displayName: Build (*nix) - condition: and(succeeded(), not(eq(variables['Agent.OS'], 'Windows_NT'))) - - bash: make release-llvm - displayName: Build (Windows) - condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT')) - bash: make capi displayName: Build c-api (*nix) condition: and(succeeded(), not(eq(variables['Agent.OS'], 'Windows_NT'))) @@ -107,6 +101,25 @@ jobs: cargo build -p wasmer-runtime-c-api --release displayName: Build c-api (Windows) condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT')) + - bash: make release + displayName: Build (*nix) + condition: and(succeeded(), not(eq(variables['Agent.OS'], 'Windows_NT'))) + - bash: make release-llvm + displayName: Build (Windows) + condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT')) + - bash: | + cargo build --release --manifest-path wapm-cli/Cargo.toml --features "telemetry update-notifications" + displayName: Build WAPM + - bash: | + mkdir -p artifacts + make build-install + displayName: Build Distribution (*nix) + condition: and(succeeded(), not(eq(variables['Agent.OS'], 'Windows_NT'))) + - bash: | + cd ./src/installer + iscc wasmer.iss + displayName: Build Distribution (Windows) + condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT')) - bash: | install_name_tool -id "@rpath/libwasmer_runtime_c_api.dylib" target/release/libwasmer_runtime_c_api.dylib displayName: Build c-api (Darwin fix) From d2eb01f96766d20c0b00215e28ed5a7f502d527e Mon Sep 17 00:00:00 2001 From: Syrus Date: Sat, 31 Aug 2019 21:12:55 -0700 Subject: [PATCH 42/54] Updated azure pipelines with github publish --- azure-pipelines.yml | 41 ++++++++++++++++++++++++++++++++++------- 1 file changed, 34 insertions(+), 7 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 1d3b43f64..17832505e 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -93,12 +93,24 @@ jobs: - template: .azure/install-cmake.yml - template: .azure/install-innosetup.yml - template: .azure/install-llvm.yml - - bash: make capi - displayName: Build c-api (*nix) - condition: and(succeeded(), not(eq(variables['Agent.OS'], 'Windows_NT'))) + - bash: | + mkdir -p artifacts + displayName: Create Artifacts Dir + - bash: | + make capi + cp target/release/libwasmer_runtime_c_api.so ./artifacts + displayName: Build c-api (Linux) + condition: and(succeeded(), eq(variables['Agent.OS'], 'Linux')) + - bash: | + make capi + install_name_tool -id "@rpath/libwasmer_runtime_c_api.dylib" target/release/libwasmer_runtime_c_api.dylib + cp target/release/libwasmer_runtime_c_api.dylib ./artifacts + displayName: Build c-api (Darwin) + condition: and(succeeded(), eq(variables['Agent.OS'], 'Darwin')) - bash: | cargo build --release cargo build -p wasmer-runtime-c-api --release + cp target/release/wasmer_runtime_c_api.dll ./artifacts displayName: Build c-api (Windows) condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT')) - bash: make release @@ -111,19 +123,34 @@ jobs: cargo build --release --manifest-path wapm-cli/Cargo.toml --features "telemetry update-notifications" displayName: Build WAPM - bash: | - mkdir -p artifacts make build-install + cp ./wasmer.tar.gz ./artifacts/$(./scripts/binary-name.sh) displayName: Build Distribution (*nix) condition: and(succeeded(), not(eq(variables['Agent.OS'], 'Windows_NT'))) - bash: | cd ./src/installer iscc wasmer.iss + cp WasmerInstaller.exe ../../artifacts/wasmer-windows.exe displayName: Build Distribution (Windows) condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT')) + - publish: $(System.DefaultWorkingDirectory)/artifacts + artifact: release # -$(Agent.OS) + +- job: Publish + steps: + - download: current + artifact: release - bash: | - install_name_tool -id "@rpath/libwasmer_runtime_c_api.dylib" target/release/libwasmer_runtime_c_api.dylib - displayName: Build c-api (Darwin fix) - condition: and(succeeded(), eq(variables['Agent.OS'], 'Darwin')) + ls $PIPELINE_WORKSPACE/release + env: + PIPELINE_WORKSPACE: $(Pipeline.Workspace) + - task: GithubRelease@0 + displayName: 'Create GitHub Release' + inputs: + gitHubConnection: wasmerio + repositoryName: wasmerio/wasmer + tag: dev + assets: $(Pipeline.Workspace)/release trigger: branches: From e8d666e321b74668a462157375c89ec18f523cf7 Mon Sep 17 00:00:00 2001 From: Syrus Date: Sat, 31 Aug 2019 21:13:46 -0700 Subject: [PATCH 43/54] Updated status badges --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index b26db97d6..509be9dde 100644 --- a/README.md +++ b/README.md @@ -5,17 +5,17 @@

- - Build Status + + Build Status - License + License Join the Wasmer Community - Follow @wasmerio on Twitter + Follow @wasmerio on Twitter

From 74065ac171a3083980541b851ac7581386fde1d7 Mon Sep 17 00:00:00 2001 From: Syrus Date: Sat, 31 Aug 2019 21:14:01 -0700 Subject: [PATCH 44/54] Fixed publish dependency --- azure-pipelines.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 17832505e..0c051e605 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -137,6 +137,8 @@ jobs: artifact: release # -$(Agent.OS) - job: Publish + dependsOn: + - Build steps: - download: current artifact: release From c47c8a4cecc229c75052f76a9de5236723000077 Mon Sep 17 00:00:00 2001 From: Syrus Date: Sat, 31 Aug 2019 21:19:50 -0700 Subject: [PATCH 45/54] Separated C-API from CLI. Format pipelines --- azure-pipelines.yml | 318 +++++++++++++++++++++++--------------------- 1 file changed, 170 insertions(+), 148 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 0c051e605..5d7229b7b 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -2,160 +2,182 @@ name: $(Build.SourceBranch)-$(date:yyyyMMdd)$(rev:.r) # The Different jobs (lint, test, build to run) jobs: -- job: lint - pool: - vmImage: 'macos-10.14' - steps: - - checkout: self - submodules: true - - template: .azure/install-rust.yml - - script: | - rustup component add rustfmt - rustup component add clippy || cargo install --git https://github.com/rust-lang/rust-clippy/ --force clippy - displayName: Lint dependencies - - script: cargo fmt --all -- --check - displayName: Lint + - job: lint + pool: + vmImage: "macos-10.14" + steps: + - checkout: self + submodules: true + - template: .azure/install-rust.yml + - script: | + rustup component add rustfmt + rustup component add clippy || cargo install --git https://github.com/rust-lang/rust-clippy/ --force clippy + displayName: Lint dependencies + - script: cargo fmt --all -- --check + displayName: Lint + variables: + rust_toolchain: stable - variables: - rust_toolchain: stable + - job: Test + strategy: + matrix: + linux: + imageName: "ubuntu-16.04" + rust_toolchain: nightly-2019-06-10 + mac: + imageName: "macos-10.14" + rust_toolchain: nightly-2019-06-10 + windows: + imageName: "vs2017-win2016" + rust_toolchain: stable + pool: + vmImage: $(imageName) + steps: + - checkout: self + submodules: true + - template: .azure/install-rust.yml + - template: .azure/install-sccache.yml + - template: .azure/install-cmake.yml + - template: .azure/install-llvm.yml + - bash: make test + displayName: Tests (*nix) + condition: and(succeeded(), not(eq(variables['Agent.OS'], 'Windows_NT'))) + - bash: make spectests-cranelift + displayName: Tests (Windows) + condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT')) -- job: Test - strategy: - matrix: - linux: - imageName: 'ubuntu-16.04' - rust_toolchain: nightly-2019-06-10 - mac: - imageName: 'macos-10.14' - rust_toolchain: nightly-2019-06-10 - windows: - imageName: 'vs2017-win2016' - rust_toolchain: stable + - job: Check + pool: + vmImage: "macos-10.14" + variables: + rust_toolchain: nightly-2019-06-10 + steps: + - checkout: self + submodules: true + - template: .azure/install-rust.yml + - template: .azure/install-sccache.yml + - template: .azure/install-cmake.yml + - template: .azure/install-llvm.yml + - bash: make check + displayName: Check with Flags + condition: and(succeeded(), not(eq(variables['Agent.OS'], 'Windows_NT'))) - pool: - vmImage: $(imageName) + - job: Build CLI + strategy: + matrix: + linux: + imageName: "ubuntu-16.04" + rust_toolchain: nightly-2019-06-10 + mac: + imageName: "macos-10.14" + rust_toolchain: nightly-2019-06-10 + MACOSX_DEPLOYMENT_TARGET: 10.10 + windows: + imageName: "vs2017-win2016" + rust_toolchain: stable + # RUSTFLAGS: -Ctarget-feature=+crt-static + pool: + vmImage: $(imageName) + steps: + - checkout: self + submodules: true + - template: .azure/install-rust.yml + - template: .azure/install-sccache.yml + - template: .azure/install-cmake.yml + - template: .azure/install-innosetup.yml + - template: .azure/install-llvm.yml + - bash: | + mkdir -p artifacts + displayName: Create Artifacts Dir + - bash: make release + displayName: Build (*nix) + condition: and(succeeded(), not(eq(variables['Agent.OS'], 'Windows_NT'))) + - bash: make release-llvm + displayName: Build (Windows) + condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT')) + - bash: | + cargo build --release --manifest-path wapm-cli/Cargo.toml --features "telemetry update-notifications" + displayName: Build WAPM + - bash: | + make build-install + cp ./wasmer.tar.gz ./artifacts/$(./scripts/binary-name.sh) + displayName: Build Distribution (*nix) + condition: and(succeeded(), not(eq(variables['Agent.OS'], 'Windows_NT'))) + - bash: | + cd ./src/installer + iscc wasmer.iss + cp WasmerInstaller.exe ../../artifacts/wasmer-windows.exe + displayName: Build Distribution (Windows) + condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT')) + - publish: $(System.DefaultWorkingDirectory)/artifacts + artifact: release # -$(Agent.OS) - steps: - - checkout: self - submodules: true - - template: .azure/install-rust.yml - - template: .azure/install-sccache.yml - - template: .azure/install-cmake.yml - - template: .azure/install-llvm.yml - - bash: make test - displayName: Tests (*nix) - condition: and(succeeded(), not(eq(variables['Agent.OS'], 'Windows_NT'))) - - bash: make spectests-cranelift - displayName: Tests (Windows) - condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT')) + - job: Build C-API + strategy: + matrix: + linux: + imageName: "ubuntu-16.04" + rust_toolchain: nightly-2019-06-10 + mac: + imageName: "macos-10.14" + rust_toolchain: nightly-2019-06-10 + MACOSX_DEPLOYMENT_TARGET: 10.10 + windows: + imageName: "vs2017-win2016" + rust_toolchain: stable + # RUSTFLAGS: -Ctarget-feature=+crt-static + pool: + vmImage: $(imageName) + steps: + - checkout: self + submodules: true + - template: .azure/install-rust.yml + - template: .azure/install-sccache.yml + - template: .azure/install-cmake.yml + # - template: .azure/install-llvm.yml + - bash: | + mkdir -p artifacts + displayName: Create Artifacts Dir + - bash: | + make capi + cp target/release/libwasmer_runtime_c_api.so ./artifacts + displayName: Build c-api (Linux) + condition: and(succeeded(), eq(variables['Agent.OS'], 'Linux')) + - bash: | + make capi + install_name_tool -id "@rpath/libwasmer_runtime_c_api.dylib" target/release/libwasmer_runtime_c_api.dylib + cp target/release/libwasmer_runtime_c_api.dylib ./artifacts + displayName: Build c-api (Darwin) + condition: and(succeeded(), eq(variables['Agent.OS'], 'Darwin')) + - bash: | + cargo build --release + cargo build -p wasmer-runtime-c-api --release + cp target/release/wasmer_runtime_c_api.dll ./artifacts + displayName: Build c-api (Windows) + condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT')) + - publish: $(System.DefaultWorkingDirectory)/artifacts + artifact: release # -$(Agent.OS) -- job: Check - pool: - vmImage: 'macos-10.14' - - variables: - rust_toolchain: nightly-2019-06-10 - - steps: - - checkout: self - submodules: true - - template: .azure/install-rust.yml - - template: .azure/install-sccache.yml - - template: .azure/install-cmake.yml - - template: .azure/install-llvm.yml - - bash: make check - displayName: Check with Flags - condition: and(succeeded(), not(eq(variables['Agent.OS'], 'Windows_NT'))) - -- job: Build - strategy: - matrix: - linux: - imageName: 'ubuntu-16.04' - rust_toolchain: nightly-2019-06-10 - mac: - imageName: 'macos-10.14' - rust_toolchain: nightly-2019-06-10 - MACOSX_DEPLOYMENT_TARGET: 10.10 - windows: - imageName: 'vs2017-win2016' - rust_toolchain: stable - # RUSTFLAGS: -Ctarget-feature=+crt-static - - pool: - vmImage: $(imageName) - - steps: - - checkout: self - submodules: true - - template: .azure/install-rust.yml - - template: .azure/install-sccache.yml - - template: .azure/install-cmake.yml - - template: .azure/install-innosetup.yml - - template: .azure/install-llvm.yml - - bash: | - mkdir -p artifacts - displayName: Create Artifacts Dir - - bash: | - make capi - cp target/release/libwasmer_runtime_c_api.so ./artifacts - displayName: Build c-api (Linux) - condition: and(succeeded(), eq(variables['Agent.OS'], 'Linux')) - - bash: | - make capi - install_name_tool -id "@rpath/libwasmer_runtime_c_api.dylib" target/release/libwasmer_runtime_c_api.dylib - cp target/release/libwasmer_runtime_c_api.dylib ./artifacts - displayName: Build c-api (Darwin) - condition: and(succeeded(), eq(variables['Agent.OS'], 'Darwin')) - - bash: | - cargo build --release - cargo build -p wasmer-runtime-c-api --release - cp target/release/wasmer_runtime_c_api.dll ./artifacts - displayName: Build c-api (Windows) - condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT')) - - bash: make release - displayName: Build (*nix) - condition: and(succeeded(), not(eq(variables['Agent.OS'], 'Windows_NT'))) - - bash: make release-llvm - displayName: Build (Windows) - condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT')) - - bash: | - cargo build --release --manifest-path wapm-cli/Cargo.toml --features "telemetry update-notifications" - displayName: Build WAPM - - bash: | - make build-install - cp ./wasmer.tar.gz ./artifacts/$(./scripts/binary-name.sh) - displayName: Build Distribution (*nix) - condition: and(succeeded(), not(eq(variables['Agent.OS'], 'Windows_NT'))) - - bash: | - cd ./src/installer - iscc wasmer.iss - cp WasmerInstaller.exe ../../artifacts/wasmer-windows.exe - displayName: Build Distribution (Windows) - condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT')) - - publish: $(System.DefaultWorkingDirectory)/artifacts - artifact: release # -$(Agent.OS) - -- job: Publish - dependsOn: - - Build - steps: - - download: current - artifact: release - - bash: | - ls $PIPELINE_WORKSPACE/release - env: - PIPELINE_WORKSPACE: $(Pipeline.Workspace) - - task: GithubRelease@0 - displayName: 'Create GitHub Release' - inputs: - gitHubConnection: wasmerio - repositoryName: wasmerio/wasmer - tag: dev - assets: $(Pipeline.Workspace)/release + - job: Publish + dependsOn: + - Build CLI + - Build C-API + steps: + - download: current + artifact: release + - bash: | + ls $PIPELINE_WORKSPACE/release + env: + PIPELINE_WORKSPACE: $(Pipeline.Workspace) + - task: GithubRelease@0 + displayName: "Create GitHub Release" + inputs: + gitHubConnection: wasmerio + repositoryName: wasmerio/wasmer + tag: dev + assets: $(Pipeline.Workspace)/release trigger: branches: include: - - '*' - + - "*" From 576f8d5cf4bba27240c6691e7203fa3fd71563ba Mon Sep 17 00:00:00 2001 From: Syrus Date: Sat, 31 Aug 2019 21:25:09 -0700 Subject: [PATCH 46/54] Fixed githubConnection --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 5d7229b7b..f785b48e2 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -172,7 +172,7 @@ jobs: - task: GithubRelease@0 displayName: "Create GitHub Release" inputs: - gitHubConnection: wasmerio + gitHubConnection: wasmer repositoryName: wasmerio/wasmer tag: dev assets: $(Pipeline.Workspace)/release From 5c2707a474c7042375034171070d911106df53c9 Mon Sep 17 00:00:00 2001 From: Syrus Date: Sat, 31 Aug 2019 21:30:20 -0700 Subject: [PATCH 47/54] Fixed names --- azure-pipelines.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index f785b48e2..1571d7a0f 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -62,7 +62,7 @@ jobs: displayName: Check with Flags condition: and(succeeded(), not(eq(variables['Agent.OS'], 'Windows_NT'))) - - job: Build CLI + - job: Build_CLI strategy: matrix: linux: @@ -112,7 +112,7 @@ jobs: - publish: $(System.DefaultWorkingDirectory)/artifacts artifact: release # -$(Agent.OS) - - job: Build C-API + - job: Build_Library strategy: matrix: linux: @@ -160,8 +160,8 @@ jobs: - job: Publish dependsOn: - - Build CLI - - Build C-API + - Build_CLI + - Build_Library steps: - download: current artifact: release From 1a1b9667d08fd4179e2e231e593835488db0fabf Mon Sep 17 00:00:00 2001 From: Syrus Date: Sat, 31 Aug 2019 21:30:49 -0700 Subject: [PATCH 48/54] Removed circleci and appveyor configs --- .appveyor.yml | 78 -------- .circleci/config.yml | 439 ------------------------------------------- 2 files changed, 517 deletions(-) delete mode 100644 .appveyor.yml delete mode 100644 .circleci/config.yml diff --git a/.appveyor.yml b/.appveyor.yml deleted file mode 100644 index 18cff7054..000000000 --- a/.appveyor.yml +++ /dev/null @@ -1,78 +0,0 @@ -version: "{build} ~ {branch}" - -os: Visual Studio 2017 - -branches: - only: - - staging - - trying - - master - -environment: - matrix: - - CHANNEL: stable - ARCH: x86_64 - ABI: msvc - TARGET: x86_64-pc-windows-msvc - -cache: - - 'C:\Users\appveyor\.cargo' - - target - -install: - # Install LLVM - - mkdir C:\projects\deps - - cd C:\projects\deps - - appveyor DownloadFile https://github.com/wasmerio/windows-llvm-build/releases/download/v8.0.0/llvm-8.0.0-install.zip -FileName llvm-8.0.0-install.zip - - 7z x llvm-8.0.0-install.zip - - C:\projects\deps\llvm-8.0.0-install\bin\llvm-config.exe --version - - set "LLVM_SYS_80_PREFIX=C:\projects\deps\llvm-8.0.0-install" - - cd "%APPVEYOR_BUILD_FOLDER%" - - # Install Rust - # uncomment these lines if the cache is cleared, or if we must re-install rust for some reason - - appveyor DownloadFile https://win.rustup.rs/ -FileName rustup-init.exe - - rustup-init.exe -yv --default-host %target% - - set PATH=%PATH%;%USERPROFILE%\.cargo\bin - - rustup default stable-%target% - - rustup update - - rustc -vV - - cargo -vV - - # Install InnoSetup - - appveyor-retry appveyor DownloadFile https://s3-us-west-1.amazonaws.com/rust-lang-ci2/rust-ci-mirror/2017-08-22-is.exe - - 2017-08-22-is.exe /VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP- - - set PATH="C:\Program Files (x86)\Inno Setup 5";%PATH% -# uncomment to RDP to appveyor -# - ps: $blockRdp = $true; iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/appveyor/ci/master/scripts/enable-rdp.ps1')) - -build_script: - - cargo build --release --verbose --features backend-llvm - - cargo build --release --manifest-path lib/runtime-c-api/Cargo.toml - -test_script: - - cargo test --manifest-path lib/spectests/Cargo.toml --release --features clif -- --nocapture - -before_deploy: - - appveyor PushArtifact target\release\wasmer_runtime_c_api.dll - - git submodule init - - git submodule update - - cargo build --release --manifest-path wapm-cli/Cargo.toml --features "telemetry update-notifications" - - cd ./src/installer - - iscc wasmer.iss - - copy /y .\WasmerInstaller.exe ..\..\WasmerInstaller-%APPVEYOR_REPO_TAG_NAME%.exe - - appveyor PushArtifact ..\..\WasmerInstaller-%APPVEYOR_REPO_TAG_NAME%.exe - - cd ..\..\ - -matrix: - fast_finish: true - -deploy: - description: 'WasmerInstaller' - artifact: /.*\.exe/ - auth_token: - secure: BbreGNDJy20922za7OhJG5TERzfX+dJSBQwttNTJkLvszbqMov6hhAtRb3P45hpf - provider: GitHub - on: - branch: master - appveyor_repo_tag: true diff --git a/.circleci/config.yml b/.circleci/config.yml deleted file mode 100644 index 5abff64df..000000000 --- a/.circleci/config.yml +++ /dev/null @@ -1,439 +0,0 @@ -run_with_build_env_vars: &run_with_build_env_vars - environment: - LLVM_SYS_80_PREFIX: /home/circleci/project/clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04/ - -run_install_dependencies: &run_install_dependencies - run: - name: install dependencies - command: | - sudo apt-get install -y cmake - curl -O https://releases.llvm.org/8.0.0/clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz - tar xf clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz - -version: 2 -jobs: - changelog: - docker: - - image: docker:stable-git - steps: - - checkout - - run: - command: ! git diff --exit-code CHANGELOG.md - - # Job used for testing - lint: - docker: - - image: circleci/rust:latest - <<: *run_with_build_env_vars - steps: - - checkout - - run: - name: "Pull Submodules" - command: | - git submodule update --init - - restore_cache: - keys: - - v8-lint-{{ arch }}-{{ checksum "Cargo.lock" }} - - <<: *run_install_dependencies - - run: - name: Install lint deps - command: | - git config --global --unset url."ssh://git@github.com".insteadOf || true - # rustup toolchain install nightly-2019-06-10 - # rustup default nightly-2019-06-10 - rustup component add rustfmt - rustup component add clippy || cargo install --git https://github.com/rust-lang/rust-clippy/ --force clippy - - run: - name: Execute lints - command: | - cargo fmt --all -- --check - - save_cache: - paths: - - /usr/local/cargo/registry - - target/debug/.fingerprint - - target/debug/build - - target/debug/deps - key: v8-lint-{{ arch }}-{{ checksum "Cargo.lock" }} - - test-stable: - docker: - - image: circleci/rust:1.36 - <<: *run_with_build_env_vars - steps: - - checkout - - run: - name: "Pull Submodules" - command: | - git submodule update --init - - restore_cache: - keys: - - v8-test-cargo-cache-linux-stable-{{ arch }}-{{ checksum "Cargo.lock" }} - - <<: *run_install_dependencies - - run: - name: Test everything (except singlepass) - command: | - make cranelift - make llvm - make test-rest - - run: - name: Integration Tests - command: make integration-tests - - save_cache: - paths: - - /usr/local/cargo/registry - - target/release/.fingerprint - - target/release/build - - target/release/deps - key: v8-test-cargo-cache-linux-stable-{{ arch }}-{{ checksum "Cargo.lock" }} - - test: - docker: - - image: circleci/rust:latest - <<: *run_with_build_env_vars - steps: - - checkout - - run: - name: "Pull Submodules" - command: | - git submodule update --init - - restore_cache: - keys: - - v8-test-cargo-cache-linux-nightly-{{ arch }}-{{ checksum "Cargo.lock" }} - - <<: *run_install_dependencies - - run: rustup default nightly-2019-06-10 - - run: - name: Tests - command: make test - - run: - name: Debug flag checked - command: | - cargo check --features "debug" --release - - run: - name: Check - command: | - make check - - run: - name: Integration Tests - command: make integration-tests - - save_cache: - paths: - - /usr/local/cargo/registry - - target/release/.fingerprint - - target/release/build - - target/release/deps - key: v8-test-cargo-cache-linux-nightly-{{ arch }}-{{ checksum "Cargo.lock" }} - - test-rust-example: - docker: - - image: circleci/rust:latest - <<: *run_with_build_env_vars - steps: - - checkout - - run: - name: "Check Wasmer Rust example" - command: | - git clone https://github.com/wasmerio/wasmer-rust-example - rustup default stable - rustup target add wasm32-unknown-unknown - cd wasmer-rust-example - cd wasm-sample-app - cargo build --release - cd .. - sed -i 's/wasmer-runtime.*/wasmer-runtime = \{ path = "..\/lib\/runtime" \}/g' Cargo.toml - cargo run - cargo test - - test-macos: - macos: - xcode: "9.0" - steps: - - checkout - - run: - name: "Pull Submodules" - command: | - git submodule update --init - - restore_cache: - keys: - - v8-cargo-cache-darwin-nightly-{{ arch }}-{{ checksum "Cargo.lock" }} - - run: - name: Install crate dependencies - command: | - # 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" - # Installing LLVM outside of brew - curl -O https://releases.llvm.org/8.0.0/clang+llvm-8.0.0-x86_64-apple-darwin.tar.xz - tar xf clang+llvm-8.0.0-x86_64-apple-darwin.tar.xz - - run: - name: Install Rust - command: | - curl -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain nightly-2019-06-10 - export PATH="$HOME/.cargo/bin:$PATH" - cargo --version - - run: - name: Tests - command: | - export PATH="$HOME/.cargo/bin:$PATH" - export PATH="`pwd`/cmake-3.4.1-Darwin-x86_64/CMake.app/Contents/bin:$PATH" - export LLVM_SYS_80_PREFIX="`pwd`/clang+llvm-8.0.0-x86_64-apple-darwin/" - # 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 - - run: - name: Check - command: | - export PATH="$HOME/.cargo/bin:$PATH" - export LLVM_SYS_80_PREFIX="`pwd`/clang+llvm-8.0.0-x86_64-apple-darwin/" - make check - - run: - name: Integration Tests - command: | - export PATH="$HOME/.cargo/bin:$PATH" - export PATH="`pwd`/cmake-3.4.1-Darwin-x86_64/CMake.app/Contents/bin:$PATH" - export LLVM_SYS_80_PREFIX="`pwd`/clang+llvm-8.0.0-x86_64-apple-darwin/" - make integration-tests - - save_cache: - paths: - - ~/.cargo/registry/ - - target/release/.fingerprint - - target/release/build - - target/release/deps - key: v8-cargo-cache-darwin-nightly-{{ arch }}-{{ checksum "Cargo.lock" }} - - test-and-build: - docker: - - image: circleci/rust:latest - steps: - - checkout - - run: - name: "Pull Submodules" - command: | - git submodule update --init - - run: - name: "Pull dependencies" - command: | - git submodule init - git submodule update - - restore_cache: - keys: - - v8-cargo-cache-linux-nightly-{{ arch }}-{{ checksum "Cargo.lock" }} - - run: - name: Install dependencies - command: | - sudo apt-get install -y cmake - curl -O https://releases.llvm.org/8.0.0/clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz - tar xf clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz - - run: rustup default nightly-2019-06-10 - - run: - name: Tests - command: | - export LLVM_SYS_80_PREFIX="`pwd`/clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04/" - make test - - run: - name: Release Build - command: | - export LLVM_SYS_80_PREFIX="`pwd`/clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-16.04/" - make release - cargo build --release --manifest-path wapm-cli/Cargo.toml --features "telemetry update-notifications" - mkdir -p artifacts - VERSION=$(cargo pkgid | cut -d# -f2 | cut -d: -f2) - # GIT_VERSION=$(git describe --exact-match --tags) - echo "${VERSION}" >> artifacts/version - echo "${CIRCLE_TAG}" >> artifacts/git_version - make build-install - cp ./wasmer.tar.gz ./artifacts/$(./scripts/binary-name.sh) - - run: - name: Dynamic library - command: | - cargo build --release --manifest-path lib/runtime-c-api/Cargo.toml - cp target/release/libwasmer_runtime_c_api.so ./artifacts - - persist_to_workspace: - root: . - paths: - - artifacts - - save_cache: - paths: - - /usr/local/cargo/registry - - target/release/.fingerprint - - target/release/build - - target/release/deps - - wapm-cli/target/release/.fingerprint - - wapm-cli/target/release/build - - wapm-cli/target/release/deps - key: v8-cargo-cache-linux-nightly-{{ arch }}-{{ checksum "Cargo.lock" }} - - test-and-build-macos: - macos: - xcode: "9.0" - steps: - - checkout - - run: - name: "Pull dependencies" - command: | - git submodule init - git submodule update - - restore_cache: - keys: - - v8-cargo-cache-darwin-nightly-{{ arch }}-{{ checksum "Cargo.lock" }} - - run: - name: Install crate dependencies - command: | - # 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" - # Installing LLVM outside of brew - curl -O https://releases.llvm.org/8.0.0/clang+llvm-8.0.0-x86_64-apple-darwin.tar.xz - tar xf clang+llvm-8.0.0-x86_64-apple-darwin.tar.xz - - run: - name: Install Rust - command: | - curl -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain nightly-2019-06-10 - export PATH="$HOME/.cargo/bin:$PATH" - cargo --version - - run: - name: Tests - command: | - export PATH="`pwd`/cmake-3.4.1-Darwin-x86_64/CMake.app/Contents/bin:$PATH" - export PATH="$HOME/.cargo/bin:$PATH" - export LLVM_SYS_80_PREFIX="`pwd`/clang+llvm-8.0.0-x86_64-apple-darwin/" - # 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 - - run: - name: Release Build - command: | - export PATH="`pwd`/cmake-3.4.1-Darwin-x86_64/CMake.app/Contents/bin:$PATH" - export PATH="$HOME/.cargo/bin:$PATH" - export LLVM_SYS_80_PREFIX="`pwd`/clang+llvm-8.0.0-x86_64-apple-darwin/" - make release - cargo build --release --manifest-path wapm-cli/Cargo.toml --features "telemetry update-notifications" - mkdir -p artifacts - make build-install - cp ./wasmer.tar.gz ./artifacts/$(./scripts/binary-name.sh) - # VERSION=$(cargo pkgid | cut -d# -f2 | cut -d: -f2) - # echo "${VERSION}" >> artifacts/version - - run: - name: Generate dynamic library for the runtime C API - command: | - export PATH="$HOME/.cargo/bin:$PATH" - cargo build --release --manifest-path lib/runtime-c-api/Cargo.toml - install_name_tool -id "@rpath/libwasmer_runtime_c_api.dylib" target/release/libwasmer_runtime_c_api.dylib - cp target/release/libwasmer_runtime_c_api.dylib ./artifacts - - persist_to_workspace: - root: . - paths: - - artifacts - - save_cache: - paths: - - ~/.cargo/registry/ - - target/release/.fingerprint - - target/release/build - - target/release/deps - - wapm-cli/target/release/.fingerprint - - wapm-cli/target/release/build - - wapm-cli/target/release/deps - key: v8-cargo-cache-darwin-nightly-{{ arch }}-{{ checksum "Cargo.lock" }} - - 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) - # VERSION=$(./artifacts/ --version) - VERSION=$(cat ./artifacts/version) - # VERSION_TAG=${CIRCLE_TAG} - VERSION_TAG=$(cat ./artifacts/git_version) - LATEST_VERSION_PUBLISHED_ON_CRATES=$(curl -s https://raw.githubusercontent.com/rust-lang/crates.io-index/master/wa/sm/wasmer-runtime | tail -n 1 | sed 's/.*"vers":"\([^"]*\)".*/\1/') - if ( [ $VERSION_TAG -ne $LATEST_VERSION_PUBLISHED_ON_CRATES ] ) then { echo "Could not detect version published to crates.io; make sure we've published the crates before publishing the Wasmer binary"; exit 1; } else { true; } fi - rm ./artifacts/version - rm ./artifacts/git_version - # VERSION_TAG=$(git describe --exact-match --tags) - #if [ "$VERSION" == "$VERSION_TAG" ]; then - # echo "Versions match, publishing to Github" - ghr -t ${GITHUB_TOKEN} -u ${CIRCLE_PROJECT_USERNAME} -r ${CIRCLE_PROJECT_REPONAME} -c ${CIRCLE_SHA1} ${VERSION} ./artifacts/ || true - #else - # echo "Versions don't match. Wasmer output version (wasmer --version) is ${VERSION} while Git tag is ${VERSION_TAG}" - # exit 1 - #fi - trigger-benchmark-build: - docker: - - image: circleci/rust:latest - steps: - - run: - name: "Trigger Benchmark Build" - command: | - if [[ -z "${CIRCLE_API_USER_TOKEN}" ]]; then - echo "CIRCLE_API_USER_TOKEN environment variable not set" - exit 1 - else - echo "Triggering benchmark build" - curl -u ${CIRCLE_API_USER_TOKEN} \ - -d build_parameters[CIRCLE_JOB]=bench \ - https://circleci.com/api/v1.1/project/github/wasmerio/wasmer-bench/tree/master - fi -workflows: - version: 2 - main: - jobs: - - changelog - - lint - - test: - filters: - branches: - only: - - trying - - staging - - test-rust-example: - filters: - branches: - only: - - trying - - staging - - test-macos: - filters: - branches: - only: - - trying - - staging - - test-and-build: - filters: - branches: - only: - - master - - test-and-build-macos: - filters: - branches: - only: - - master - - test-stable: - filters: - branches: - only: - - trying - - staging - - publish-github-release: - requires: - - lint - - test-and-build - - test-and-build-macos - filters: - branches: - only: master - - trigger-benchmark-build: - requires: - - test-and-build - - lint - filters: - branches: - only: master From 77518a927f02b02240ff3b6b94ec10cfbe52f5f4 Mon Sep 17 00:00:00 2001 From: Syrus Date: Sat, 31 Aug 2019 21:49:57 -0700 Subject: [PATCH 49/54] Fixed artifact releases --- azure-pipelines.yml | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 1571d7a0f..8562acf44 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -110,7 +110,7 @@ jobs: displayName: Build Distribution (Windows) condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT')) - publish: $(System.DefaultWorkingDirectory)/artifacts - artifact: release # -$(Agent.OS) + artifact: cli-$(Agent.OS) - job: Build_Library strategy: @@ -156,26 +156,28 @@ jobs: displayName: Build c-api (Windows) condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT')) - publish: $(System.DefaultWorkingDirectory)/artifacts - artifact: release # -$(Agent.OS) + artifact: library-$(Agent.OS) - job: Publish dependsOn: - Build_CLI - Build_Library steps: - - download: current - artifact: release + # - download: current + - task: DownloadPipelineArtifact@1 + inputs: + targetPath: $(Build.ArtifactStagingDirectory) - bash: | - ls $PIPELINE_WORKSPACE/release + ls $ARTIFACT_STAGING_DIRECTORY env: - PIPELINE_WORKSPACE: $(Pipeline.Workspace) + ARTIFACT_STAGING_DIRECTORY: $(Build.ArtifactStagingDirectory) - task: GithubRelease@0 displayName: "Create GitHub Release" inputs: gitHubConnection: wasmer repositoryName: wasmerio/wasmer tag: dev - assets: $(Pipeline.Workspace)/release + assets: $(Build.ArtifactStagingDirectory) trigger: branches: From 4ac4be283aa8e2500368aaa4d621bde4cc0a305b Mon Sep 17 00:00:00 2001 From: Syrus Date: Sat, 31 Aug 2019 23:15:48 -0700 Subject: [PATCH 50/54] Added changelog checks --- CHANGELOG.md | 1 + azure-pipelines.yml | 8 ++++++++ 2 files changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 62aa45ac7..a0e17d356 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ Blocks of changes will separated by version increments. Special thanks to @YaronWittenstein @penberg for their contributions. +- [#656](https://github.com/wasmerio/wasmer/issues/656) Move CI to Azure Pipelines - [#650](https://github.com/wasmerio/wasmer/issues/650) Implement `wasi::path_rename`, improve WASI FS public api, and allow open files to exist even when the underlying file is deleted - [#643](https://github.com/wasmerio/wasmer/issues/643) Implement `wasi::path_symlink` and improve WASI FS public api IO error reporting - [#608](https://github.com/wasmerio/wasmer/issues/608) Implement wasi syscalls `fd_allocate`, `fd_sync`, `fd_pread`, `path_link`, `path_filestat_set_times`; update WASI fs API in a WIP way; reduce coupling of WASI code to host filesystem; make debug messages from WASI more readable; improve rights-checking when calling syscalls; implement reference counting on inodes; misc bug fixes and improvements diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 8562acf44..47d1c8b47 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -2,6 +2,12 @@ name: $(Build.SourceBranch)-$(date:yyyyMMdd)$(rev:.r) # The Different jobs (lint, test, build to run) jobs: + - job: changelog + steps: + - bash: | + git --no-pager diff --name-only HEAD $(git merge-base HEAD master) --exit-code CHANGELOG.md + displayName: Changelog Updated + - job: lint pool: vmImage: "macos-10.14" @@ -169,10 +175,12 @@ jobs: targetPath: $(Build.ArtifactStagingDirectory) - bash: | ls $ARTIFACT_STAGING_DIRECTORY + displayName: List Artifacts env: ARTIFACT_STAGING_DIRECTORY: $(Build.ArtifactStagingDirectory) - task: GithubRelease@0 displayName: "Create GitHub Release" + condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/master')) inputs: gitHubConnection: wasmer repositoryName: wasmerio/wasmer From b84287f7a78152cc16a654a6591e0a65fc52b7b1 Mon Sep 17 00:00:00 2001 From: Syrus Date: Sat, 31 Aug 2019 23:17:31 -0700 Subject: [PATCH 51/54] Use azure-pipelines in bors --- bors.toml | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/bors.toml b/bors.toml index 5fadbdfa0..1003d9678 100644 --- a/bors.toml +++ b/bors.toml @@ -1,10 +1,5 @@ status = [ - "ci/circleci: lint", - "ci/circleci: test", - "ci/circleci: test-macos", - "ci/circleci: test-stable", - "ci/circleci: test-rust-example", - "continuous-integration/appveyor/branch" + "wasmerio.wasmer" ] required_approvals = 1 timeout_sec = 7200 From 9a6c7ed2eb1057bf48662c579c9b5cb17a3917cc Mon Sep 17 00:00:00 2001 From: Syrus Date: Sat, 31 Aug 2019 23:34:06 -0700 Subject: [PATCH 52/54] Updated azure pipelines --- azure-pipelines.yml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 47d1c8b47..480e21181 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -187,7 +187,14 @@ jobs: tag: dev assets: $(Build.ArtifactStagingDirectory) +# We only run the pipelines on PRs to Master +pr: + - master + +# Otherwise, we test in any of this branches (master or bors related) trigger: branches: include: - - "*" + - master + - staging + - trying From 5d1837b0c1a2d100a26bc39eb905d348ea0e2654 Mon Sep 17 00:00:00 2001 From: Syrus Date: Sat, 31 Aug 2019 23:39:35 -0700 Subject: [PATCH 53/54] Trigger only on the following branches --- azure-pipelines.yml | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 480e21181..5f6570a12 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -193,8 +193,6 @@ pr: # Otherwise, we test in any of this branches (master or bors related) trigger: - branches: - include: - - master - - staging - - trying + - master + - staging + - trying From 025d548090cdcb62de146be28aed90a202cca090 Mon Sep 17 00:00:00 2001 From: Syrus Date: Sat, 31 Aug 2019 23:49:30 -0700 Subject: [PATCH 54/54] Trying to improve conditions of pipelines --- azure-pipelines.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 5f6570a12..1dc3c9043 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -38,6 +38,7 @@ jobs: rust_toolchain: stable pool: vmImage: $(imageName) + condition: in(variables['Build.SourceBranch'], 'refs/heads/master', 'refs/heads/staging', 'refs/heads/trying') steps: - checkout: self submodules: true @@ -57,6 +58,7 @@ jobs: vmImage: "macos-10.14" variables: rust_toolchain: nightly-2019-06-10 + condition: in(variables['Build.SourceBranch'], 'refs/heads/master', 'refs/heads/staging', 'refs/heads/trying') steps: - checkout: self submodules: true @@ -84,6 +86,7 @@ jobs: # RUSTFLAGS: -Ctarget-feature=+crt-static pool: vmImage: $(imageName) + condition: in(variables['Build.SourceBranch'], 'refs/heads/master', 'refs/heads/staging', 'refs/heads/trying') steps: - checkout: self submodules: true @@ -134,6 +137,7 @@ jobs: # RUSTFLAGS: -Ctarget-feature=+crt-static pool: vmImage: $(imageName) + condition: in(variables['Build.SourceBranch'], 'refs/heads/master', 'refs/heads/staging', 'refs/heads/trying') steps: - checkout: self submodules: true