mirror of https://github.com/lukechilds/cc-rs.git
Alex Crichton
5 years ago
10 changed files with 140 additions and 191 deletions
@ -0,0 +1,122 @@ |
|||||
|
name: CI |
||||
|
on: [push, pull_request] |
||||
|
|
||||
|
jobs: |
||||
|
test: |
||||
|
name: Test |
||||
|
runs-on: ${{ matrix.os }} |
||||
|
strategy: |
||||
|
matrix: |
||||
|
build: [stable, beta, nightly, linux32, macos, aarch64-ios, win32, win64, mingw32, mingw64, windows-2016] |
||||
|
include: |
||||
|
- build: stable |
||||
|
os: ubuntu-latest |
||||
|
rust: stable |
||||
|
target: x86_64-unknown-linux-gnu |
||||
|
- build: beta |
||||
|
os: ubuntu-latest |
||||
|
rust: beta |
||||
|
target: x86_64-unknown-linux-gnu |
||||
|
- build: nightly |
||||
|
os: ubuntu-latest |
||||
|
rust: nightly |
||||
|
target: x86_64-unknown-linux-gnu |
||||
|
- build: linux32 |
||||
|
os: ubuntu-latest |
||||
|
rust: stable |
||||
|
target: i686-unknown-linux-gnu |
||||
|
- build: macos |
||||
|
os: macos-latest |
||||
|
rust: stable |
||||
|
target: x86_64-apple-darwin |
||||
|
- build: aarch64-ios |
||||
|
os: macos-latest |
||||
|
rust: stable |
||||
|
target: aarch64-apple-ios |
||||
|
no_run: --no-run |
||||
|
- build: win32 |
||||
|
os: windows-2016 |
||||
|
rust: stable-i686-msvc |
||||
|
target: i686-pc-windows-msvc |
||||
|
- build: win64 |
||||
|
os: windows-latest |
||||
|
rust: stable |
||||
|
target: x86_64-pc-windows-msvc |
||||
|
- build: mingw32 |
||||
|
os: windows-latest |
||||
|
rust: stable-i686-gnu |
||||
|
target: i686-pc-windows-gnu |
||||
|
- build: mingw64 |
||||
|
os: windows-latest |
||||
|
rust: stable-x86_64-gnu |
||||
|
target: x86_64-pc-windows-gnu |
||||
|
- build: windows-2016 |
||||
|
os: windows-2016 |
||||
|
rust: stable-x86_64 |
||||
|
target: x86_64-pc-windows-msvc |
||||
|
steps: |
||||
|
- uses: actions/checkout@master |
||||
|
- name: Install Rust (rustup) |
||||
|
run: rustup update ${{ matrix.rust }} && rustup default ${{ matrix.rust }} |
||||
|
if: matrix.os != 'macos-latest' |
||||
|
- name: Install Rust (macos) |
||||
|
run: | |
||||
|
curl https://sh.rustup.rs | sh -s -- -y |
||||
|
echo "##[add-path]$HOME/.cargo/bin" |
||||
|
if: matrix.os == 'macos-latest' |
||||
|
- run: rustup target add ${{ matrix.target }} |
||||
|
- name: Install g++-multilib |
||||
|
run: | |
||||
|
set -e |
||||
|
# Remove the ubuntu-toolchain-r/test PPA, which is added by default. |
||||
|
# Some packages were removed, and this is causing the g++multilib |
||||
|
# install to fail. Similar issue: |
||||
|
# https://github.com/scikit-learn/scikit-learn/issues/13928. |
||||
|
sudo add-apt-repository --remove ppa:ubuntu-toolchain-r/test |
||||
|
sudo apt-get install g++-multilib |
||||
|
if: matrix.build == 'linux32' |
||||
|
- run: cargo build |
||||
|
- run: cargo test ${{ matrix.no_run }} |
||||
|
- run: cargo test ${{ matrix.no_run }} --features parallel |
||||
|
- run: cargo test ${{ matrix.no_run }} --manifest-path cc-test/Cargo.toml --target ${{ matrix.target }} |
||||
|
- run: cargo test ${{ matrix.no_run }} --manifest-path cc-test/Cargo.toml --target ${{ matrix.target }} --features parallel |
||||
|
- run: cargo test ${{ matrix.no_run }} --manifest-path cc-test/Cargo.toml --target ${{ matrix.target }} --release |
||||
|
|
||||
|
msrv: |
||||
|
name: MSRV |
||||
|
runs-on: ${{ matrix.os }} |
||||
|
strategy: |
||||
|
matrix: |
||||
|
os: [ubuntu-latest, windows-latest] |
||||
|
steps: |
||||
|
- uses: actions/checkout@master |
||||
|
- name: Install Rust |
||||
|
run: rustup update 1.31.0 && rustup default 1.31.0 |
||||
|
- run: cargo build |
||||
|
|
||||
|
rustfmt: |
||||
|
name: Rustfmt |
||||
|
runs-on: ubuntu-latest |
||||
|
steps: |
||||
|
- uses: actions/checkout@master |
||||
|
- name: Install Rust |
||||
|
run: rustup update stable && rustup default stable && rustup component add rustfmt |
||||
|
- run: cargo fmt -- --check |
||||
|
|
||||
|
publish_docs: |
||||
|
name: Publish Documentation |
||||
|
runs-on: ubuntu-latest |
||||
|
steps: |
||||
|
- uses: actions/checkout@master |
||||
|
- name: Install Rust |
||||
|
run: rustup update stable && rustup default stable |
||||
|
- name: Build documentation |
||||
|
run: cargo doc --no-deps --all-features |
||||
|
- name: Publish documentation |
||||
|
run: | |
||||
|
cd target/doc |
||||
|
git init |
||||
|
git add . |
||||
|
git -c user.name='ci' -c user.email='ci' commit -m init |
||||
|
git push -f -q https://git:${{ secrets.github_token }}@github.com/${{ github.repository }} HEAD:gh-pages |
||||
|
if: github.event_name == 'push' && github.event.ref == 'refs/heads/master' |
@ -1,105 +0,0 @@ |
|||||
# Note for forks: Azure Pipelines is triggered only by commits to the branches |
|
||||
# matching the patterns below. |
|
||||
# See https://docs.microsoft.com/en-us/azure/devops/pipelines/build/triggers |
|
||||
trigger: |
|
||||
- master |
|
||||
- ci-* |
|
||||
|
|
||||
jobs: |
|
||||
- job: min_linux |
|
||||
pool: |
|
||||
vmImage: ubuntu-16.04 |
|
||||
displayName: Minimum Rust (Linux) |
|
||||
variables: |
|
||||
TOOLCHAIN: 1.31.0 |
|
||||
steps: |
|
||||
- template: ci/azure-install-rust.yml |
|
||||
- script: cargo build |
|
||||
|
|
||||
- job: min_Windows |
|
||||
pool: |
|
||||
vmImage: vs2017-win2016 |
|
||||
displayName: Minimum Rust (Windows) |
|
||||
variables: |
|
||||
TOOLCHAIN: 1.31.0 |
|
||||
steps: |
|
||||
- template: ci/azure-install-rust.yml |
|
||||
- script: cargo build |
|
||||
|
|
||||
- job: Linux |
|
||||
pool: |
|
||||
vmImage: ubuntu-16.04 |
|
||||
steps: |
|
||||
- template: ci/azure-steps.yml |
|
||||
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) |
|
@ -1,38 +0,0 @@ |
|||||
steps: |
|
||||
- bash: | |
|
||||
set -e |
|
||||
toolchain=$TOOLCHAIN |
|
||||
if [ "$toolchain" = "" ]; then |
|
||||
toolchain=stable |
|
||||
fi |
|
||||
if command -v rustup; then |
|
||||
rustup update $toolchain |
|
||||
rustup default $toolchain |
|
||||
else |
|
||||
curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain $toolchain |
|
||||
echo "##vso[task.prependpath]$HOME/.cargo/bin" |
|
||||
fi |
|
||||
displayName: Install rust (unix) |
|
||||
condition: ne( variables['Agent.OS'], 'Windows_NT' ) |
|
||||
|
|
||||
- bash: | |
|
||||
set -e |
|
||||
toolchain=$TOOLCHAIN |
|
||||
if [ "$toolchain" = "" ]; then |
|
||||
toolchain=stable-$TARGET |
|
||||
fi |
|
||||
if command -v rustup; then |
|
||||
rustup update --no-self-update $toolchain |
|
||||
rustup default $toolchain |
|
||||
else |
|
||||
curl.exe -sSf -o rustup-init.exe https://win.rustup.rs |
|
||||
./rustup-init.exe -y --default-toolchain $toolchain |
|
||||
echo "##vso[task.prependpath]$USERPROFILE/.cargo/bin" |
|
||||
fi |
|
||||
displayName: Install rust (windows) |
|
||||
condition: eq( variables['Agent.OS'], 'Windows_NT' ) |
|
||||
|
|
||||
- script: | |
|
||||
rustc -Vv |
|
||||
cargo -V |
|
||||
displayName: Query rust and cargo versions |
|
@ -1,28 +0,0 @@ |
|||||
steps: |
|
||||
- template: azure-install-rust.yml |
|
||||
- bash: rustup target add $TARGET |
|
||||
displayName: Install Rust target |
|
||||
|
|
||||
# Remove the ubuntu-toolchain-r/test PPA, which is added by default. Some |
|
||||
# packages were removed, and this is causing the g++multilib install to fail. |
|
||||
# Similar issue: https://github.com/scikit-learn/scikit-learn/issues/13928 |
|
||||
- bash: sudo add-apt-repository --remove ppa:ubuntu-toolchain-r/test |
|
||||
condition: eq( variables['Agent.OS'], 'Linux' ) |
|
||||
displayName: Remove ppa:ubuntu-toolchain-r/test |
|
||||
|
|
||||
- bash: sudo apt-get install g++-multilib |
|
||||
condition: eq( variables['Agent.OS'], 'Linux' ) |
|
||||
displayName: Install g++-multilib |
|
||||
|
|
||||
- script: cargo build |
|
||||
displayName: "Normal build" |
|
||||
- bash: cargo test $NO_RUN |
|
||||
displayName: "Crate tests" |
|
||||
- bash: cargo test $NO_RUN --features parallel |
|
||||
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)" |
|
Loading…
Reference in new issue