Add support for ARM64EC when building with MSVC #917
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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: windows-aarch64 | |
os: windows-latest | |
rust: stable | |
target: aarch64-pc-windows-msvc | |
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: Update Rustup (temporary workaround) | |
run: rustup self update | |
shell: bash | |
if: startsWith(matrix.os, 'windows') | |
- name: Install Rust (rustup) | |
run: rustup update ${{ matrix.rust }} --no-self-update && rustup default ${{ matrix.rust }} | |
shell: bash | |
- 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 update | |
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 | |
cuda: | |
name: Test CUDA support | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@master | |
- name: Install cuda-minimal-build-11-4 | |
shell: bash | |
run: | | |
# https://developer.nvidia.com/cuda-downloads?target_os=Linux&target_arch=x86_64&Distribution=Ubuntu&target_version=20.04&target_type=deb_network | |
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin | |
sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600 | |
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/7fa2af80.pub | |
sudo add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /" | |
sudo apt-get update | |
sudo apt-get -y install cuda-minimal-build-11-4 | |
- name: Test 'cudart' feature | |
shell: bash | |
run: env PATH=/usr/local/cuda/bin:$PATH cargo test --manifest-path cc-test/Cargo.toml --features test_cuda | |
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.34.0 --no-self-update && rustup default 1.34.0 | |
shell: bash | |
- 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/main' |