diff options
Diffstat (limited to 'getrandom/.travis.yml')
-rw-r--r-- | getrandom/.travis.yml | 221 |
1 files changed, 221 insertions, 0 deletions
diff --git a/getrandom/.travis.yml b/getrandom/.travis.yml new file mode 100644 index 0000000..bdd9e72 --- /dev/null +++ b/getrandom/.travis.yml @@ -0,0 +1,221 @@ +language: rust +sudo: false + +matrix: + include: + - name: "Linux, 1.32.0" + rust: 1.32.0 + os: linux + + - name: "OSX, 1.32.0" + rust: 1.32.0 + os: osx + + - name: "Linux, stable" + rust: stable + + - name: "OSX+iOS, stable" + rust: stable + os: osx + install: + - rustup target add aarch64-apple-ios + script: + - cargo test + - cargo test --examples + - cargo build --target aarch64-apple-ios + + - name: "Linux, beta" + rust: beta + + - name: "WASM via emscripten, stdweb, wasm-bindgen and WASI" + rust: nightly + addons: + firefox: latest + chrome: stable + install: + - rustup target add wasm32-unknown-unknown + - rustup target add wasm32-unknown-emscripten + - rustup target add asmjs-unknown-emscripten + - rustup target add wasm32-wasi + # Get latest geckodriver + - export VERSION=$(curl -s https://api.github.com/repos/mozilla/geckodriver/releases/latest | jq -r ".tag_name") + - wget -O geckodriver.tar.gz https://github.com/mozilla/geckodriver/releases/download/$VERSION/geckodriver-$VERSION-linux64.tar.gz + - tar -xzf geckodriver.tar.gz + # Get latest chromedirver + - export VERSION=$(wget -q -O - https://chromedriver.storage.googleapis.com/LATEST_RELEASE) + - wget -O chromedriver.zip https://chromedriver.storage.googleapis.com/$VERSION/chromedriver_linux64.zip + - unzip chromedriver.zip + # Get cargo-web + - export VERSION=0.6.26 # Pin version for stability + - wget -O cargo-web.gz https://github.com/koute/cargo-web/releases/download/$VERSION/cargo-web-x86_64-unknown-linux-gnu.gz + - gunzip cargo-web.gz + - chmod +x cargo-web + # Get wasmtime + - export VERSION=v0.3.0 # Pin version for stability + - wget -O wasmtime.tar.xz https://github.com/CraneStation/wasmtime/releases/download/$VERSION/wasmtime-$VERSION-x86_64-linux.tar.xz + - tar -xf wasmtime.tar.xz --strip-components=1 + # Get wasm-bindgen-test-runner which matches our wasm-bindgen version + - export VERSION=$(cargo metadata --format-version=1 | jq -r '.packages[] | select ( .name == "wasm-bindgen" ) | .version') + - wget -O wasm-bindgen.tar.gz https://github.com/rustwasm/wasm-bindgen/releases/download/$VERSION/wasm-bindgen-$VERSION-x86_64-unknown-linux-musl.tar.gz + - tar -xzf wasm-bindgen.tar.gz --strip-components=1 + # Place the runner binaries in our PATH + - mv cargo-web wasmtime wasm-bindgen-test-runner $HOME/.cargo/bin + # Download and setup emscripten + - cargo web prepare-emscripten + env: EMCC_CFLAGS="-s ERROR_ON_UNDEFINED_SYMBOLS=0" + script: + # We cannot run emscripten test binaries (see rust-lang/rust#63649). + # However, we can still build and link all tests to make sure that works. + # This is actually useful as it finds stuff such as rust-random/rand#669 + - cargo web test --target wasm32-unknown-emscripten --no-run + - cargo web test --target asmjs-unknown-emscripten --no-run + # wasi tests + - cargo test --target wasm32-wasi + # stdweb tests (Node, Chrome) + - cargo web test --nodejs --target=wasm32-unknown-unknown --features=stdweb + - cargo web test --target=wasm32-unknown-unknown --features=stdweb + # wasm-bindgen tests (Node, Firefox, Chrome) + - cargo test --target wasm32-unknown-unknown --features=wasm-bindgen + - GECKODRIVER=$PWD/geckodriver cargo test --target wasm32-unknown-unknown --features=test-in-browser + - CHROMEDRIVER=$PWD/chromedriver cargo test --target wasm32-unknown-unknown --features=test-in-browser + + - name: "Linux, nightly, docs" + rust: nightly + os: linux + install: + - cargo --list | egrep "^\s*deadlinks$" -q || cargo install cargo-deadlinks + - cargo deadlinks -V + script: + - cargo test + - cargo test --benches + - cargo test --examples + # remove cached documentation, otherwise files from previous PRs can get included + - rm -rf target/doc + - cargo doc --no-deps --all --features=std,log + - cargo deadlinks --dir target/doc + # also test minimum dependency versions are usable + - cargo generate-lockfile -Z minimal-versions + - cargo test + + - name: "OSX, nightly, docs" + rust: nightly + os: osx + install: + - cargo --list | egrep "^\s*deadlinks$" -q || cargo install cargo-deadlinks + - cargo deadlinks -V + script: + - cargo test + - cargo test --benches + - cargo test --examples + # remove cached documentation, otherwise files from previous PRs can get included + - rm -rf target/doc + - cargo doc --no-deps --all --features=std,log + - cargo deadlinks --dir target/doc + # also test minimum dependency versions are usable + - cargo generate-lockfile -Z minimal-versions + - cargo test + + - name: "cross-platform build only" + rust: nightly + install: + - rustup target add x86_64-sun-solaris + - rustup target add x86_64-unknown-cloudabi + - rustup target add x86_64-unknown-freebsd + - rustup target add x86_64-fuchsia + - rustup target add x86_64-unknown-netbsd + - rustup target add x86_64-unknown-redox + - rustup target add x86_64-fortanix-unknown-sgx + # For no_std targets + - rustup component add rust-src + - cargo install cargo-xbuild || true + script: + - cargo build --target=x86_64-sun-solaris + - cargo build --target=x86_64-unknown-cloudabi + - cargo build --target=x86_64-unknown-freebsd + - cargo build --target=x86_64-fuchsia + - cargo build --target=x86_64-unknown-netbsd + - cargo build --target=x86_64-unknown-redox + - cargo build --target=x86_64-fortanix-unknown-sgx + - cargo xbuild --target=x86_64-unknown-uefi + - cargo xbuild --target=x86_64-unknown-hermit + - cargo xbuild --target=x86_64-unknown-l4re-uclibc + - cargo xbuild --target=x86_64-wrs-vxworks + # also test minimum dependency versions are usable + - cargo generate-lockfile -Z minimal-versions + - cargo build --target=x86_64-sun-solaris + - cargo build --target=x86_64-unknown-cloudabi + - cargo build --target=x86_64-unknown-freebsd + - cargo build --target=x86_64-fuchsia + - cargo build --target=x86_64-unknown-netbsd + - cargo build --target=x86_64-unknown-redox + - cargo build --target=x86_64-fortanix-unknown-sgx + - cargo xbuild --target=x86_64-unknown-uefi + - cargo xbuild --target=x86_64-unknown-hermit + - cargo xbuild --target=x86_64-unknown-l4re-uclibc + - cargo xbuild --target=x86_64-uwp-windows-gnu + + # Trust cross-built/emulated targets. We must repeat all non-default values. + - name: "Linux (MIPS, big-endian)" + env: TARGET=mips-unknown-linux-gnu + rust: stable + sudo: required + dist: trusty + services: docker + install: + - sh utils/ci/install.sh + - source ~/.cargo/env || true + script: + - bash utils/ci/script.sh + + - name: "Android (ARMv7)" + env: TARGET=armv7-linux-androideabi + rust: stable + sudo: required + dist: trusty + services: docker + install: + - sh utils/ci/install.sh + - source ~/.cargo/env || true + script: + - bash utils/ci/script.sh + + - name: "rustfmt" + rust: stable + install: + - rustup component add rustfmt + script: + - cargo fmt --all -- */*.rs --check + + allow_failures: + # Formatting errors should appear in Travis, but not break the build. + - name: "rustfmt" + +before_install: + - set -e + - rustup self update + +before_script: + - export RUSTFLAGS="-D warnings" + +script: + - cargo test + - cargo test --examples + +after_script: set +e + +cache: + cargo: true + directories: + - .local/share/cargo-web + +before_cache: + # Travis can't cache files that are not readable by "others" + - chmod -R a+r $HOME/.cargo + +notifications: + email: + on_success: never + +branches: + only: + - master |