From 8e144a457b7eec347b2f4d6c58125d4cb3cfae77 Mon Sep 17 00:00:00 2001 From: Syrus Date: Mon, 30 Mar 2020 14:18:36 -0700 Subject: [PATCH] Adding Azure pipelines to handle ARM --- .azure/install-llvm.yml | 18 ++++++++- .azure/install-sccache.yml | 10 +++-- .travis.yml | 75 -------------------------------------- azure-pipelines.yml | 16 +++++--- 4 files changed, 34 insertions(+), 85 deletions(-) delete mode 100644 .travis.yml diff --git a/.azure/install-llvm.yml b/.azure/install-llvm.yml index 3b9ffb211..2d89f8351 100644 --- a/.azure/install-llvm.yml +++ b/.azure/install-llvm.yml @@ -26,8 +26,22 @@ steps: 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') + displayName: "Install LLVM (Linux X64)" + condition: and(eq(variables['Agent.OS'], 'Linux'), eq(variables['Agent.OSArchitecture'], 'X64')) + + - 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-aarch64-linux-gnu.tar.xz + tar xf clang+llvm-8.0.0-aarch64-linux-gnu.tar.xz + export LLVM_PATH="`pwd`/clang+llvm-8.0.0-aarch64-linux-gnu/" + echo "##vso[task.prependpath]$LLVM_PATH/bin" + echo "##vso[task.setvariable variable=LLVM_SYS_80_PREFIX]$LLVM_PATH" + fi + displayName: "Install LLVM (Linux ARM)" + condition: and(eq(variables['Agent.OS'], 'Linux'), eq(variables['Agent.OSArchitecture'], 'ARM64')) - bash: | set -ex diff --git a/.azure/install-sccache.yml b/.azure/install-sccache.yml index 091dcc572..3a158bc3f 100644 --- a/.azure/install-sccache.yml +++ b/.azure/install-sccache.yml @@ -9,8 +9,12 @@ steps: 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' ) + displayName: Install sccache - Linux X64 + condition: and(eq(variables['Agent.OS'], 'Linux'), eq(variables['Agent.OSArchitecture'], 'X64')) + # - bash: | + # echo "##vso[task.setvariable variable=RUSTC_WRAPPER;]sccache" + # displayName: Install sccache - Linux ARM + # condition: and(eq(variables['Agent.OS'], 'Linux'), eq(variables['Agent.OSArchitecture'], 'ARM64')) - bash: | set -ex brew install openssl@1.1 @@ -32,7 +36,7 @@ steps: $RUSTC_WRAPPER -s cat sccache.log displayName: "start sccache" - condition: not(eq( variables['Agent.OS'], 'Windows_NT' )) + condition: not(or(eq( variables['Agent.OS'], 'Windows_NT' ), eq(variables['Agent.OSArchitecture'], 'ARM64'))) env: SCCACHE_AZURE_CONNECTION_STRING: $(SCCACHE_AZURE_CONNECTION_STRING) SCCACHE_AZURE_BLOB_CONTAINER: $(SCCACHE_AZURE_BLOB_CONTAINER) diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index cda6825ee..000000000 --- a/.travis.yml +++ /dev/null @@ -1,75 +0,0 @@ -arch: - - arm64 - -language: rust -install: travis_retry -rust: - - nightly-2019-12-19 - -cache: - directories: - - /home/travis/.sccache/ - - /home/travis/.cargo/bin/ - -script: - # Sccache - # - 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 - - # - export RUSTC_WRAPPER=`pwd`/sccache-0.2.10-x86_64-unknown-linux-musl/sccache - - test -f /home/travis/.cargo/bin/sccache || travis_retry cargo install sccache - - export RUSTC_WRAPPER=/home/travis/.cargo/bin/sccache - - mkdir -p /home/travis/.sccache/ - - export SCCACHE_DIR="/home/travis/.sccache/" - - SCCACHE_ERROR_LOG=`pwd`/sccache.log RUST_LOG=debug $RUSTC_WRAPPER --start-server - - $RUSTC_WRAPPER -s - - # Tests - - make spectests-singlepass - -before_deploy: - # Release - - make release-singlepass - - mkdir -p artifacts - # Make capi - ## Disable capi tests for now: - ## They are failing because trampolines are not yet implemented for ARM - # - make test-capi-singlepass - - make capi-singlepass - - make build-capi-package - - cp ./wasmer-c-api.tar.gz ./artifacts/$(./scripts/capi-name.sh) - # Build WAPM - - make build-wapm - # Make package - - make build-install-package - - cp ./wasmer.tar.gz ./artifacts/$(./scripts/binary-name.sh) - -# before_deploy: -# # Set up git user name and tag this commit -# - git config --local user.name "Syrus Akbary" -# - git config --local user.email "syrus@wasmer.io" -# - export TRAVIS_TAG="0.10.2" -# # - git tag $TRAVIS_TAG - -deploy: - provider: releases - file_glob: true - file: artifacts/* - api_key: $GITHUB_OAUTH_TOKEN - # This is set to the previous artifacts are not deleted by travis - skip_cleanup: true - on: - tags: true - # branch: feature/singlepass-aarch64 - -addons: - apt: - packages: - - cmake - -branches: - only: - - master - - staging - - trying - # Making sure Travis runs on new Tags - - /^\d+\.\d+(\.\d+)?(-\S*)?$/ - - /^v\d+\.\d+(\.\d+)?(-\S*)?$/ diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 8665c1dba..7aae36476 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -81,7 +81,10 @@ jobs: condition: and(succeeded(), eq(variables['Agent.OS'], 'Darwin')) - bash: make test displayName: Tests (*nix) - condition: and(succeeded(), not(eq(variables['Agent.OS'], 'Windows_NT'))) + condition: and(succeeded(), eq(variables['Agent.OSArchitecture'], 'X64'), not(eq(variables['Agent.OS'], 'Windows_NT'))) + - bash: make spectests-singlepass + displayName: Tests (Linux ARM) + condition: and(succeeded(), eq(variables['Agent.OSArchitecture'], 'ARM64')) - bash: make spectests-cranelift displayName: Tests (Windows) condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT')) @@ -134,11 +137,14 @@ jobs: mkdir -p artifacts displayName: Create Artifacts Dir - bash: make release - displayName: Build (*nix) - condition: and(succeeded(), not(eq(variables['Agent.OS'], 'Windows_NT'))) + displayName: Build (*nix X64) + condition: and(succeeded(), not(eq(variables['Agent.OS'], 'Windows_NT')), eq(variables['Agent.OSArchitecture'], 'X64')) - bash: sudo apt-get install musl-tools && make release-musl displayName: Build (Linux, x86_64-unknown-linux-musl) - condition: and(succeeded(), eq(variables['Agent.OS'], 'Linux')) + condition: and(succeeded(), eq(variables['Agent.OS'], 'Linux'), eq(variables['Agent.OSArchitecture'], 'X64')) + - bash: make release-singlepass + displayName: Build (ARM) + condition: and(succeeded(), not(eq(variables['Agent.OS'], 'Windows_NT')), eq(variables['Agent.OSArchitecture'], 'ARM64')) - bash: make release-llvm displayName: Build (Windows) condition: and(succeeded(), eq(variables['Agent.OS'], 'Windows_NT')) @@ -204,7 +210,7 @@ jobs: - bash: | make test-capi displayName: Test c-api - condition: and(succeeded(), not(eq(variables['Agent.OS'], 'Windows_NT'))) + condition: and(succeeded(), eq(variables['Agent.OSArchitecture'], 'X64'), not(eq(variables['Agent.OS'], 'Windows_NT'))) - bash: | make capi displayName: Build c-api