diff --git a/.appveyor.yml b/.appveyor.yml new file mode 100644 index 00000000..cd9de0e3 --- /dev/null +++ b/.appveyor.yml @@ -0,0 +1,72 @@ +branches: + only: + - staging + - trying + - master + - /z_post_*/ + +# Appveyor configuration template for Rust using rustup for Rust installation +# https://github.com/starkat99/appveyor-rust + +## Operating System (VM environment) ## + +# Rust needs at least Visual Studio 2013 Appveyor OS for MSVC targets. +os: Visual Studio 2015 + +## Build Matrix ## +environment: + matrix: + +### MSVC Toolchains ### + # Nightly 64-bit MSVC + - channel: nightly + target: x86_64-pc-windows-msvc + MSYS_BITS: 64 + # Nightly 32-bit MSVC + - channel: nightly + target: i686-pc-windows-msvc + MSYS_BITS: 32 + +### GNU Toolchains ### + # Nightly 64-bit GNU + - channel: nightly + target: x86_64-pc-windows-gnu + MSYS_BITS: 64 + # Nightly 32-bit GNU + - channel: nightly + target: i686-pc-windows-gnu + MSYS_BITS: 32 + +cache: + - '%USERPROFILE%\.cargo\bin' + - '%USERPROFILE%\.cargo\.crates.toml' + +## Install Script ## + +# This is the most important part of the Appveyor configuration. This installs the version of Rust +# specified by the 'channel' and 'target' environment variables from the build matrix. This uses +# rustup to install Rust. +# +# For simple configurations, instead of using the build matrix, you can simply set the +# default-toolchain and default-host manually here. +install: + - appveyor-retry appveyor DownloadFile https://win.rustup.rs/ -FileName rustup-init.exe + - rustup-init -yv --default-toolchain %channel% --default-host %target% + - set PATH=%PATH%;%USERPROFILE%\.cargo\bin + - rustc -vV + - cargo -vV + +## Build Script ## + +# 'cargo test' takes care of building for us, so disable Appveyor's build stage. This prevents +# the "directory does not contain a project or solution file" error. +build: false + +before_test: + - set PATH=C:\msys64\mingw%MSYS_BITS%\bin;C:\msys64\usr\bin;%PATH% + # Fix undefined references to __acrt_iob_func() + - sed -rie "s/#define std([[:alpha:]]+)[[:space:]]+\(__acrt_iob_func\(([[:digit:]]+)\)\)/#define std\1 (\&__iob_func()[\2])/" "C:\msys64\mingw64\x86_64-w64-mingw32\include\stdio.h" + - sed -rie "s/#define std([[:alpha:]]+)[[:space:]]+\(__acrt_iob_func\(([[:digit:]]+)\)\)/#define std\1 (\&__iob_func()[\2])/" "C:\msys64\mingw32\i686-w64-mingw32\include\stdio.h" + +test_script: + - cargo --version diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 00000000..7b23b61e --- /dev/null +++ b/.travis.yml @@ -0,0 +1,30 @@ +language: rust + +rust: + - nightly + +os: + - linux + +notifications: + email: + on_success: never + on_failure: always + +branches: + only: + # This is where pull requests from "bors r+" are built. + - staging + # This is where pull requests from "bors try" are built. + - trying + # Build pull requests. + - master + # Build post braches + - /^z_post_.*$/ + +cache: + directories: + - $HOME/.cargo + +script: + - cargo rustc -- -Z pre-link-arg=-nostartfiles