diff --git a/.appveyor.yml b/.appveyor.yml index 1e4ad7d2..a9168404 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -1,7 +1,14 @@ +environment: + global: + RUSTFLAGS: -Zunstable-options -Ctarget-feature=+crt-static + matrix: + - TARGET: x86_64-pc-windows-msvc + DEPLOY: 1 + install: - ps: Install-Product node 9 - appveyor-retry appveyor DownloadFile https://win.rustup.rs/ -FileName rustup-init.exe - - if not defined RUSTFLAGS rustup-init.exe -y --default-host x86_64-pc-windows-msvc --default-toolchain nightly + - rustup-init.exe -y --default-host x86_64-pc-windows-msvc --default-toolchain nightly - set PATH=%PATH%;C:\Users\appveyor\.cargo\bin - rustc -V - cargo -V @@ -12,4 +19,27 @@ test_script: - rustup target add wasm32-unknown-unknown - yarn - cargo test - - cargo install --debug --path crates/wasm-bindgen-cli + - cargo build --release -p wasm-bindgen-cli + +before_deploy: + - ps: | + $NAME = "wasm-bindgen-${env:APPVEYOR_REPO_TAG_NAME}-${env:TARGET}" + New-Item -Path $NAME -ItemType directory + Copy-Item target/release/wasm-bindgen.exe "${NAME}/" + Copy-Item target/release/wasm2es6js.exe "${NAME}/" + Copy-Item LICENSE-MIT "${NAME}/" + Copy-Item LICENSE-APACHE "${NAME}/" + Copy-Item README.md "${NAME}/" + 7z a -ttar "${NAME}.tar" "${NAME}" + 7z a "${NAME}.tar.gz" "${NAME}.tar" + Push-AppveyorArtifact "${NAME}.tar.gz" + +deploy: + artifact: /.*\.tar.gz/ + auth_token: + secure: dtHSvbZkdAFtL0J5YrSw8DpxjfYuHWgqD1SupmJT/yfYSjEBiX55RFXRoqBM2tx1 + description: '' + on: + appveyor_repo_tag: true + provider: GitHub + diff --git a/.travis.yml b/.travis.yml index 023fc9dd..f2222c71 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,8 +3,25 @@ sudo: false matrix: include: + # CLI builds on stable + - rust: stable + install: true + script: cargo build -p wasm-bindgen-cli + + # Tests pass on nightly - rust: nightly + # Dist linux binary + - env: TARGET=x86_64-unknown-linux-musl DEPLOY=1 + before_script: rustup target add $TARGET + script: cargo build -p wasm-bindgen-cli --release --target $TARGET + + # Dist OSX binary + - os: osx + env: MACOSX_DEPLOYMENT_TARGET=10.7 DEPLOY=1 TARGET=x86_64-apple-darwin + script: cargo build -p wasm-bindgen-cli --release --target $TARGET + before_install: brew install yarn --without-node + install: - curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash - source ~/.nvm/nvm.sh @@ -26,3 +43,21 @@ notifications: email: on_success: never +before_deploy: + - name="wasm-bindgen-$TRAVIS_TAG-$TARGET" + - mkdir $name + - cp target/$TARGET/release/{wasm-bindgen,wasm2es6js} $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: + condition: $DEPLOY = 1 + tags: true + provider: releases + skip_cleanup: true diff --git a/crates/wasm-bindgen-cli-support/Cargo.toml b/crates/wasm-bindgen-cli-support/Cargo.toml index c7aeaabe..731c60fe 100644 --- a/crates/wasm-bindgen-cli-support/Cargo.toml +++ b/crates/wasm-bindgen-cli-support/Cargo.toml @@ -5,7 +5,6 @@ authors = ["Alex Crichton "] [dependencies] base64 = "0.9" -failure = "0.1" parity-wasm = "0.27" serde_json = "1.0" wasm-bindgen-shared = { path = "../wasm-bindgen-shared" } diff --git a/crates/wasm-bindgen-cli-support/src/lib.rs b/crates/wasm-bindgen-cli-support/src/lib.rs index 24a4f085..c82f8190 100644 --- a/crates/wasm-bindgen-cli-support/src/lib.rs +++ b/crates/wasm-bindgen-cli-support/src/lib.rs @@ -1,5 +1,3 @@ -#[macro_use] -extern crate failure; extern crate parity_wasm; extern crate wasm_bindgen_shared as shared; extern crate serde_json; @@ -11,7 +9,6 @@ use std::io::Write; use std::path::{Path, PathBuf}; use std::slice; -use failure::Error; use parity_wasm::elements::*; mod js; @@ -24,6 +21,15 @@ pub struct Bindgen { typescript: bool, } +#[derive(Debug)] +pub struct Error(String); + +impl From for Error { + fn from(e: E) -> Error { + Error(e.to_string()) + } +} + impl Bindgen { pub fn new() -> Bindgen { Bindgen { @@ -65,7 +71,7 @@ impl Bindgen { }; let stem = input.file_stem().unwrap().to_str().unwrap(); let mut module = parity_wasm::deserialize_file(input).map_err(|e| { - format_err!("{:?}", e) + Error(format!("{:?}", e)) })?; let programs = extract_programs(&mut module); @@ -107,7 +113,7 @@ impl Bindgen { let wasm_path = out_dir.join(format!("{}_bg", stem)).with_extension("wasm"); let wasm_bytes = parity_wasm::serialize(module).map_err(|e| { - format_err!("{:?}", e) + Error(format!("{:?}", e)) })?; let bytes = wasm_gc::Config::new() .demangle(false) diff --git a/crates/wasm-bindgen-cli-support/src/wasm2es6js.rs b/crates/wasm-bindgen-cli-support/src/wasm2es6js.rs index 6379a907..998e8d6c 100644 --- a/crates/wasm-bindgen-cli-support/src/wasm2es6js.rs +++ b/crates/wasm-bindgen-cli-support/src/wasm2es6js.rs @@ -30,7 +30,7 @@ impl Config { pub fn generate(&mut self, wasm: &[u8]) -> Result { assert!(self.base64); let module = deserialize_buffer(wasm).map_err(|e| { - format_err!("{:?}", e) + ::Error(format!("{:?}", e)) })?; Ok(Output { module,