commit 98c3d0806d18f62b690cfaeaa8e4c44aebedf93e
parent 79a0d08b130fa6773baa4a178d576a96aaac318c
Author: MTRNord <mtrnord1@gmail.com>
Date: Sat, 22 Apr 2017 18:08:54 +0200
add travis and appveyor
Diffstat:
| A | .travis.yml | | | 103 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | appveyor.yml | | | 93 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | ci/before_deploy.ps1 | | | 23 | +++++++++++++++++++++++ |
| A | ci/before_deploy.sh | | | 33 | +++++++++++++++++++++++++++++++++ |
| A | ci/install.sh | | | 27 | +++++++++++++++++++++++++++ |
| A | ci/script.sh | | | 24 | ++++++++++++++++++++++++ |
| M | log.txt | | | 70 | ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
7 files changed, 373 insertions(+), 0 deletions(-)
diff --git a/.travis.yml b/.travis.yml
@@ -0,0 +1,103 @@
+# Based on the "trust" template v0.1.1
+# https://github.com/japaric/trust/tree/v0.1.1
+
+dist: trusty
+language: rust
+services: docker
+sudo: required
+
+# TODO Rust builds on stable by default, this can be
+# overridden on a case by case basis down below.
+
+env:
+ global:
+ # TODO Update this to match the name of your project.
+ - CRATE_NAME=hangups
+
+matrix:
+ # TODO These are all the build jobs. Adjust as necessary. Comment out what you
+ # don't need
+ include:
+ # Linux
+ - env: TARGET=i686-unknown-linux-gnu
+ - env: TARGET=i686-unknown-linux-musl
+ - env: TARGET=x86_64-unknown-linux-gnu
+ - env: TARGET=x86_64-unknown-linux-musl
+
+ # OSX
+ - env: TARGET=i686-apple-darwin
+ os: osx
+ - env: TARGET=x86_64-apple-darwin
+ os: osx
+
+ # *BSD
+ - env: TARGET=i686-unknown-freebsd DISABLE_TESTS=1
+ - env: TARGET=x86_64-unknown-freebsd DISABLE_TESTS=1
+ - env: TARGET=x86_64-unknown-netbsd DISABLE_TESTS=1
+
+ # Other architectures
+ - env: TARGET=aarch64-unknown-linux-gnu
+ - env: TARGET=armv7-unknown-linux-gnueabihf
+ - env: TARGET=mips-unknown-linux-gnu
+ - env: TARGET=mips64-unknown-linux-gnuabi64
+ - env: TARGET=mips64el-unknown-linux-gnuabi64
+ - env: TARGET=mipsel-unknown-linux-gnu
+ - env: TARGET=powerpc-unknown-linux-gnu
+ - env: TARGET=powerpc64-unknown-linux-gnu
+ - env: TARGET=powerpc64le-unknown-linux-gnu
+ - env: TARGET=s390x-unknown-linux-gnu DISABLE_TESTS=1
+
+ # Testing other channels
+ - env: TARGET=x86_64-unknown-linux-gnu
+ rust: nightly
+ - env: TARGET=x86_64-apple-darwin
+ os: osx
+ rust: nightly
+
+before_install: set -e
+
+install:
+ - sh ci/install.sh
+ - source ~/.cargo/env || true
+
+script:
+ - bash ci/script.sh
+
+after_script: set +e
+
+before_deploy:
+ - sh ci/before_deploy.sh
+
+deploy:
+ # TODO update `api_key.secure`
+ # - Create a `public_repo` GitHub token. Go to: https://github.com/settings/tokens/new
+ # - Encrypt it: `travis encrypt 0123456789012345678901234567890123456789
+ # - Paste the output down here
+ api_key:
+ secure: kY4LPIMa4mQjbquQV40YhVyxvD+yJUTl5in8AHbICO78AXos9wOWQ9Dbv0loSjOZjuj7eKgLRmtZRrfpPvEI6sje3IzE/ROyUkNSouUa8raL49A6in42281gy+Atcl0rpG6a4lpOA3nT4hSiypUztDcALZpPAG+ftv0yjyaHuur42WGk48ZVsTNb69qQWaIsN7SGsdsi2mqUotRhcON4tJL358G/eRsx5FznLIo+s6jOvtdijnZaJYi5tkfHglS8ZfgOJdPac98t4kEL86SHBvvj3UJUwZGeNuK76D12soVeSwJp7DEO1TrJFvj3hpHCZV44dnnuFldv7K3DGVgsc6zYY8/l84ovht58tDgtCBfDJl+ef8cfwDUKaWfZ7ET25gEdvA7OE06t1dhCmLrutfr03ZEIXN8OZCfnWJexSaT8XCxy+ntb2/SL6IdMKvoDPcCWT0ocA4z4A8TOHIYi3h6vkvgTNdwDYse66LL96BLQ2utFPcCPB5RW79heGLcUchkr0ZEzFi8Oe1JWdKLbibtJiLUovZsCAklydyhTEzprcEzfxXa0mn3jPUmmekta9vkQuCL7tXDDLxYsiPOwVhOh7/+3kgTZdJnaIgP6zFw7HMEBgKrEwo1B0Gzo79LhLmlvT3yNE2K1xtYrNT1E3aV45pkQf4d2kke0OAOza5E=
+ file_glob: true
+ file: $CRATE_NAME-$TRAVIS_TAG-$TARGET.*
+ on:
+ # TODO Here you can pick which targets will generate binary releases
+ # In this example, there are some targets that are tested using the stable
+ # and nightly channels. This condition makes sure there is only one release
+ # for such targets and that's generated using the stable channel
+ condition: $TRAVIS_RUST_VERSION = stable
+ tags: true
+ provider: releases
+ skip_cleanup: true
+
+cache: cargo
+before_cache:
+ # Travis can't cache files that are not readable by "others"
+ - chmod -R a+r $HOME/.cargo
+
+branches:
+ only:
+ # release tags
+ - /^v\d+\.\d+\.\d+.*$/
+ - master
+
+notifications:
+ email:
+ on_success: never
diff --git a/appveyor.yml b/appveyor.yml
@@ -0,0 +1,93 @@
+# Based on the "trust" template v0.1.1
+# https://github.com/japaric/trust/tree/v0.1.1
+
+environment:
+ global:
+ # TODO This is the Rust channel that build jobs will use by default but can be
+ # overridden on a case by case basis down below
+ RUST_VERSION: stable
+
+ # TODO Update this to match the name of your project.
+ CRATE_NAME: hangups
+
+ # TODO These are all the build jobs. Adjust as necessary. Comment out what you
+ # don't need
+ matrix:
+ # MinGW
+ - TARGET: i686-pc-windows-gnu
+ - TARGET: x86_64-pc-windows-gnu
+
+ # MSVC
+ - TARGET: i686-pc-windows-msvc
+ - TARGET: x86_64-pc-windows-msvc
+
+ # Testing other channels
+ - TARGET: x86_64-pc-windows-gnu
+ RUST_VERSION: nightly
+ - TARGET: x86_64-pc-windows-msvc
+ RUST_VERSION: nightly
+
+install:
+ - ps: >-
+ If ($Env:TARGET -eq 'x86_64-pc-windows-gnu') {
+ $Env:PATH += ';C:\msys64\mingw64\bin'
+ } ElseIf ($Env:TARGET -eq 'i686-pc-windows-gnu') {
+ $Env:PATH += ';C:\msys64\mingw32\bin'
+ }
+ - curl -sSf -o rustup-init.exe https://win.rustup.rs/
+ - rustup-init.exe -y --default-host %TARGET% --default-toolchain %RUST_VERSION%
+ - set PATH=%PATH%;C:\Users\appveyor\.cargo\bin
+ - rustc -Vv
+ - cargo -V
+
+# TODO This is the "test phase", tweak it as you see fit
+test_script:
+ # we don't run the "test phase" when doing deploys
+ - if [%APPVEYOR_REPO_TAG%]==[false] (
+ cargo build --target %TARGET% &&
+ cargo build --target %TARGET% --release &&
+ cargo test --target %TARGET% &&
+ cargo test --target %TARGET% --release &&
+ cargo run --target %TARGET% &&
+ cargo run --target %TARGET% --release
+ )
+
+before_deploy:
+ # TODO Update this to build the artifacts that matter to you
+ - cargo rustc --target %TARGET% --release --bin hello -- -C lto
+ - ps: ci\before_deploy.ps1
+
+deploy:
+ artifact: /.*\.zip/
+ # TODO update `auth_token.secure`
+ # - Create a `public_repo` GitHub token. Go to: https://github.com/settings/tokens/new
+ # - Encrypt it. Go to https://ci.appveyor.com/tools/encrypt
+ # - Paste the output down here
+ auth_token:
+ secure: N1hgKZtolY+DR71ZakhyXiKwMAYk09RD5V89YZys8v3VCLH/0UnsJe4WuHsYMSvX
+ description: ''
+ on:
+ # TODO Here you can pick which targets will generate binary releases
+ # In this example, there are some targets that are tested using the stable
+ # and nightly channels. This condition makes sure there is only one release
+ # for such targets and that's generated using the stable channel
+ RUST_VERSION: stable
+ appveyor_repo_tag: true
+ provider: GitHub
+
+cache:
+ - C:\Users\appveyor\.cargo\registry
+ - target
+
+branches:
+ only:
+ # Release tags
+ - /^v\d+\.\d+\.\d+.*$/
+ - master
+
+notifications:
+ - provider: Email
+ on_build_success: false
+
+# Building is done in the test phase, so we disable Appveyor's build phase.
+build: false
diff --git a/ci/before_deploy.ps1 b/ci/before_deploy.ps1
@@ -0,0 +1,23 @@
+# This script takes care of packaging the build artifacts that will go in the
+# release zipfile
+
+$SRC_DIR = $PWD.Path
+$STAGE = [System.Guid]::NewGuid().ToString()
+
+Set-Location $ENV:Temp
+New-Item -Type Directory -Name $STAGE
+Set-Location $STAGE
+
+$ZIP = "$SRC_DIR\$($Env:CRATE_NAME)-$($Env:APPVEYOR_REPO_TAG_NAME)-$($Env:TARGET).zip"
+
+# TODO Update this to package the right artifacts
+Copy-Item "$SRC_DIR\target\$($Env:TARGET)\release\hello.exe" '.\'
+
+7z a "$ZIP" *
+
+Push-AppveyorArtifact "$ZIP"
+
+Remove-Item *.* -Force
+Set-Location ..
+Remove-Item $STAGE
+Set-Location $SRC_DIR
diff --git a/ci/before_deploy.sh b/ci/before_deploy.sh
@@ -0,0 +1,33 @@
+# This script takes care of building your crate and packaging it for release
+
+set -ex
+
+main() {
+ local src=$(pwd) \
+ stage=
+
+ case $TRAVIS_OS_NAME in
+ linux)
+ stage=$(mktemp -d)
+ ;;
+ osx)
+ stage=$(mktemp -d -t tmp)
+ ;;
+ esac
+
+ test -f Cargo.lock || cargo generate-lockfile
+
+ # TODO Update this to build the artifacts that matter to you
+ cross rustc --bin hello --target $TARGET --release -- -C lto
+
+ # TODO Update this to package the right artifacts
+ cp target/$TARGET/release/hello $stage/
+
+ cd $stage
+ tar czf $src/$CRATE_NAME-$TRAVIS_TAG-$TARGET.tar.gz *
+ cd $src
+
+ rm -rf $stage
+}
+
+main
diff --git a/ci/install.sh b/ci/install.sh
@@ -0,0 +1,27 @@
+set -ex
+
+main() {
+ local target=
+ if [ $TRAVIS_OS_NAME = linux ]; then
+ target=x86_64-unknown-linux-musl
+ sort=sort
+ else
+ target=x86_64-apple-darwin
+ sort=gsort # for `sort --sort-version`, from brew's coreutils.
+ fi
+
+ # This fetches latest stable release
+ local tag=$(git ls-remote --tags --refs --exit-code https://github.com/japaric/cross \
+ | cut -d/ -f3 \
+ | grep -E '^v[0.1.0-9.]+$' \
+ | $sort --version-sort \
+ | tail -n1)
+ curl -LSfs https://japaric.github.io/trust/install.sh | \
+ sh -s -- \
+ --force \
+ --git japaric/cross \
+ --tag $tag \
+ --target $target
+}
+
+main
diff --git a/ci/script.sh b/ci/script.sh
@@ -0,0 +1,24 @@
+# This script takes care of testing your crate
+
+set -ex
+
+# TODO This is the "test phase", tweak it as you see fit
+main() {
+ cross build --target $TARGET
+ cross build --target $TARGET --release
+
+ if [ ! -z $DISABLE_TESTS ]; then
+ return
+ fi
+
+ cross test --target $TARGET
+ cross test --target $TARGET --release
+
+ cross run --target $TARGET
+ cross run --target $TARGET --release
+}
+
+# we don't run the "test phase" when doing deploys
+if [ -z $TRAVIS_TAG ]; then
+ main
+fi
diff --git a/log.txt b/log.txt
@@ -1,3 +1,73 @@
+ Updating registry `https://github.com/rust-lang/crates.io-index`
+ Updating git repository `https://github.com/hyperium/hyper`
+ Downloading futures v0.1.13
+ Downloading sha1 v0.2.0
+ Downloading rand v0.3.15
+ Downloading regex v0.2.1
+ Downloading tokio-core v0.1.6
+ Downloading jconfig v0.1.0
+ Downloading rustc-serialize v0.3.23
+ Downloading url v1.4.0
+ Downloading protobuf v1.2.2
+ Downloading libc v0.2.21
+ Downloading aho-corasick v0.6.3
+ Downloading regex-syntax v0.4.0
+ Downloading memchr v1.0.1
+ Downloading thread_local v0.3.3
+ Downloading utf8-ranges v1.0.0
+ Downloading unreachable v0.1.1
+ Downloading void v1.0.2
+ Downloading bytes v0.4.2
+ Downloading tokio-io v0.1.1
+ Downloading mio v0.6.6
+ Downloading scoped-tls v0.1.0
+ Downloading iovec v0.1.0
+ Downloading log v0.3.7
+ Downloading slab v0.3.0
+ Downloading byteorder v1.0.0
+ Downloading net2 v0.2.27
+ Downloading lazycell v0.4.0
+ Downloading cfg-if v0.1.0
+ Downloading traitobject v0.0.3
+ Downloading quick-error v1.1.0
+ Downloading unicase v1.4.0
+ Downloading rustc_version v0.1.7
+ Downloading semver v0.1.20
+ Downloading httparse v1.2.1
+ Downloading base64 v0.4.1
+ Downloading time v0.1.36
+ Downloading mime v0.2.3
+ Downloading language-tags v0.2.2
+ Downloading tokio-service v0.1.0
+ Downloading tokio-proto v0.1.1
+ Downloading futures-cpupool v0.1.5
+ Downloading matches v0.1.4
+ Downloading idna v0.1.1
+ Downloading unicode-bidi v0.2.5
+ Downloading unicode-normalization v0.1.4
+ Downloading smallvec v0.2.1
+ Downloading take v0.1.0
+ Downloading num_cpus v1.3.0
+ Downloading thread-id v3.0.0
+ Compiling lazycell v0.4.0
+ Compiling byteorder v1.0.0
+ Compiling base64 v0.4.1
+ Compiling slab v0.3.0
+ Compiling take v0.1.0
+ Compiling futures v0.1.13
+ Compiling iovec v0.1.0
+ Compiling bytes v0.4.2
+ Compiling cfg-if v0.1.0
+ Compiling smallvec v0.2.1
+ Compiling tokio-service v0.1.0
+ Compiling tokio-io v0.1.1
+ Compiling scoped-tls v0.1.0
+ Compiling net2 v0.2.27
+ Compiling mio v0.6.6
+ Compiling tokio-core v0.1.6
+ Compiling tokio-proto v0.1.1
+ Compiling futures-cpupool v0.1.5
+ Compiling hyper v0.11.0-a.0 (https://github.com/hyperium/hyper#736a342e)
Compiling hangups v0.0.1 (file:///source)
error[E0382]: use of moved value: `core`
--> src/lib.rs:257:9