summaryrefslogtreecommitdiff
path: root/getrandom/.travis.yml
diff options
context:
space:
mode:
Diffstat (limited to 'getrandom/.travis.yml')
-rw-r--r--getrandom/.travis.yml221
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