@@ -16,15 +16,13 @@ jobs:
1616 echo 'rust_versions={"rust": ["stable", "1.83"]}' >> "$GITHUB_OUTPUT"
1717
1818 # Build the workspace for a target architecture
19- build :
19+ build-tier2 :
2020 runs-on : ubuntu-24.04
2121 needs : setup
2222 strategy :
2323 matrix :
2424 rust : ${{ fromJSON(needs.setup.outputs.matrix).rust }}
2525 target :
26- - armebv7r-none-eabi
27- - armebv7r-none-eabihf
2826 - armv7r-none-eabi
2927 - armv7r-none-eabihf
3028 - armv7a-none-eabi
@@ -38,101 +36,112 @@ jobs:
3836 rustup target add ${{ matrix.target }}
3937 - name : Build
4038 run : |
41- cargo build --target ${{ matrix.target }} --features "serde, defmt, check-asm"
42- cargo build --target ${{ matrix.target }} --no-default-features
39+ cargo build --target ${{ matrix.target }}
40+ cargo build --target ${{ matrix.target }} --features "serde, defmt, critical-section-multi-core, check-asm"
41+ cargo build --target ${{ matrix.target }} --features "serde, defmt, critical-section-single-core, check-asm"
4342
44- build-versatileab :
43+ # These targets are in nightly and coming to stable soon
44+ build-tier2-nightly :
4545 runs-on : ubuntu-24.04
4646 needs : setup
4747 strategy :
4848 matrix :
49- rust : ${{ fromJSON(needs.setup.outputs.matrix).rust }}
49+ target :
50+ - armv7a-none-eabi
51+ - armv7a-none-eabihf
52+ - armv7r-none-eabi
53+ - armv7r-none-eabihf
54+ - armv8r-none-eabihf
5055 steps :
5156 - name : Checkout
5257 uses : actions/checkout@v4
5358 - name : Install rust
5459 run : |
55- rustup install ${{ matrix.rust }}
56- rustup default ${{ matrix.rust }}
57- rustup target add armv7a-none-eabi
58- rustup target add armv7r-none-eabi
59- rustup target add armv7r-none-eabihf
60+ rustup install nightly-2025-10-29
61+ rustup target add ${{ matrix.target }} --toolchain nightly-2025-10-29
6062 - name : Build
6163 run : |
62- cargo build --manifest-path ./examples/versatileab/Cargo.toml --target armv7a-none-eabi
63- cargo build --manifest-path ./examples/versatileab/Cargo.toml --target armv7r-none-eabi
64- cargo build --manifest-path ./examples/versatileab/Cargo.toml --target armv7r-none-eabihf
64+ cargo +nightly-2025-10-29 build --target ${{ matrix.target }}
65+ cargo +nightly-2025-10-29 build --target ${{ matrix.target }} --features "serde, defmt, critical-section-multi-core, check-asm"
66+ cargo +nightly-2025-10-29 build --target ${{ matrix.target }} --features "serde, defmt, critical-section-single-core, check-asm"
6567
66- build-mps3-an536 :
68+ # These targets need build-std, and have no atomics so cannot build the critical-section module
69+ build-tier3-no-atomics :
6770 runs-on : ubuntu-24.04
6871 needs : setup
6972 strategy :
7073 matrix :
71- rust : ${{ fromJSON(needs.setup.outputs.matrix).rust }}
74+ target :
75+ - armv4t-none-eabi
76+ - thumbv4t-none-eabi
77+ - armv5te-none-eabi
78+ - thumbv5te-none-eabi
7279 steps :
7380 - name : Checkout
7481 uses : actions/checkout@v4
7582 - name : Install rust
7683 run : |
77- rustup install nightly
78- rustup default nightly
79- rustup component add rust-src --toolchain nightly
84+ rustup install nightly-2025-10-29
85+ rustup component add rust-src --toolchain nightly-2025-10-29
8086 - name : Build
8187 run : |
82- cargo build --manifest-path ./examples/mps3-an536/Cargo.toml --target armv8r-none-eabihf -Zbuild-std=core
88+ cargo +nightly-2025-10-29 build --target ${{ matrix.target }} -Zbuild-std=core
89+ cargo +nightly-2025-10-29 build --target ${{ matrix.target }} -Zbuild-std=core --features "serde, defmt, check-asm"
8390
84- # Build the host tools
85- build-host :
91+ build-versatileab :
8692 runs-on : ubuntu-24.04
8793 needs : setup
8894 strategy :
8995 matrix :
90- rust : [stable, 1.59]
96+ rust : ${{ fromJSON(needs.setup.outputs.matrix).rust }}
9197 steps :
9298 - name : Checkout
9399 uses : actions/checkout@v4
94- - name : Install rust
100+ - name : Build
95101 run : |
96- rustup install ${{ matrix.rust }}
97- rustup default ${{ matrix.rust }}
102+ cd examples/versatileab
103+ cargo build --target armv7a-none-eabi
104+ cargo build --target armv7r-none-eabi
105+ cargo build --target armv7r-none-eabihf
106+
107+ build-mps3-an536 :
108+ runs-on : ubuntu-24.04
109+ needs : setup
110+ strategy :
111+ matrix :
112+ rust : ${{ fromJSON(needs.setup.outputs.matrix).rust }}
113+ steps :
114+ - name : Checkout
115+ uses : actions/checkout@v4
98116 - name : Build
99117 run : |
100- cd arm-targets
101- cargo build
102- cargo test
118+ cd examples/mps3-an536
119+ cargo build --target armv8r-none-eabihf
103120
104- # Build the workspace for the target architecture but using nightly to compile libcore
105- # Technically it doesn't need 'setup' but it makes the graph look nicer
106- build-tier3 :
121+ # Build the host tools
122+ build-host :
107123 runs-on : ubuntu-24.04
108124 needs : setup
109125 strategy :
110126 matrix :
111- target :
112- - armv7a-none-eabi
113- - armv7a-none-eabihf
114- - armv7r-none-eabi
115- - armv7r-none-eabihf
116- - armv8r-none-eabihf
117- - armebv7r-none-eabi
118- - armebv7r-none-eabihf
127+ rust : [stable, 1.59]
119128 steps :
120129 - name : Checkout
121130 uses : actions/checkout@v4
122131 - name : Install rust
123132 run : |
124- rustup install nightly
125- rustup default nightly
126- rustup component add rust-src --toolchain nightly
133+ rustup install ${{ matrix.rust }}
134+ rustup default ${{ matrix.rust }}
127135 - name : Build
128136 run : |
129- cargo build --target ${{ matrix.target }} -Zbuild-std=core --features "serde, defmt, check-asm"
130- cargo build --target ${{ matrix.target }} -Zbuild-std=core --no-default-features
137+ cd arm-targets
138+ cargo build
139+ cargo test
131140
132141 # Gather all the above build jobs together for the purposes of getting an overall pass-fail
133142 build-all :
134143 runs-on : ubuntu-24.04
135- needs : [build, build-tier3, build-host, build-versatileab, build-mps3-an536]
144+ needs : [build-tier2 , build-tier2-nightly, build- tier3-no-atomics , build-host, build-versatileab, build-mps3-an536]
136145 steps :
137146 - run : /bin/true
138147
@@ -145,8 +154,6 @@ jobs:
145154 rust : ${{ fromJSON(needs.setup.outputs.matrix).rust }}
146155 target :
147156 - armv7a-none-eabi
148- - armebv7r-none-eabi
149- - armebv7r-none-eabihf
150157 - armv7r-none-eabi
151158 - armv7r-none-eabihf
152159 steps :
@@ -160,7 +167,6 @@ jobs:
160167 - name : Build docs
161168 run : |
162169 cargo doc --target ${{ matrix.target }}
163- cargo doc --target ${{ matrix.target }} --no-default-features
164170 cargo doc --target ${{ matrix.target }} --all-features
165171
166172 # Build the docs for the host tools
@@ -235,8 +241,6 @@ jobs:
235241 matrix :
236242 rust : ${{ fromJSON(needs.setup.outputs.matrix).rust }}
237243 target :
238- - armebv7r-none-eabi
239- - armebv7r-none-eabihf
240244 - armv7r-none-eabi
241245 - armv7r-none-eabihf
242246 - armv7a-none-eabi
@@ -303,10 +307,6 @@ jobs:
303307 steps :
304308 - name : Checkout
305309 uses : actions/checkout@v4
306- - name : Install rust
307- run : |
308- rustup install 1.89
309- rustup default 1.89
310310 - name : Install Dependencies
311311 run : |
312312 sudo apt-get -y update
0 commit comments