mirror of
https://github.com/rustwasm/wasm-bindgen.git
synced 2024-11-27 19:28:56 +03:00
cb9c9fb011
This shaves a little over 2MB off the download locally for Linux, removing debuginfo (which no one's probably gonna use anyway) as well as switching from jemalloc to the system allocator.
226 lines
8.7 KiB
YAML
226 lines
8.7 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
|
|
|
|
INSTALL_GECKODRIVER: &INSTALL_GECKODRIVER
|
|
|
|
|
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
|
|
|
|
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/
|
|
|
|
INSTALL_AWS: &INSTALL_AWS
|
|
|
|
|
pip install --user awscli
|
|
export PATH=$HOME/.local/bin:$PATH
|
|
mkdir -p ~/$TRAVIS_BUILD_NUMBER
|
|
|
|
matrix:
|
|
include:
|
|
# Tests for wasm-bindgen itself pass
|
|
- rust: beta
|
|
env: JOB=test-bindgen
|
|
install:
|
|
- *INSTALL_NODE_VIA_NVM
|
|
- *INSTALL_GECKODRIVER
|
|
- export GECKODRIVER=`pwd`/geckodriver
|
|
script:
|
|
# Run a test or two that makes sure `#[wasm_bindgen]` works "reasonably"
|
|
# on non-wasm platforms
|
|
- cargo test
|
|
# Run the main body of the test suite
|
|
- cargo test --target wasm32-unknown-unknown
|
|
# Rerun the test suite but disable `--debug` in generated JS
|
|
- WASM_BINDGEN_NO_DEBUG=1 cargo test --target wasm32-unknown-unknown
|
|
# Make sure our serde tests work
|
|
- cargo test --target wasm32-unknown-unknown --features serde-serialize
|
|
# Make sure the `std` feature works if disabled
|
|
- cargo test --target wasm32-unknown-unknown -p no-std
|
|
# Make sure the `wasm-bindgen-futures` tests pass.
|
|
- cargo test -p wasm-bindgen-futures
|
|
- cargo test -p wasm-bindgen-futures --target wasm32-unknown-unknown
|
|
addons:
|
|
firefox: latest
|
|
if: branch = master
|
|
|
|
# Tests the `nightly` feature of wasm-bindgen
|
|
- rust: nightly
|
|
env: JOB=test-bindgen-nightly
|
|
install:
|
|
- *INSTALL_NODE_VIA_NVM
|
|
script:
|
|
- cargo test --target wasm32-unknown-unknown --features nightly --test wasm
|
|
if: branch = master
|
|
|
|
# All examples work
|
|
- rust: nightly
|
|
env: JOB=examples-build
|
|
install:
|
|
- *INSTALL_NODE_VIA_NVM
|
|
- *INSTALL_AWS
|
|
- npm install
|
|
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 --output-path $HOME/$TRAVIS_BUILD_NUMBER/exbuild/$dir\"|" package.json &&
|
|
sed -i 's/npm install//' build.sh &&
|
|
ln -fs ../../node_modules . &&
|
|
./build.sh) || exit 1;
|
|
done
|
|
- if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then aws s3 sync --quiet ~/$TRAVIS_BUILD_NUMBER s3://wasm-bindgen-ci/$TRAVIS_BUILD_NUMBER; fi
|
|
if: branch = master
|
|
|
|
# The `web-sys` crate's tests pass
|
|
- rust: beta
|
|
env: JOB=test-web-sys
|
|
install:
|
|
- *INSTALL_NODE_VIA_NVM
|
|
- *INSTALL_GECKODRIVER
|
|
script:
|
|
- export RUST_LOG=wasm_bindgen_test_runner
|
|
# Test out builds with just a few features
|
|
- cargo build --manifest-path crates/web-sys/Cargo.toml --target wasm32-unknown-unknown
|
|
- cargo build --manifest-path crates/web-sys/Cargo.toml --target wasm32-unknown-unknown --features Node
|
|
- cargo build --manifest-path crates/web-sys/Cargo.toml --target wasm32-unknown-unknown --features Element
|
|
- cargo build --manifest-path crates/web-sys/Cargo.toml --target wasm32-unknown-unknown --features Window
|
|
|
|
# Now run all the tests with all the features
|
|
- GECKODRIVER=`pwd`/geckodriver cargo test --manifest-path crates/web-sys/Cargo.toml --target wasm32-unknown-unknown --all-features
|
|
addons:
|
|
firefox: latest
|
|
chrome: stable
|
|
if: branch = master
|
|
|
|
# The `js-sys` crate's tests pass
|
|
- rust: beta
|
|
env: JOB=test-js-sys
|
|
install:
|
|
- *INSTALL_NODE_VIA_NVM
|
|
- *INSTALL_GECKODRIVER
|
|
script:
|
|
- export RUST_LOG=wasm_bindgen_test_runner
|
|
- GECKODRIVER=`pwd`/geckodriver cargo test -p js-sys --target wasm32-unknown-unknown
|
|
addons:
|
|
firefox: latest
|
|
chrome: stable
|
|
if: branch = master
|
|
|
|
# WebIDL tests pass
|
|
- rust: beta
|
|
env: JOB=test-webidl
|
|
install: *INSTALL_NODE_VIA_NVM
|
|
script:
|
|
- cargo test -p wasm-bindgen-webidl
|
|
- cargo test -p webidl-tests --target wasm32-unknown-unknown
|
|
if: branch = master
|
|
|
|
# UI tests for the macro work just fine
|
|
- rust: nightly
|
|
env: JOB=macro-ui
|
|
script: cargo test -p ui-tests
|
|
if: branch = master
|
|
|
|
# Dist linux binary
|
|
- rust: nightly
|
|
env: JOB=dist-linux TARGET=x86_64-unknown-linux-musl
|
|
before_script: rustup target add $TARGET
|
|
script:
|
|
- cargo build --manifest-path crates/cli/Cargo.toml --release --target $TARGET --features vendored-openssl
|
|
# no need to ship debuginfo to users
|
|
- strip -g target/$TARGET/release/wasm-bindgen
|
|
- strip -g target/$TARGET/release/wasm-bindgen-test-runner
|
|
- strip -g target/$TARGET/release/wasm2es6js
|
|
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
|
|
|
|
# Build mdbook documentation
|
|
- rust: stable
|
|
env: JOB=guide-build
|
|
install:
|
|
- mkdir -p $HOME/mdbook
|
|
- curl -L https://github.com/rust-lang-nursery/mdBook/releases/download/v0.2.1/mdbook-v0.2.1-x86_64-unknown-linux-musl.tar.gz | tar xzf - -C $HOME/mdbook
|
|
- export PATH=$PATH:$HOME/mdbook
|
|
- *INSTALL_AWS
|
|
script:
|
|
- (cd guide && mdbook build)
|
|
- rm -rf ~/$TRAVIS_BUILD_NUMBER
|
|
- mv guide/book ~/$TRAVIS_BUILD_NUMBER
|
|
- if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then aws s3 sync --quiet ~/$TRAVIS_BUILD_NUMBER s3://wasm-bindgen-ci/$TRAVIS_BUILD_NUMBER; fi
|
|
if: branch = master
|
|
|
|
# Build API documentation
|
|
- rust: nightly
|
|
env: JOB=api-docs
|
|
install: *INSTALL_AWS
|
|
script:
|
|
- cargo doc --no-deps
|
|
- cargo doc --no-deps --manifest-path crates/js-sys/Cargo.toml
|
|
- cargo doc --no-deps --manifest-path crates/futures/Cargo.toml
|
|
- cargo doc --no-deps --manifest-path crates/web-sys/Cargo.toml --all-features
|
|
- mv target/doc ~/$TRAVIS_BUILD_NUMBER/api
|
|
- if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then aws s3 sync --quiet ~/$TRAVIS_BUILD_NUMBER s3://wasm-bindgen-ci/$TRAVIS_BUILD_NUMBER; fi
|
|
if: branch = master
|
|
|
|
# Take compiled examples and mdbook/API docs and deploy them to gh-pages
|
|
- stage: deploy-gh-pages
|
|
install: *INSTALL_AWS
|
|
script:
|
|
- aws s3 sync --quiet s3://wasm-bindgen-ci/$TRAVIS_BUILD_NUMBER ~/$TRAVIS_BUILD_NUMBER
|
|
- mv ~/$TRAVIS_BUILD_NUMBER doc
|
|
deploy:
|
|
provider: pages
|
|
skip-cleanup: true
|
|
github-token: $GITHUB_TOKEN # Set in travis-ci.org dashboard, marked secure
|
|
local-dir: doc
|
|
keep-history: false
|
|
after_deploy:
|
|
- aws s3 rm --recursive s3://rust-lang-ci-sccache2/$TRAVIS_BUILD_NUMBER
|
|
if: branch = master AND type != pull_request
|
|
|
|
notifications:
|
|
email:
|
|
on_success: never
|