diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index ed57bd3..0000000 --- a/.travis.yml +++ /dev/null @@ -1,61 +0,0 @@ -language: rust -sudo: false - -matrix: - include: - - rust: 1.16.0 - install: - script: cargo build - - rust: stable - env: TARGET=x86_64-unknown-linux-gnu NO_ADD=1 - - rust: stable - env: TARGET=i686-unknown-linux-gnu - - os: osx - env: TARGET=x86_64-apple-darwin NO_ADD=1 - - os: osx - env: TARGET=aarch64-apple-ios NO_RUN=--no-run TARGET_SYSROOT=$(xcrun -sdk iphoneos --show-sdk-path) - - rust: beta - env: TARGET=x86_64-unknown-linux-gnu NO_ADD=1 - - rust: nightly - env: TARGET=x86_64-unknown-linux-gnu NO_ADD=1 - - - name: "master doc to gh-pages" - install: true - rust: nightly - script: - - cargo doc --no-deps --all-features - deploy: - provider: script - script: curl -LsSf https://git.io/fhJ8n | rustc - && (cd target/doc && ../../rust_out) - skip_cleanup: true - on: - branch: master - -install: - - if [ -z "$NO_ADD" ]; then rustup target add $TARGET; fi - -script: - - cargo build --verbose - # FIXME: no idea why `--test-threads=1` is required on the OSX builder, it - # just randomly broke one day when the travis image was upgraded, and - # debugging turned up no easily found source of bugs... - # - # good build - https://travis-ci.org/alexcrichton/cc-rs/builds/409602374 - # bad build - https://travis-ci.org/alexcrichton/cc-rs/builds/410489079 - # - # Those are using the same compiler, same commit, same... everything. Except - # the OSX image! No idea what changed... - - cargo test --verbose $NO_RUN -- --test-threads=1 - - cargo test --verbose --features parallel $NO_RUN -- --test-threads=1 - - cargo test --manifest-path cc-test/Cargo.toml --target $TARGET $NO_RUN - - cargo test --manifest-path cc-test/Cargo.toml --target $TARGET --features parallel $NO_RUN - - cargo test --manifest-path cc-test/Cargo.toml --target $TARGET --release $NO_RUN - - cargo clean && cargo build - -notifications: - email: - on_success: never -addons: - apt: - packages: - - g++-multilib diff --git a/README.md b/README.md index 8c54534..e3c6ad0 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,7 @@ A library to compile C/C++/assembly into a Rust library/application. -[![Build Status](https://travis-ci.com/alexcrichton/cc-rs.svg?branch=master)](https://travis-ci.com/alexcrichton/cc-rs) -[![Build status](https://ci.appveyor.com/api/projects/status/onu270iw98h81nwv?svg=true)](https://ci.appveyor.com/project/alexcrichton/cc-rs) +[![Build Status](https://dev.azure.com/alexcrichton/cc-rs/_apis/build/status/alexcrichton.cc-rs?branchName=master)](https://dev.azure.com/alexcrichton/cc-rs/_build/latest?definitionId=5&branchName=master) [Documentation](https://docs.rs/cc) diff --git a/appveyor.yml b/appveyor.yml deleted file mode 100644 index 5e563db..0000000 --- a/appveyor.yml +++ /dev/null @@ -1,55 +0,0 @@ -environment: - - # At the time this was added AppVeyor was having troubles with checking - # revocation of SSL certificates of sites like static.rust-lang.org and what - # we think is crates.io. The libcurl HTTP client by default checks for - # revocation on Windows and according to a mailing list [1] this can be - # disabled. - # - # The `CARGO_HTTP_CHECK_REVOKE` env var here tells cargo to disable SSL - # revocation checking on Windows in libcurl. Note, though, that rustup, which - # we're using to download Rust here, also uses libcurl as the default backend. - # Unlike Cargo, however, rustup doesn't have a mechanism to disable revocation - # checking. To get rustup working we set `RUSTUP_USE_HYPER` which forces it to - # use the Hyper instead of libcurl backend. Both Hyper and libcurl use - # schannel on Windows but it appears that Hyper configures it slightly - # differently such that revocation checking isn't turned on by default. - # - # [1]: https://curl.haxx.se/mail/lib-2016-03/0202.html - RUSTUP_USE_HYPER: 1 - CARGO_HTTP_CHECK_REVOKE: false - - matrix: - - TARGET: x86_64-pc-windows-msvc - ARCH: amd64 - VS: C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat - - TARGET: x86_64-pc-windows-msvc - ARCH: amd64 - VS: C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat - - TARGET: i686-pc-windows-msvc - ARCH: x86 - VS: C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat - - TARGET: i686-pc-windows-msvc - ARCH: x86 - VS: C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat - - TARGET: x86_64-pc-windows-gnu - MSYS_BITS: 64 - - TARGET: i686-pc-windows-gnu - MSYS_BITS: 32 -install: - - ps: Start-FileDownload "https://static.rust-lang.org/dist/rust-nightly-${env:TARGET}.exe" - - rust-nightly-%TARGET%.exe /VERYSILENT /NORESTART /DIR="C:\Program Files (x86)\Rust" - - if defined VS call "%VS%" %ARCH% - - set PATH=%PATH%;C:\Program Files (x86)\Rust\bin - - if defined MSYS_BITS set PATH=%PATH%;C:\msys64\mingw%MSYS_BITS%\bin - - rustc -V - - cargo -V - -build: false - -test_script: - - cargo test --target %TARGET% - - cargo test --features parallel --target %TARGET% - - cargo test --manifest-path cc-test/Cargo.toml --target %TARGET% - - cargo test --manifest-path cc-test/Cargo.toml --features parallel --target %TARGET% - - cargo test --manifest-path cc-test/Cargo.toml --release --target %TARGET% diff --git a/azure-pipelines.yml b/azure-pipelines.yml new file mode 100644 index 0000000..f20e1a7 --- /dev/null +++ b/azure-pipelines.yml @@ -0,0 +1,87 @@ +trigger: + - master + +jobs: + - job: min + displayName: Minimum Rust + steps: + - template: ci/azure-install-rust.yml + parameters: + toolchain: 1.16.0 + - script: cargo build + + - job: Linux + pool: + vmImage: ubuntu-16.04 + strategy: + matrix: + x86_64: + TARGET: x86_64-unknown-linux-gnu + i686: + TARGET: i686-unknown-linux-gnu + x86_64-beta: + TARGET: x86_64-unknown-linux-gnu + TOOLCHAIN: beta + x86_64-nightly: + TARGET: x86_64-unknown-linux-gnu + TOOLCHAIN: nightly + + - job: macOS + pool: + vmImage: macos-10.13 + steps: + - template: ci/azure-steps.yml + strategy: + matrix: + x86_64: + TARGET: x86_64-apple-darwin + aarch64-ios: + TARGET: aarch64-apple-ios + NO_RUN: --no-run + + - job: Windows_vs2019 + pool: + vmImage: windows-2019 + steps: + - template: ci/azure-steps.yml + strategy: + matrix: + x86_64-msvc: + TARGET: x86_64-pc-windows-msvc + + - job: Windows_vs2017 + pool: + vmImage: vs2017-win2016 + steps: + - template: ci/azure-steps.yml + strategy: + matrix: + x86_64-msvc: + TARGET: x86_64-pc-windows-msvc + i686-msvc: + TARGET: i686-pc-windows-msvc + x86_64-gnu: + TARGET: x86_64-pc-windows-gnu + i686-gnu: + TARGET: i686-pc-windows-gnu + + - job: Windows_vs2015 + pool: + vmImage: vs2015-win2012r2 + steps: + - template: ci/azure-steps.yml + strategy: + matrix: + x86_64-msvc: + TARGET: x86_64-pc-windows-msvc + i686-msvc: + TARGET: i686-pc-windows-msvc + + - job: docs + steps: + - template: ci/azure-install-rust.yml + - script: cargo doc --no-deps --all-features + - script: curl -LsSf https://git.io/fhJ8n | rustc - && (cd target/doc && ../../rust_out) + condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/master')) + env: + GITHUB_DEPLOY_KEY: $(GITHUB_DEPLOY_KEY) diff --git a/ci/azure-install-rust.yml b/ci/azure-install-rust.yml new file mode 100644 index 0000000..fa7eae4 --- /dev/null +++ b/ci/azure-install-rust.yml @@ -0,0 +1,23 @@ +steps: + - bash: | + set -e + toolchain=$TOOLCHAIN + if [ "$toolchain" = "" ]; then + toolchain=stable + fi + curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain $toolchain + echo "##vso[task.prependpath]$HOME/.cargo/bin" + displayName: Install rust (unix) + condition: ne( variables['Agent.OS'], 'Windows_NT' ) + + - script: | + curl -sSf -o rustup-init.exe https://win.rustup.rs + rustup-init.exe -y --default-toolchain stable-%TARGET% + echo ##vso[task.prependpath]%USERPROFILE%\.cargo\bin + displayName: Install rust (windows) + condition: eq( variables['Agent.OS'], 'Windows_NT' ) + + - script: | + rustc -Vv + cargo -V + displayName: Query rust and cargo versions diff --git a/ci/azure-steps.yml b/ci/azure-steps.yml new file mode 100644 index 0000000..3e8cf50 --- /dev/null +++ b/ci/azure-steps.yml @@ -0,0 +1,17 @@ +steps: + - template: azure-install-rust.yml + - bash: rustup target add $TARGET + displayName: Install Rust target + + - script: cargo build + displayName: "Normal build" + - bash: cargo test $NO_RUN -- --test-threads 1 + displayName: "Crate tests" + - bash: cargo test $NO_RUN --features parallel -- --test-threads 1 + displayName: "Crate tests (parallel)" + - bash: cargo test $NO_RUN --manifest-path cc-test/Cargo.toml --target $TARGET + displayName: "cc-test tests" + - bash: cargo test $NO_RUN --manifest-path cc-test/Cargo.toml --target $TARGET --features parallel + displayName: "cc-test tests (parallel)" + - bash: cargo test $NO_RUN --manifest-path cc-test/Cargo.toml --target $TARGET --release + displayName: "cc-test tests (release)"