1+ on :
2+ push :
3+ branches : [ master ]
4+ pull_request :
5+ merge_group :
6+
7+ name : Build check (hifive1)
8+
9+ jobs :
10+ # We check that the crate builds and links for all the toolchains and targets.
11+ build-riscv :
12+ strategy :
13+ matrix :
14+ # All generated code should be running on stable now, MRSV is 1.72.0
15+ toolchain : [nightly, stable, 1.72.0]
16+ board : [hifive1, hifive1-revb, redv, lofive, lofive-r1]
17+ include :
18+ # Nightly is only for reference and allowed to fail
19+ - toolchain : nightly
20+ experimental : true
21+ runs-on : ubuntu-latest
22+ continue-on-error : ${{ matrix.experimental || false }}
23+ steps :
24+ - uses : actions/checkout@v4
25+ - name : Update Rust toolchain
26+ run : rustup update ${{ matrix.toolchain }} && rustup default ${{ matrix.toolchain }}
27+ - name : Install Rust target
28+ run : rustup target install riscv32imc-unknown-none-elf
29+ - name : Build (direct)
30+ run : cargo build --package hifive1 --features board-${{ matrix.board }}
31+ - name : Build (vectored)
32+ run : cargo build --package hifive1 --features board-${{ matrix.board }},virq
33+
34+ # On MacOS and Ubuntu, we at least make sure that the crate builds and links.
35+ # On Windows, linking fails when the rt feature is enabled.
36+ build-others :
37+ strategy :
38+ matrix :
39+ os : [ macos-latest, ubuntu-latest ]
40+ board : [hifive1, hifive1-revb, redv, lofive, lofive-r1]
41+ runs-on : ${{ matrix.os }}
42+ steps :
43+ - uses : actions/checkout@v4
44+ - name : Update Rust toolchain
45+ run : rustup update stable && rustup default stable
46+ - name : Rename .cargo/config to .cargo/config.bak to ignore it
47+ run : mv .cargo/config.toml .cargo/config.bak
48+ - name : Build (direct)
49+ run : cargo test --package hifive1 --features board-${{ matrix.board }}
50+ - name : Build (vectored)
51+ run : cargo test --package hifive1 --features board-${{ matrix.board }},virq
52+
0 commit comments