mirror of
https://github.com/fluencelabs/wasmer
synced 2025-04-19 07:22:14 +00:00
Merge pull request #656 from wasmerio/feature/azure-pipelines
Initial version of Azure pipelines
This commit is contained in:
commit
329b283937
@ -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
|
|
43
.azure/install-cmake.yml
Normal file
43
.azure/install-cmake.yml
Normal file
@ -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
|
18
.azure/install-innosetup.yml
Normal file
18
.azure/install-innosetup.yml
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
# This template installs InnoSetup
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- bash: |
|
||||||
|
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')
|
52
.azure/install-llvm.yml
Normal file
52
.azure/install-llvm.yml
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
# 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_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')
|
||||||
|
|
||||||
|
- 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_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')
|
||||||
|
|
||||||
|
- bash: |
|
||||||
|
set -ex
|
||||||
|
if [ -x "`command -v llvm-config`" ]; then
|
||||||
|
echo `command -v cmake` `llvm-config --version` installed
|
||||||
|
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_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'
|
||||||
|
fi
|
||||||
|
displayName: "Install LLVM (Windows)"
|
||||||
|
condition: eq(variables['Agent.OS'], 'Windows_NT')
|
||||||
|
|
||||||
|
- bash: |
|
||||||
|
set -ex
|
||||||
|
env
|
||||||
|
llvm-config --version
|
||||||
|
displayName: LLVM version
|
43
.azure/install-rust.yml
Normal file
43
.azure/install-rust.yml
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
# 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:
|
||||||
|
- bash: |
|
||||||
|
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
|
||||||
|
displayName: "Install Rust (Linux, macOS)"
|
||||||
|
condition: not(eq(variables['Agent.OS'], 'Windows_NT'))
|
||||||
|
|
||||||
|
- bash: |
|
||||||
|
set -ex
|
||||||
|
if [ -x "`command -v rustup`" ]; then
|
||||||
|
echo `command -v rustup` `rustup -V` installed
|
||||||
|
else
|
||||||
|
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')
|
||||||
|
|
||||||
|
- bash: |
|
||||||
|
set -ex
|
||||||
|
rustup update $RUST_TOOLCHAIN
|
||||||
|
rustup default $RUST_TOOLCHAIN
|
||||||
|
|
||||||
|
rustc -Vv
|
||||||
|
cargo -V
|
||||||
|
displayName: Install Rust
|
||||||
|
|
||||||
|
- bash: echo "##vso[task.setvariable variable=RUSTC_VERSION;]`rustc --version`"
|
||||||
|
displayName: Set rustc version in env var
|
37
.azure/install-sccache.yml
Normal file
37
.azure/install-sccache.yml
Normal file
@ -0,0 +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 -ex
|
||||||
|
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: |
|
||||||
|
set -ex
|
||||||
|
env
|
||||||
|
SCCACHE_ERROR_LOG=`pwd`/sccache.log RUST_LOG=debug $RUSTC_WRAPPER --start-server
|
||||||
|
$RUSTC_WRAPPER -s
|
||||||
|
cat sccache.log
|
||||||
|
displayName: "start sccache"
|
||||||
|
env:
|
||||||
|
SCCACHE_AZURE_CONNECTION_STRING: $(SCCACHE_AZURE_CONNECTION_STRING)
|
||||||
|
SCCACHE_AZURE_BLOB_CONTAINER: $(SCCACHE_AZURE_BLOB_CONTAINER)
|
@ -1,442 +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
|
|
||||||
make compile-bench-singlepass
|
|
||||||
make compile-bench-llvm
|
|
||||||
# TODO: add compile-bench-clif when it works
|
|
||||||
- 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
|
|
@ -8,6 +8,7 @@ Blocks of changes will separated by version increments.
|
|||||||
|
|
||||||
Special thanks to @YaronWittenstein @penberg for their contributions.
|
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
|
- [#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
|
- [#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
|
- [#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
|
||||||
|
24
Makefile
24
Makefile
@ -127,9 +127,20 @@ debug:
|
|||||||
install:
|
install:
|
||||||
cargo install --path .
|
cargo install --path .
|
||||||
|
|
||||||
check:
|
# Checks
|
||||||
cargo check --release --features backend-singlepass,backend-llvm,loader-kernel
|
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:
|
release:
|
||||||
cargo build --release --features backend-singlepass,backend-llvm,loader-kernel
|
cargo build --release --features backend-singlepass,backend-llvm,loader-kernel
|
||||||
|
|
||||||
@ -152,15 +163,6 @@ bench-clif:
|
|||||||
bench-llvm:
|
bench-llvm:
|
||||||
cargo bench --all --no-default-features --features "backend-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 utils
|
||||||
build-install:
|
build-install:
|
||||||
mkdir -p ./install/bin
|
mkdir -p ./install/bin
|
||||||
|
@ -5,17 +5,17 @@
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<a href="https://circleci.com/gh/wasmerio/wasmer/">
|
<a href="https://dev.azure.com/wasmerio/wasmer/_build/latest?definitionId=3&branchName=master">
|
||||||
<img src="https://img.shields.io/circleci/project/github/wasmerio/wasmer/master.svg" alt="Build Status">
|
<img src="https://img.shields.io/azure-devops/build/wasmerio/wasmer/3.svg?style=flat-square" alt="Build Status">
|
||||||
</a>
|
</a>
|
||||||
<a href="https://github.com/wasmerio/wasmer/blob/master/LICENSE">
|
<a href="https://github.com/wasmerio/wasmer/blob/master/LICENSE">
|
||||||
<img src="https://img.shields.io/github/license/wasmerio/wasmer.svg" alt="License">
|
<img src="https://img.shields.io/github/license/wasmerio/wasmer.svg?style=flat-square" alt="License">
|
||||||
</a>
|
</a>
|
||||||
<a href="https://spectrum.chat/wasmer">
|
<a href="https://spectrum.chat/wasmer">
|
||||||
<img src="https://withspectrum.github.io/badge/badge.svg" alt="Join the Wasmer Community">
|
<img src="https://withspectrum.github.io/badge/badge.svg" alt="Join the Wasmer Community">
|
||||||
</a>
|
</a>
|
||||||
<a href="https://twitter.com/wasmerio">
|
<a href="https://twitter.com/wasmerio">
|
||||||
<img alt="Follow @wasmerio on Twitter" src="https://img.shields.io/twitter/follow/wasmerio?label=%40wasmerio&style=social">
|
<img alt="Follow @wasmerio on Twitter" src="https://img.shields.io/twitter/follow/wasmerio?label=%40wasmerio&style=flat-square">
|
||||||
</a>
|
</a>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
202
azure-pipelines.yml
Normal file
202
azure-pipelines.yml
Normal file
@ -0,0 +1,202 @@
|
|||||||
|
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"
|
||||||
|
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
|
||||||
|
|
||||||
|
- 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)
|
||||||
|
condition: in(variables['Build.SourceBranch'], 'refs/heads/master', 'refs/heads/staging', 'refs/heads/trying')
|
||||||
|
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: Check
|
||||||
|
pool:
|
||||||
|
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
|
||||||
|
- 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_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)
|
||||||
|
condition: in(variables['Build.SourceBranch'], 'refs/heads/master', 'refs/heads/staging', 'refs/heads/trying')
|
||||||
|
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: cli-$(Agent.OS)
|
||||||
|
|
||||||
|
- job: Build_Library
|
||||||
|
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)
|
||||||
|
condition: in(variables['Build.SourceBranch'], 'refs/heads/master', 'refs/heads/staging', 'refs/heads/trying')
|
||||||
|
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: library-$(Agent.OS)
|
||||||
|
|
||||||
|
- job: Publish
|
||||||
|
dependsOn:
|
||||||
|
- Build_CLI
|
||||||
|
- Build_Library
|
||||||
|
steps:
|
||||||
|
# - download: current
|
||||||
|
- task: DownloadPipelineArtifact@1
|
||||||
|
inputs:
|
||||||
|
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
|
||||||
|
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:
|
||||||
|
- master
|
||||||
|
- staging
|
||||||
|
- trying
|
@ -1,10 +1,5 @@
|
|||||||
status = [
|
status = [
|
||||||
"ci/circleci: lint",
|
"wasmerio.wasmer"
|
||||||
"ci/circleci: test",
|
|
||||||
"ci/circleci: test-macos",
|
|
||||||
"ci/circleci: test-stable",
|
|
||||||
"ci/circleci: test-rust-example",
|
|
||||||
"continuous-integration/appveyor/branch"
|
|
||||||
]
|
]
|
||||||
required_approvals = 1
|
required_approvals = 1
|
||||||
timeout_sec = 7200
|
timeout_sec = 7200
|
||||||
|
@ -18,7 +18,7 @@ add_executable(test-context test-context.c)
|
|||||||
add_executable(test-module-import-instantiate test-module-import-instantiate.c)
|
add_executable(test-module-import-instantiate test-module-import-instantiate.c)
|
||||||
|
|
||||||
find_library(
|
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/
|
PATHS ${CMAKE_SOURCE_DIR}/../../../target/release/
|
||||||
)
|
)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user