-
Notifications
You must be signed in to change notification settings - Fork 4
93 lines (81 loc) · 2.82 KB
/
run-tests.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
---
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 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/[email protected]
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