Skip to content

Commit 3091d55

Browse files
committed
workflow: Create basic build of rust samples
Build the rust code samples to make sure that Rust support is working on all supported targets. This adds toolchain support and rust target support for the supported Cortex-M, and RISC-V targets. The workflow runs on every pull request and on every push. Signed-off-by: David Brown <[email protected]>
1 parent 07c6e41 commit 3091d55

File tree

2 files changed

+77
-0
lines changed

2 files changed

+77
-0
lines changed

.github/workflows/build.yml

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
# Copyright (c) 2024 Linaro LTD
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
name: Build
5+
6+
# Build the rust samples and tests using the current Zephyr.
7+
8+
on:
9+
push:
10+
pull_request:
11+
schedule:
12+
- cron: "0 0 * * *"
13+
14+
jobs:
15+
build:
16+
strategy:
17+
fail-fast: false
18+
matrix:
19+
os: [ubuntu-22.04]
20+
runs-on: ${{ matrix.os }}
21+
steps:
22+
- name: Checkout
23+
uses: actions/checkout@v4
24+
with:
25+
path: zephyr-rust-lang
26+
27+
- name: Set up Python
28+
uses: actions/setup-python@v5
29+
with:
30+
python-version: 3.11
31+
32+
- name: Setup Zephyr project
33+
uses: zephyrproject-rtos/action-zephyr-setup@v1
34+
with:
35+
app-path: zephyr-rust-lang
36+
manifest-file-name: ci-manifest.yml
37+
toolchains: arm-zephyr-eabi:riscv64-zephyr-elf
38+
39+
- name: Install Rust Targets
40+
shell: bash
41+
run: |
42+
rustup target add riscv32i-unknown-none-elf
43+
rustup target add riscv64imac-unknown-none-elf
44+
rustup target add thumbv6m-none-eabi
45+
rustup target add thumbv7em-none-eabi
46+
rustup target add thumbv7m-none-eabi
47+
rustup target add thumbv8m.main-none-eabi
48+
49+
- name: Build firmware
50+
working-directory: zephyr-rust-lang
51+
shell: bash
52+
run: |
53+
cargo --version
54+
55+
west twister -T samples -v --inline-logs --integration

ci-manifest.yml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# Copyright (c) 2021 Nordic Semiconductor ASA
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
# Although this normally lives as a module, the local CI uses action-zephyr-setup which wants the
5+
# application to have a manifest.
6+
7+
manifest:
8+
remotes:
9+
- name: zephyrproject-rtos
10+
url-base: https://github.com/zephyrproject-rtos
11+
12+
projects:
13+
- name: zephyr
14+
remote: zephyrproject-rtos
15+
revision: main
16+
import:
17+
# By using name-allowlist we can clone only the modules that are
18+
# strictly needed by the application.
19+
name-allowlist:
20+
- cmsis # required by the ARM port
21+
- hal_nordic # required by the custom_plank board (Nordic based)
22+
- hal_stm32 # required by the nucleo_f302r8 board (STM32 based)

0 commit comments

Comments
 (0)