Skip to content

Commit ff5f452

Browse files
committed
Update CI workflows
- Let the rust-toolchain.toml file control how the examples are built - Add some features we weren't testing - Drop the big-endian targets that we cannot test in QEMU
1 parent 9d89b63 commit ff5f452

File tree

1 file changed

+56
-56
lines changed

1 file changed

+56
-56
lines changed

.github/workflows/build.yml

Lines changed: 56 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -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"
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"
41+
cargo build --target ${{ matrix.target }} --features "serde, defmt, critical-section-single-core"
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"
66+
cargo +nightly-2025-10-29 build --target ${{ matrix.target }} --features "serde, defmt, critical-section-single-core"
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"
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
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

Comments
 (0)