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