cpuonly dockerfile #264
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: Tests | |
# Do this on every push, but don't double up on tags | |
on: | |
push: | |
tags-ignore: | |
- '**' | |
pull_request: | |
branches: | |
- '**' | |
# The CI jobs can use a lot of disk space; we take tips from this site to run | |
# the jobs faster and use less space. | |
# https://matklad.github.io/2021/09/04/fast-rust-builds.html | |
env: | |
CARGO_TERM_COLOR: always | |
CARGO_INCREMENTAL: 0 | |
RUSTFLAGS: "-C target-cpu=native -C debuginfo=0 --deny warnings" | |
MWA_BEAM_FILE: /mwa_full_embedded_element_pattern.h5 | |
jobs: | |
test: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout sources | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Install dependencies | |
run: | | |
sudo apt update -y | |
sudo apt install -y \ | |
tzdata \ | |
build-essential \ | |
pkg-config \ | |
cmake \ | |
curl \ | |
git \ | |
lcov \ | |
libcfitsio-dev \ | |
libhdf5-dev \ | |
libfreetype-dev \ | |
libexpat1-dev \ | |
; | |
env: | |
DEBIAN_FRONTEND: noninteractive | |
- name: Install CUDA | |
uses: Jimver/cuda-toolkit@v0.2.11 | |
with: | |
cuda: '12.2.0' | |
- name: Install stable toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
profile: minimal | |
toolchain: stable | |
override: true | |
- name: Get the beam HDF5 file | |
run: sudo curl http://ws.mwatelescope.org/static/mwa_full_embedded_element_pattern.h5 -o $MWA_BEAM_FILE | |
# Test that building works before running tests. Build statically first so | |
# less compiling is needed when running tests. | |
- name: Build with static features | |
run: cargo test --locked --release --features=cuda,all-static --no-run | |
# Can't test with CUDA, no GPUs available in CI | |
- name: Build | |
run: cargo test --locked --release --features=cuda --no-run | |
- name: Run tests | |
run: cargo test --locked --release | |
- name: Run ignored tests | |
run: | | |
# It seems that we use up a lot of space by this point. | |
cargo clean | |
cargo test --locked --release -- --ignored | |
- name: Minimum-specified Rust version works | |
run: | | |
MIN_RUST=$(grep -m1 "rust-version" Cargo.toml | sed 's|.*\"\(.*\)\".*|\1|') | |
~/.cargo/bin/rustup install $MIN_RUST --profile minimal | |
cargo clean | |
cargo +${MIN_RUST} test --locked --release | |
cargo +${MIN_RUST} test --locked --release --features=all-static | |
# Can't test with --all-features because cuda and hip aren't allowed | |
# together. hip is also difficult to install so ignore it. | |
cargo +${MIN_RUST} test --locked --release --features=all-static,cuda --no-run | |
cargo +${MIN_RUST} test --locked --release --features=all-static,cuda,gpu-single --no-run |