diff --git a/azure-pipelines.yml b/azure-pipelines.yml index c32262b..ca02a51 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -11,38 +11,43 @@ jobs: matrix: aarch64: TARGET: aarch64-unknown-linux-gnu - arm: - TARGET: arm-unknown-linux-gnueabi - armhf: - TARGET: arm-unknown-linux-gnueabihf - i586: - TARGET: i586-unknown-linux-gnu - i686: - TARGET: i686-unknown-linux-gnu - mips: - TARGET: mips-unknown-linux-gnu - mips64: - TARGET: mips64-unknown-linux-gnuabi64 - mips64el: - TARGET: mips64el-unknown-linux-gnuabi64 - mipsel: - TARGET: mipsel-unknown-linux-gnu - powerpc: - TARGET: powerpc-unknown-linux-gnu - powerpc64: - TARGET: powerpc64-unknown-linux-gnu - powerpc64le: - TARGET: powerpc64le-unknown-linux-gnu + # arm: + # TARGET: arm-unknown-linux-gnueabi + # armhf: + # TARGET: arm-unknown-linux-gnueabihf + # i586: + # TARGET: i586-unknown-linux-gnu + # i686: + # TARGET: i686-unknown-linux-gnu + # mips: + # TARGET: mips-unknown-linux-gnu + # mips64: + # TARGET: mips64-unknown-linux-gnuabi64 + # mips64el: + # TARGET: mips64el-unknown-linux-gnuabi64 + # mipsel: + # TARGET: mipsel-unknown-linux-gnu + # powerpc: + # TARGET: powerpc-unknown-linux-gnu + # powerpc64: + # TARGET: powerpc64-unknown-linux-gnu + # powerpc64le: + # TARGET: powerpc64le-unknown-linux-gnu thumbv6m: TARGET: thumbv6m-linux-eabi + XARGO: 1 thumbv7em: TARGET: thumbv7em-linux-eabi + XARGO: 1 thumbv7emhf: TARGET: thumbv7em-linux-eabihf + XARGO: 1 thumbv7m: TARGET: thumbv7m-linux-eabi + XARGO: 1 wasm32: TARGET: wasm32-unknown-unknown + ONLY_BUILD: 1 x86_64: TARGET: x86_64-unknown-linux-gnu @@ -55,8 +60,8 @@ jobs: matrix: x86_64: TARGET: x86_64-apple-darwin - i686: - TARGET: i686-apple-darwin + # i686: + # TARGET: i686-apple-darwin - job: Windows pool: @@ -67,9 +72,9 @@ jobs: matrix: i686-msvc: TARGET: i686-pc-windows-msvc - x86_64-msvc: - TARGET: x86_64-pc-windows-msvc - i686-gnu: - TARGET: i686-pc-windows-gnu + # x86_64-msvc: + # TARGET: x86_64-pc-windows-msvc + # i686-gnu: + # TARGET: i686-pc-windows-gnu x86_64-gnu: TARGET: x86_64-pc-windows-gnu diff --git a/ci/azure-steps.yml b/ci/azure-steps.yml index 19972a7..c8a9540 100644 --- a/ci/azure-steps.yml +++ b/ci/azure-steps.yml @@ -4,13 +4,23 @@ steps: - template: azure-install-rust.yml + - script: rustup component add rust-src + displayName: Install Rust sources + condition: eq( variables['XARGO'], '1' ) + - bash: rustup target add $TARGET - displayName: Install compilation target + displayName: Install Rust target + condition: ne( variables['XARGO'], '1' ) - bash: ./ci/run.sh $TARGET condition: ne( variables['Agent.OS'], 'Linux' ) displayName: Run test script - - bash: cargo generate-lockfile && ./ci/run-docker.sh $TARGET + - bash: | + if [ "$ONLY_BUILD" = "1" ]; then + cargo build --target $TARGET + else + cargo generate-lockfile && ./ci/run-docker.sh $TARGET + fi condition: eq( variables['Agent.OS'], 'Linux' ) displayName: Run docker test script diff --git a/ci/run-docker.sh b/ci/run-docker.sh index 6b3066e..5c2e065 100755 --- a/ci/run-docker.sh +++ b/ci/run-docker.sh @@ -18,6 +18,7 @@ run() { --user $(id -u):$(id -g) \ -e CARGO_HOME=/cargo \ -e CARGO_TARGET_DIR=/target \ + -e XARGO \ -v $HOME/.cargo:/cargo \ -v `pwd`/target:/target \ -v `pwd`:/checkout:ro \ diff --git a/ci/run.sh b/ci/run.sh index b777522..589553a 100755 --- a/ci/run.sh +++ b/ci/run.sh @@ -3,14 +3,10 @@ set -ex # FIXME(japarix/xargo#186) this shouldn't be necessary export RUST_TARGET_PATH=`pwd` -case $1 in - thumb*) - cargo=xargo - ;; - *) - cargo=cargo - ;; -esac +cargo=cargo +if [ "$XARGO" = "1" ]; then + cargo=xargo +fi INTRINSICS_FEATURES="c" @@ -22,34 +18,31 @@ if [ -z "$INTRINSICS_FAILS_WITH_MEM_FEATURE" ]; then fi # Test our implementation -case $1 in - thumb*) - run="xargo test --manifest-path testcrate/Cargo.toml --target $1" - for t in $(ls testcrate/tests); do - t=${t%.rs} +if [ "$XARGO" = "1" ]; then + run="xargo test --manifest-path testcrate/Cargo.toml --target $1" + for t in $(ls testcrate/tests); do + t=${t%.rs} - RUSTFLAGS="-C debug-assertions=no -C lto" \ - CARGO_INCREMENTAL=0 \ - $run --test $t --no-default-features --features 'mem c' --no-run - qemu-arm-static target/${1}/debug/$t-* - done + RUSTFLAGS="-C debug-assertions=no -C lto" \ + CARGO_INCREMENTAL=0 \ + $run --test $t --no-default-features --features 'mem c' --no-run + qemu-arm-static target/${1}/debug/$t-* + done - for t in $(ls testcrate/tests); do - t=${t%.rs} - RUSTFLAGS="-C lto" \ - CARGO_INCREMENTAL=0 \ - $run --test $t --no-default-features --features 'mem c' --no-run --release - qemu-arm-static target/${1}/release/$t-* - done - ;; - *) - run="cargo test --manifest-path testcrate/Cargo.toml --target $1" - $run - $run --release - $run --features c - $run --features c --release - ;; -esac + for t in $(ls testcrate/tests); do + t=${t%.rs} + RUSTFLAGS="-C lto" \ + CARGO_INCREMENTAL=0 \ + $run --test $t --no-default-features --features 'mem c' --no-run --release + qemu-arm-static target/${1}/release/$t-* + done +else + run="cargo test --manifest-path testcrate/Cargo.toml --target $1" + $run + $run --release + $run --features c + $run --features c --release +fi PREFIX=$(echo $1 | sed -e 's/unknown-//')- case $1 in