wasm-bindgen/.travis.yml
2018-07-30 11:07:07 -07:00

175 lines
6.1 KiB
YAML

language: rust
sudo: false
INSTALL_NODE_VIA_NVM: &INSTALL_NODE_VIA_NVM
- rustup target add wasm32-unknown-unknown
- curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash
- source ~/.nvm/nvm.sh
- nvm install v10.5
DEPLOY_TO_GITHUB: &DEPLOY_TO_GITHUB
before_deploy:
|
name="wasm-bindgen-$TRAVIS_TAG-$TARGET"
mkdir "$name"
cp "target/$TARGET/release/wasm-bindgen" "$name/"
cp "target/$TARGET/release/wasm2es6js" "$name/"
cp "target/$TARGET/release/wasm-bindgen-test-runner" "$name/"
cp README.md LICENSE-MIT LICENSE-APACHE "$name/"
tar czvf "$name.tar.gz" "$name"
deploy:
api_key:
secure: "qCiELnEnvyKpWHDttgTNf+ElZGbWlvthu5aOIj5nYfov+h6g1+mkWnDFP6at/WPlE78zE/f/z/dL2KB2I7w/cxH/T4P1nWh0A9DvrpY6hqWkK2pgN5dPeWE/a4flI7AdH0A6wMRw7m00uMgDjlzN78v7XueccpJCxSO5allQN5jweAQvMX2QA07TbLRJc7Lq6lfVwSf8OfrcO8qCbcIzJTsC4vtbh6jkUYg1OAaU2tAYlskBy9ZYmHWCExIAu/zxzcJY9OpApPD9Ea4CyrsfjniAyRBJ87Weh/sP4XhiWeRPVmvA4HAzv4Pps9ps+Ar5QmsX53rhKQ3id7/VPR8ggaAHxrYUiJPvJRtbP6cKKOlDiK0ooP+vI4vjxWeNVj9ibEolSYOlT0ENIvPK1BppA6VgAoJOjwPr0Q16Ma4AmvLkIkowJiXCm2Jlje/5c0vPEAGJVgUtkj3jFQzgXwyEMpzxUlhHmYpmnfeaM0tK/Kiiwe1monL/ydMlyfV55kNylylCg+XoTnf420AFChKbD4DM5Z7ZsjU9g8fF3LUoN0sKpmLDp+GvwjLi9YtGogWB71Q2MFp43MSL0YLshkyYYoZKrVMiy5J9hKNUxhT2jNEq53Z69syIHHMCxHL9GoAcuHxIKOA7uTMW0aCoyy2I+dfAKKsrUGwGYaNC5LZdUQI="
file_glob: true
file:
- wasm-bindgen-$TRAVIS_TAG-$TARGET.tar.gz
on:
tags: true
provider: releases
skip_cleanup: true
if: branch = master OR branch =~ /^\d/
matrix:
include:
# Tests pass on nightly
- rust: nightly
env: JOB=test-bindgen
before_install: *INSTALL_NODE_VIA_NVM
install:
- npm ci --verbose
script:
- cargo test --release
# Check JS output from all tests against eslint
- npm run run-lint-generated-tests
# Check Examples against eslint
- npm run run-lint-examples
addons:
firefox: latest
if: branch = master
# All examples work
- rust: nightly
env: JOB=examples-build
before_install: *INSTALL_NODE_VIA_NVM
install: npm ci --verbose
script:
- |
for dir in `ls examples | grep -v README | grep -v asm.js | grep -v no_modules`; do
(cd examples/$dir &&
sed -i 's/: "webpack-dev-server"/: "webpack"/' package.json &&
sed -i 's/npm install//' build.sh &&
ln -s ../../node_modules . &&
./build.sh) || exit 1;
done
if: branch = master
# The `web-sys` crate's tests pass on nightly.
- rust: nightly
env: JOB=test-web-sys
before_install: *INSTALL_NODE_VIA_NVM
install:
- npm ci --verbose
script: cargo test --manifest-path crates/web-sys/Cargo.toml
addons:
firefox: latest
if: branch = master
# The `js-sys` crate's tests pass on nightly.
- rust: nightly
env: JOB=test-js-sys
before_install: *INSTALL_NODE_VIA_NVM
install:
- curl --retry 5 -LO https://github.com/mozilla/geckodriver/releases/download/v0.21.0/geckodriver-v0.21.0-linux64.tar.gz
- tar xf geckodriver-v0.21.0-linux64.tar.gz
- export GECKODRIVER=`pwd`/geckodriver
script:
- cargo test -p js-sys
- cargo test -p js-sys --target wasm32-unknown-unknown
addons:
firefox: latest
if: branch = master
# Tests pass on nightly using yarn
- rust: nightly
env: JOB=test-yarn-smoke
before_install: *INSTALL_NODE_VIA_NVM
install:
- curl -o- -L https://yarnpkg.com/install.sh | bash -s -- --version 1.7.0
- export PATH=$HOME/.yarn/bin:$PATH
- yarn install --freeze-lockfile
script: cargo test api::works
if: branch = master
# WebIDL tests pass on nightly
- rust: nightly
env: JOB=test-webidl
before_install: *INSTALL_NODE_VIA_NVM
script:
- cargo test -p wasm-bindgen-webidl
- cargo test -p webidl-tests --target wasm32-unknown-unknown
if: branch = master
# Dist linux binary
- rust: nightly
env: JOB=dist-linux TARGET=x86_64-unknown-linux-musl
before_script: rustup target add $TARGET
install:
- travis_retry curl -O https://www.openssl.org/source/openssl-1.0.2o.tar.gz
- tar xf openssl-1.0.2o.tar.gz
- (cd openssl-1.0.2o &&
CC=musl-gcc ./Configure --prefix=$HOME/openssl-musl no-dso no-ssl2 no-ssl3 linux-x86_64 -fPIC &&
make -j$(nproc) &&
make install)
- export OPENSSL_DIR=$HOME/openssl-musl
script: cargo build --manifest-path crates/cli/Cargo.toml --release --target $TARGET
addons:
apt:
packages:
- musl-tools
<<: *DEPLOY_TO_GITHUB
# Dist OSX binary
- rust: nightly
os: osx
env: JOB=dist-osx MACOSX_DEPLOYMENT_TARGET=10.7 TARGET=x86_64-apple-darwin
script: cargo build --manifest-path crates/cli/Cargo.toml --release --target $TARGET
<<: *DEPLOY_TO_GITHUB
# CLI builds on stable
- rust: stable
env: JOB=check-stable-cli
script: cargo check --manifest-path crates/cli/Cargo.toml
if: branch = master
# CLI builds on nightly
- rust: nightly
env: JOB=check-nightly-cli
script: cargo check --manifest-path crates/cli/Cargo.toml
if: branch = master
# Build documentation for the gh-pages branch
- rust: nightly
env: JOB=guide-build-and-deploy
cache:
directories:
- $HOME/.cargo
before_script:
- (test -x $HOME/.cargo/bin/cargo-install-update || cargo install cargo-update)
- (test -x $HOME/.cargo/bin/mdbook || cargo install --vers "^0.1" mdbook)
- cargo install-update -a
script:
- (cd guide && mdbook build)
- cargo doc --no-deps -p wasm-bindgen -p web-sys -p js-sys
- mv target/doc guide/book/api
deploy:
provider: pages
skip-cleanup: true
github-token: $GITHUB_TOKEN # Set in travis-ci.org dashboard, marked secure
local-dir: guide/book
keep-history: false
if: branch = master
notifications:
email:
on_success: never