From 95d0e6f5e5837ea7cb2c74b9cec95f733b4c119e Mon Sep 17 00:00:00 2001 From: tdaffin Date: Tue, 18 Dec 2018 09:41:14 -0700 Subject: [PATCH] Update appveyor.yml to use starkat99's version (#63) --- appveyor.yml | 63 +++++++++++++++++++------------------ appveyor_rust_install.ps1 | 66 --------------------------------------- 2 files changed, 33 insertions(+), 96 deletions(-) delete mode 100644 appveyor_rust_install.ps1 diff --git a/appveyor.yml b/appveyor.yml index 48bb88f..af3142a 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,3 +1,6 @@ +# 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. @@ -10,6 +13,9 @@ os: Visual Studio 2015 # # There are 3 channels: stable, beta, and nightly. # +# Alternatively, the full version may be specified for the channel to build using that specific +# version (e.g. channel: 1.5.0) +# # The values for target are the set of windows Rust build targets. Each value is of the form # # ARCH-pc-windows-TOOLCHAIN @@ -17,8 +23,15 @@ os: Visual Studio 2015 # Where ARCH is the target architecture, either x86_64 or i686, and TOOLCHAIN is the linker # toolchain to use, either msvc or gnu. See https://www.rust-lang.org/downloads.html#win-foot for # a description of the toolchain differences. +# See https://github.com/rust-lang-nursery/rustup.rs/#toolchain-specification for description of +# toolchains and host triples. # # Comment out channel/target combos you do not wish to build in CI. +# +# You may use the `cargoflags` and `RUSTFLAGS` variables to set additional flags for cargo commands +# and rustc, respectively. For instance, you can uncomment the cargoflags lines in the nightly +# channels to enable unstable features when building for nightly. Or you could add additional +# matrix entries to test different combinations of features. environment: matrix: @@ -39,9 +52,11 @@ environment: # Nightly 64-bit MSVC - channel: nightly target: x86_64-pc-windows-msvc + #cargoflags: --features "unstable" # Nightly 32-bit MSVC - channel: nightly target: i686-pc-windows-msvc + #cargoflags: --features "unstable" ### GNU Toolchains ### @@ -60,9 +75,11 @@ environment: # Nightly 64-bit GNU - channel: nightly target: x86_64-pc-windows-gnu + #cargoflags: --features "unstable" # Nightly 32-bit GNU - channel: nightly target: i686-pc-windows-gnu + #cargoflags: --features "unstable" ### Allowed failures ### @@ -76,43 +93,29 @@ matrix: # If you only care about stable channel build failures, uncomment the following line: #- channel: beta -# 32-bit MSVC isn't stablized yet, so you may optionally allow failures there (uncomment line): - #- target: i686-pc-windows-msvc - ## 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. By default, -# Rust will be installed to C:\Rust for easy usage, but this path can be overridden by setting the -# RUST_INSTALL_DIR environment variable. The URL to download rust distributions defaults to -# https://static.rust-lang.org/dist/ but can overridden by setting the RUST_DOWNLOAD_URL environment -# variable. +# 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 override the channel and -# target environment variables with the -channel and -target script arguments. -# -# If no channel or target arguments or environment variables are specified, will default to stable -# channel and x86_64-pc-windows-msvc target. -# -# The file appveyor_rust_install.ps1 must exist in the root directory of the repository. +# For simple configurations, instead of using the build matrix, you can simply set the +# default-toolchain and default-host manually here. install: -- ps: .\appveyor_rust_install.ps1 - -# Alternative install command for simple configurations without build matrix (uncomment line and -# comment above line): -#- ps: .\appveyor_rust_install.ps1 -channel stable -target x86_64-pc-windows-msvc + - 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 ## -# Uses 'cargo build' to build. Alternatively, the project may call rustc directly or perform other -# build commands. Rust will automatically be placed in the PATH environment variable. -build_script: -- cmd: cargo build --verbose +# '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 -## Build Script ## - -# Uses 'cargo test' to run tests. Alternatively, the project may call compiled programs directly or -# perform other testing commands. Rust will automatically be placed in the PATH environment -# variable. +# Uses 'cargo test' to run tests and build. Alternatively, the project may call compiled programs +#directly or perform other testing commands. Rust will automatically be placed in the PATH +# environment variable. test_script: -- cmd: cargo test --verbose + - cargo test --verbose %cargoflags% diff --git a/appveyor_rust_install.ps1 b/appveyor_rust_install.ps1 deleted file mode 100644 index 8e12c2e..0000000 --- a/appveyor_rust_install.ps1 +++ /dev/null @@ -1,66 +0,0 @@ -##### Appveyor Rust 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. By default, -# Rust will be installed to C:\Rust for easy usage, but this path can be overridden by setting the -# RUST_INSTALL_DIR environment variable. The URL to download rust distributions defaults to -# https://static.rust-lang.org/dist/ but can overridden by setting the RUST_DOWNLOAD_URL environment -# variable. -# -# For simple configurations, instead of using the build matrix, you can override the channel and -# target environment variables with the --channel and --target script arguments. -# -# If no channel or target arguments or environment variables are specified, will default to stable -# channel and x86_64-pc-windows-msvc target. - -param([string]$channel=${env:channel}, [string]$target=${env:target}) - -# Initialize our parameters from arguments and environment variables, falling back to defaults -if (!$channel) { - $channel = "stable" -} -if (!$target) { - $target = "x86_64-pc-windows-msvc" -} - -$downloadUrl = "https://static.rust-lang.org/dist/" -if ($env:RUST_DOWNLOAD_URL) { - $downloadUrl = $env:RUST_DOWNLOAD_URL -} - -$installDir = "C:\Rust" -if ($env:RUST_INSTALL_DIR) { - $installUrl = $env:RUST_INSTALL_DIR -} - -# Download manifest so we can find actual filename of installer to download. Needed mostly for -# stable channel. -echo "Downloading $channel channel manifest" -$manifest = "${env:Temp}\channel-rust-${channel}" -Start-FileDownload "${downloadUrl}channel-rust-${channel}" -FileName "$manifest" - -# Search the manifest lines for the correct filename based on target -$match = Get-Content "$manifest" | Select-String -pattern "${target}.exe" -simplematch - -if (!$match -or !$match.line) { - throw "Could not find $target in $channel channel manifest" -} - -$installer = $match.line - -# Download installer -echo "Downloading ${downloadUrl}$installer" -Start-FileDownload "${downloadUrl}$installer" -FileName "${env:Temp}\$installer" - -# Execute installer and wait for it to finish -echo "Installing $installer to $installDir" -&"${env:Temp}\$installer" /VERYSILENT /NORESTART /DIR="$installDir" | Write-Output - -# Add Rust to the path. -$env:Path += ";${installDir}\bin;C:\MinGW\bin" - -echo "Installation of $channel Rust $target completed" - -# Test and display installed version information for rustc and cargo -rustc -V -cargo -V \ No newline at end of file