1
+ on :
2
+ push :
3
+ branches : [ staging, trying, master ]
4
+ pull_request :
5
+
6
+ name : Continuous integration
7
+
8
+ jobs :
9
+ ci-linux :
10
+ runs-on : ubuntu-20.04
11
+ continue-on-error : ${{ matrix.experimental || false }}
12
+ strategy :
13
+ matrix :
14
+ # All generated code should be running on stable now, MRSV is 1.42.0
15
+ rust : [nightly, stable, 1.42.0]
16
+
17
+ include :
18
+ # Nightly is only for reference and allowed to fail
19
+ - rust : nightly
20
+ experimental : true
21
+
22
+ steps :
23
+ - uses : actions/checkout@v2
24
+ - uses : actions-rs/toolchain@v1
25
+ with :
26
+ profile : minimal
27
+ toolchain : ${{ matrix.rust }}
28
+ override : true
29
+ - name : Install all Rust targets for ${{ matrix.rust }}
30
+ run : rustup target install --toolchain=${{ matrix.rust }} x86_64-unknown-linux-gnu riscv32imac-unknown-none-elf riscv64imac-unknown-none-elf riscv64gc-unknown-none-elf
31
+ - name : Run CI script for x86_64-unknown-linux-gnu under ${{ matrix.rust }}
32
+ run : |
33
+ cargo check --target x86_64-unknown-linux-gnu --features board-hifive1
34
+ cargo check --target x86_64-unknown-linux-gnu --features board-hifive1-revb
35
+ cargo check --target x86_64-unknown-linux-gnu --features board-redv
36
+ cargo check --target x86_64-unknown-linux-gnu --features board-lofive
37
+ cargo check --target x86_64-unknown-linux-gnu --features board-lofive-r1
38
+ - name : Run CI script for riscv32imac-unknown-none-elf under ${{ matrix.rust }}
39
+ run : |
40
+ cargo check --target riscv32imac-unknown-none-elf --features board-hifive1
41
+ cargo check --target riscv32imac-unknown-none-elf --features board-hifive1-revb
42
+ cargo check --target riscv32imac-unknown-none-elf --features board-redv
43
+ cargo check --target riscv32imac-unknown-none-elf --features board-lofive
44
+ cargo check --target riscv32imac-unknown-none-elf --features board-lofive-r1
45
+ - name : Run CI script for riscv64imac-unknown-none-elf under ${{ matrix.rust }}
46
+ run : |
47
+ cargo check --target riscv64imac-unknown-none-elf --features board-hifive1
48
+ cargo check --target riscv64imac-unknown-none-elf --features board-hifive1-revb
49
+ cargo check --target riscv64imac-unknown-none-elf --features board-redv
50
+ cargo check --target riscv64imac-unknown-none-elf --features board-lofive
51
+ cargo check --target riscv64imac-unknown-none-elf --features board-lofive-r1
52
+ - name : Run CI script for riscv64gc-unknown-none-elf under ${{ matrix.rust }}
53
+ run : |
54
+ cargo check --target riscv64gc-unknown-none-elf --features board-hifive1
55
+ cargo check --target riscv64gc-unknown-none-elf --features board-hifive1-revb
56
+ cargo check --target riscv64gc-unknown-none-elf --features board-redv
57
+ cargo check --target riscv64gc-unknown-none-elf --features board-lofive
58
+ cargo check --target riscv64gc-unknown-none-elf --features board-lofive-r1
59
+
60
+ # On macOS and Windows, we at least make sure that the crate builds and links.
61
+ build-other :
62
+ strategy :
63
+ matrix :
64
+ os :
65
+ - macOS-latest
66
+ - windows-latest
67
+ runs-on : ${{ matrix.os }}
68
+
69
+ steps :
70
+ - uses : actions/checkout@v2
71
+ - uses : actions-rs/toolchain@v1
72
+ with :
73
+ profile : minimal
74
+ toolchain : stable
75
+ override : true
76
+ - name : Build crate for host OS
77
+ run : |
78
+ cargo build --features board-hifive1
79
+ cargo build --features board-hifive1-revb
80
+ cargo build --features board-redv
81
+ cargo build --features board-lofive
82
+ cargo build --features board-lofive-r1
0 commit comments