forked from rustwasm/wasm-bindgen
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.travis.yml
202 lines (186 loc) · 7.31 KB
/
.travis.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
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
INSTALL_CHROMEDRIVER: &INSTALL_CHROMEDRIVER
|
curl --retry 5 -LO https://chromedriver.storage.googleapis.com/2.41/chromedriver_linux64.zip
unzip chromedriver_linux64.zip
export CHROMEDRIVER_ARGS=--verbose
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
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
- cargo test --target wasm32-unknown-unknown --features nightly
# 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
# All examples work
- rust: nightly
env: JOB=examples-build
install:
- *INSTALL_NODE_VIA_NVM
- 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
install:
- *INSTALL_NODE_VIA_NVM
- *INSTALL_GECKODRIVER
- *INSTALL_CHROMEDRIVER
script:
- export RUST_LOG=wasm_bindgen_test_runner
- CHROMEDRIVER=`pwd`/chromedriver cargo test -p web-sys --target wasm32-unknown-unknown
- GECKODRIVER=`pwd`/geckodriver cargo test -p web-sys --target wasm32-unknown-unknown
addons:
firefox: latest
chrome: stable
if: branch = master
# The `js-sys` crate's tests pass on nightly.
- rust: nightly
env: JOB=test-js-sys
install:
- *INSTALL_NODE_VIA_NVM
- *INSTALL_GECKODRIVER
- *INSTALL_CHROMEDRIVER
script:
- export RUST_LOG=wasm_bindgen_test_runner
- CHROMEDRIVER=`pwd`/chromedriver cargo test -p js-sys --target wasm32-unknown-unknown
- GECKODRIVER=`pwd`/geckodriver cargo test -p js-sys --target wasm32-unknown-unknown
addons:
firefox: latest
chrome: stable
if: branch = master
# Tests pass on nightly using yarn
- rust: nightly
env: JOB=test-yarn-smoke
install:
- *INSTALL_NODE_VIA_NVM
- travis_retry curl -OLSf https://yarnpkg.com/install.sh
- travis_retry bash install.sh -- --version 1.7.0 < /dev/null
- 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
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
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 -p wasm-bindgen-futures
- 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