Skip to content

Commit fb891c1

Browse files
authored
Merge pull request #643 from jackctj117/Extend-CI-tests
CI-tests additions
2 parents 5ea3de1 + 90a5f29 commit fb891c1

File tree

5 files changed

+265
-24
lines changed

5 files changed

+265
-24
lines changed
Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
name: Wolfboot Reusable Build Workflow for RISC-V
2+
3+
on:
4+
5+
workflow_call:
6+
inputs:
7+
arch:
8+
required: true
9+
type: string
10+
config-file:
11+
required: true
12+
type: string
13+
make-args:
14+
required: false
15+
type: string
16+
17+
jobs:
18+
19+
build:
20+
runs-on: ubuntu-24.04
21+
timeout-minutes: 30
22+
23+
steps:
24+
- uses: actions/checkout@v4
25+
with:
26+
submodules: true
27+
28+
- uses: actions/checkout@v4
29+
with:
30+
repository: sifive/freedom-e-sdk
31+
path: freedom-e-sdk
32+
submodules: recursive
33+
34+
- name: Workaround for sources.list
35+
run: |
36+
# Replace sources
37+
38+
set -euxo pipefail
39+
40+
# Peek (what repos are active now)
41+
apt-cache policy
42+
grep -RInE '^(deb|Types|URIs)' /etc/apt || true
43+
44+
# Enable nullglob so *.list/*.sources that don't exist don't break sed
45+
shopt -s nullglob
46+
47+
echo "Replace sources.list (legacy)"
48+
sudo sed -i \
49+
-e "s|https\?://azure\.archive\.ubuntu\.com/ubuntu/?|http://mirror.arizona.edu/ubuntu/|g" \
50+
/etc/apt/sources.list || true
51+
52+
echo "Replace sources.list.d/*.list (legacy)"
53+
for f in /etc/apt/sources.list.d/*.list; do
54+
sudo sed -i \
55+
-e "s|https\?://azure\.archive\.ubuntu\.com/ubuntu/?|http://mirror.arizona.edu/ubuntu/|g" \
56+
"$f"
57+
done
58+
59+
echo "Replace sources.list.d/*.sources (deb822)"
60+
for f in /etc/apt/sources.list.d/*.sources; do
61+
sudo sed -i \
62+
-e "s|https\?://azure\.archive\.ubuntu\.com/ubuntu/?|http://mirror.arizona.edu/ubuntu/|g" \
63+
-e "s|https\?://azure\.archive\.ubuntu\.com|http://mirror.arizona.edu|g" \
64+
"$f"
65+
done
66+
67+
echo "Fix /etc/apt/apt-mirrors.txt (used by URIs: mirror+file:...)"
68+
if grep -qE '^[[:space:]]*https?://azure\.archive\.ubuntu\.com/ubuntu/?' /etc/apt/apt-mirrors.txt; then
69+
# Replace azure with our mirror (idempotent)
70+
sudo sed -i 's|https\?://azure\.archive\.ubuntu\.com/ubuntu/|http://mirror.arizona.edu/ubuntu/|g' /etc/apt/apt-mirrors.txt
71+
fi
72+
73+
# Peek (verify changes)
74+
grep -RIn "azure.archive.ubuntu.com" /etc/apt || true
75+
grep -RInE '^(deb|Types|URIs)' /etc/apt || true
76+
echo "--- apt-mirrors.txt ---"
77+
cat /etc/apt/apt-mirrors.txt || true
78+
79+
- name: Update repository
80+
run: sudo apt-get update -o Acquire::Retries=3
81+
82+
- name: Download and install SiFive RISC-V toolchain
83+
run: |
84+
# Download SiFive prebuilt toolchain with newlib
85+
wget -q https://static.dev.sifive.com/dev-tools/freedom-tools/v2020.12/riscv64-unknown-elf-toolchain-10.2.0-2020.12.8-x86_64-linux-ubuntu14.tar.gz
86+
tar xzf riscv64-unknown-elf-toolchain-10.2.0-2020.12.8-x86_64-linux-ubuntu14.tar.gz
87+
echo "$GITHUB_WORKSPACE/riscv64-unknown-elf-toolchain-10.2.0-2020.12.8-x86_64-linux-ubuntu14/bin" >> $GITHUB_PATH
88+
89+
- name: make clean
90+
run: |
91+
make distclean
92+
93+
- name: Select config
94+
run: |
95+
cp ${{inputs.config-file}} .config
96+
97+
- name: Build tools
98+
run: |
99+
make -C tools/keytools && make -C tools/bin-assemble
100+
101+
- name: Build wolfboot
102+
run: |
103+
make FREEDOM_E_SDK=$GITHUB_WORKSPACE/freedom-e-sdk CROSS_COMPILE=riscv64-unknown-elf- ${{inputs.make-args}}
104+
Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
name: Wolfboot Reusable Build Workflow for STM32Cube SDK
2+
3+
on:
4+
5+
workflow_call:
6+
inputs:
7+
arch:
8+
required: true
9+
type: string
10+
config-file:
11+
required: true
12+
type: string
13+
cube-repo:
14+
description: 'STM32Cube repository to clone (e.g., STMicroelectronics/STM32CubeL4)'
15+
required: true
16+
type: string
17+
make-args:
18+
required: false
19+
type: string
20+
21+
jobs:
22+
23+
build:
24+
runs-on: ubuntu-latest
25+
timeout-minutes: 30
26+
27+
steps:
28+
- uses: actions/checkout@v4
29+
with:
30+
submodules: true
31+
32+
- uses: actions/checkout@v4
33+
with:
34+
repository: ${{inputs.cube-repo}}
35+
path: STM32Cube
36+
submodules: true
37+
38+
- name: Workaround for sources.list
39+
run: |
40+
# Replace sources
41+
42+
set -euxo pipefail
43+
44+
# Peek (what repos are active now)
45+
apt-cache policy
46+
grep -RInE '^(deb|Types|URIs)' /etc/apt || true
47+
48+
# Enable nullglob so *.list/*.sources that don't exist don't break sed
49+
shopt -s nullglob
50+
51+
echo "Replace sources.list (legacy)"
52+
sudo sed -i \
53+
-e "s|https\?://azure\.archive\.ubuntu\.com/ubuntu/?|http://mirror.arizona.edu/ubuntu/|g" \
54+
/etc/apt/sources.list || true
55+
56+
echo "Replace sources.list.d/*.list (legacy)"
57+
for f in /etc/apt/sources.list.d/*.list; do
58+
sudo sed -i \
59+
-e "s|https\?://azure\.archive\.ubuntu\.com/ubuntu/?|http://mirror.arizona.edu/ubuntu/|g" \
60+
"$f"
61+
done
62+
63+
echo "Replace sources.list.d/*.sources (deb822)"
64+
for f in /etc/apt/sources.list.d/*.sources; do
65+
sudo sed -i \
66+
-e "s|https\?://azure\.archive\.ubuntu\.com/ubuntu/?|http://mirror.arizona.edu/ubuntu/|g" \
67+
-e "s|https\?://azure\.archive\.ubuntu\.com|http://mirror.arizona.edu|g" \
68+
"$f"
69+
done
70+
71+
echo "Fix /etc/apt/apt-mirrors.txt (used by URIs: mirror+file:...)"
72+
if grep -qE '^[[:space:]]*https?://azure\.archive\.ubuntu\.com/ubuntu/?' /etc/apt/apt-mirrors.txt; then
73+
# Replace azure with our mirror (idempotent)
74+
sudo sed -i 's|https\?://azure\.archive\.ubuntu\.com/ubuntu/|http://mirror.arizona.edu/ubuntu/|g' /etc/apt/apt-mirrors.txt
75+
fi
76+
77+
# Peek (verify changes)
78+
grep -RIn "azure.archive.ubuntu.com" /etc/apt || true
79+
grep -RInE '^(deb|Types|URIs)' /etc/apt || true
80+
echo "--- apt-mirrors.txt ---"
81+
cat /etc/apt/apt-mirrors.txt || true
82+
83+
- name: Update repository
84+
run: sudo apt-get update
85+
86+
- name: Install cross compilers
87+
run: |
88+
sudo apt-get install -y gcc-arm-none-eabi
89+
90+
- name: make distclean
91+
run: |
92+
make distclean
93+
94+
- name: Select config
95+
run: |
96+
cp ${{inputs.config-file}} .config && make include/target.h
97+
98+
- name: Build tools
99+
run: |
100+
make -C tools/keytools && make -C tools/bin-assemble
101+
102+
- name: Build wolfboot
103+
run: |
104+
make STM32CUBE="$GITHUB_WORKSPACE/STM32Cube" ${{inputs.make-args}} V=1
105+

.github/workflows/test-configs.yml

Lines changed: 54 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -8,21 +8,19 @@ on:
88

99
jobs:
1010

11-
# TODO: cypsoc6.config requires cy_device_headers.h
11+
# TODO: cypsoc6.config requires cy_device_headers.h and component defines
1212
# cypsoc6_test:
13-
# uses: ./.github/workflows/test-build.yml
13+
# uses: ./.github/workflows/test-build-psoc6.yml
1414
# with:
1515
# arch: arm
1616
# config-file: ./config/examples/cypsoc6.config
1717

18-
# TODO: hifive.config requires RISC-V compiler
19-
# hifive1_test:
20-
# uses: ./.github/workflows/test-build.yml
21-
# with:
22-
# arch: riscv
23-
# config-file: ./config/examples/hifive.config
24-
#
25-
#
18+
hifive1_test:
19+
uses: ./.github/workflows/test-build-riscv.yml
20+
with:
21+
arch: riscv
22+
config-file: ./config/examples/hifive1.config
23+
2624
sama5d3_test:
2725
uses: ./.github/workflows/test-build.yml
2826
with:
@@ -93,6 +91,12 @@ jobs:
9391
config-file: ./config/examples/imx-rt1064.config
9492
make-args: PKA=1 NO_ARM_ASM=1
9593

94+
imx_rt1060_hab_test:
95+
uses: ./.github/workflows/test-build-mcux-sdk.yml
96+
with:
97+
arch: arm
98+
config-file: ./config/examples/imx-rt1060_hab.config
99+
96100
kinetis_k64f_test:
97101
uses: ./.github/workflows/test-build-mcux-sdk.yml
98102
with:
@@ -172,6 +176,20 @@ jobs:
172176
arch: ppc
173177
config-file: ./config/examples/nxp-t2080.config
174178

179+
nxp_ls1028a_test:
180+
uses: ./.github/workflows/test-build.yml
181+
with:
182+
arch: aarch64
183+
config-file: ./config/examples/nxp-ls1028a.config
184+
make-args: CROSS_COMPILE=aarch64-linux-gnu-
185+
186+
nxp_ls1028a_tpm_test:
187+
uses: ./.github/workflows/test-build.yml
188+
with:
189+
arch: aarch64
190+
config-file: ./config/examples/nxp-ls1028a-tpm.config
191+
make-args: CROSS_COMPILE=aarch64-linux-gnu-
192+
175193
nxp_mcxa_test:
176194
uses: ./.github/workflows/test-build-mcux-sdk.yml
177195
with:
@@ -191,6 +209,13 @@ jobs:
191209
config-file: ./config/examples/raspi3.config
192210
make-args: wolfboot.bin CROSS_COMPILE=aarch64-linux-gnu-
193211

212+
raspi3_encrypted_test:
213+
uses: ./.github/workflows/test-build.yml
214+
with:
215+
arch: aarch64
216+
config-file: ./config/examples/raspi3-encrypted.config
217+
make-args: wolfboot.bin CROSS_COMPILE=aarch64-linux-gnu-
218+
194219
sim_tfm_smallstack_test:
195220
uses: ./.github/workflows/test-build.yml
196221
with:
@@ -375,12 +400,12 @@ jobs:
375400
arch: arm
376401
config-file: ./config/examples/stm32l0.config
377402

378-
# TODO: stm32l4-cube.config requires Cube HAL
379-
# stm32l4_cube_test:
380-
# uses: ./.github/workflows/test-build.yml
381-
# with:
382-
# arch: arm
383-
# config-file: ./config/examples/stm32l4-cube.config
403+
stm32l4_cube_test:
404+
uses: ./.github/workflows/test-build-stm32cube.yml
405+
with:
406+
arch: arm
407+
config-file: ./config/examples/stm32l4-cube.config
408+
cube-repo: STMicroelectronics/STM32CubeL4
384409

385410
stm32l5_nonsecure_dualbank_test:
386411
uses: ./.github/workflows/test-build.yml
@@ -436,12 +461,13 @@ jobs:
436461
arch: arm
437462
config-file: ./config/examples/stm32wb-delta.config
438463

439-
# TODO: stm32wb-pka-1mb.config requires STM32 HAL #include "stm32wbxx_hal.h
440-
# stm32wb_pka_1mb_test:
441-
# uses: ./.github/workflows/test-build.yml
442-
# with:
443-
# arch: arm
444-
# config-file: ./config/examples/stm32wb-pka-1mb.config
464+
stm32wb_pka_1mb_test:
465+
uses: ./.github/workflows/test-build-stm32cube.yml
466+
with:
467+
arch: arm
468+
config-file: ./config/examples/stm32wb-pka-1mb.config
469+
cube-repo: STMicroelectronics/STM32CubeWB
470+
make-args: PKA=1 NO_ARM_ASM=1
445471

446472
stm32wb_tpm_test:
447473
uses: ./.github/workflows/test-build.yml
@@ -473,7 +499,12 @@ jobs:
473499
arch: arm
474500
config-file: ./config/examples/stm32wb.config
475501

476-
# TODO: ti-tms570lc435.config requires CCS_ROOT
502+
# TODO: ti-tms570lc435.config requires F021 Flash API (Windows installer only)
503+
# ti_tms570lc435_test:
504+
# uses: ./.github/workflows/test-build-ti-hercules.yml
505+
# with:
506+
# arch: arm
507+
# config-file: ./config/examples/ti-tms570lc435.config
477508

478509
# Cannot run on CI without the SDK (see VORAGO_SDK_DIR)
479510
# vorago_va416x0_test:

hal/hifive1.ld

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ SECTIONS
1717
. = ORIGIN(FLASH) + 0x200;
1818
_start_vector = .;
1919
KEEP(*(.isr_vector))
20+
*(.keystore*)
2021
*(.text*)
2122
*(.rodata*)
2223
*(.srodata*)

lib/wolfssl

Submodule wolfssl updated 76 files

0 commit comments

Comments
 (0)