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