1313 required : false
1414
1515env :
16- WEST_VERSION : 1.2.0
17- ZEPHYR_SDK_VERSION : 0.16.5-1
18- ZEPHYR_SDK_BASENAME : zephyr-sdk-${ZEPHYR_SDK_VERSION}
19- ZEPHYR_SDK_FILENAME : zephyr-sdk-${ZEPHYR_SDK_VERSION}_linux-x86_64.tar.xz
20- ZEPHYR_VERSION : d0ae1a8b1057c0a8b510860d1cbdbb1cb79f2411
16+ DEBIAN_FRONTEND : noninteractive
17+ CMAKE_PREFIX_PATH : /opt/toolchains
2118
2219jobs :
2320 build-zephyr-binaries :
2421 name : Build Zephyr Binaries
2522 runs-on : ubuntu-22.04
2623 steps :
27- - uses : actions/checkout@v4
24+ - name : Checkout
25+ uses : actions/checkout@v4
2826
2927 - name : Set up Python
3028 uses : actions/setup-python@v5
3129 with :
3230 python-version : ' 3.12'
3331
34- - name : Install dependencies
32+ - name : Install Dependencies
3533 run : |
3634 sudo apt-get -qqy update
37- sudo apt-get install -qqy wget python3-pip python3-venv cmake git ninja-build
38-
39- - name : Set up Python virtual environment
40- run : |
41- python3 -m venv venv
42- source venv/bin/activate
43- echo "PATH=$PATH" >> "$GITHUB_ENV"
44- pip3 install west=="$WEST_VERSION"
45-
46- - name : Set up Zephyr SDK
47- run : |
48- wget --no-verbose https://github.com/zephyrproject-rtos/sdk-ng/releases/download/v${{ env.ZEPHYR_SDK_VERSION }}/${{ env.ZEPHYR_SDK_FILENAME }}
49- tar xf ${{ env.ZEPHYR_SDK_FILENAME }}
50- pushd ${{ env.ZEPHYR_SDK_BASENAME }}
51- ./setup.sh -t all -c
52- popd
53- echo "ZEPHYR_SDK_INSTALL_DIR=$(pwd)/${{ env.ZEPHYR_SDK_BASENAME }}" >> $GITHUB_ENV
54-
55- - name : Get Zephyr source
56- run : |
57- west init zephyrproject
58- pushd zephyrproject/zephyr
59- git checkout ${{ env.ZEPHYR_VERSION }}
60- west update
61- echo "ZEPHYR_BASE=$PWD" >> "$GITHUB_ENV"
62- pip3 install -r scripts/requirements.txt
63- popd
35+ sudo apt-get install -qqy cmake ninja-build
36+
37+ - name : Setup Zephyr project
38+ uses : zephyrproject-rtos/action-zephyr-setup@v1
39+ with :
40+ app-path : .
41+ toolchains : arm-zephyr-eabi
6442
65- - name : Build Zephyr examples
43+ - name : Build Zephyr
6644 run : |
6745 mkdir -p artifacts/zephyr_binaries
68- for i in `find examples -name "zephyr"`; do
69- EXAMPLE_NAME=`echo $i | sed -e "s/examples\///" | sed -e "s/\/zephyr//"`
70- mkdir -p examples/$EXAMPLE_NAME/bin
71- pushd zephyrproject/zephyr
72- west build -b stm32f401_mini ../../examples/$EXAMPLE_NAME/zephyr
73- cp build/zephyr/zephyr.elf ../../examples/$EXAMPLE_NAME/bin/$EXAMPLE_NAME.elf
74- cp build/zephyr/zephyr.elf ../../artifacts/zephyr_binaries/$EXAMPLE_NAME.elf
75- rm -rf build/
76- popd
46+ for example in examples/*/zephyr; do
47+ example_name=$(echo $example | cut -f 2 -d '/')
48+ west build -p -b stm32f401_mini $example
49+ cp build/zephyr/zephyr.elf artifacts/zephyr_binaries/$example_name.elf
7750 done
7851
7952 - name : Upload Zephyr binaries
8053 uses : actions/upload-artifact@v4
8154 with :
82- name : zephyr_binaries-${{ env.ZEPHYR_VERSION }}-${{ github.run_id }}
55+ name : zephyr_binaries-${{ github.run_id }}
8356 path : artifacts/zephyr_binaries
8457
8558 build-examples :
9164 - name : Install dependencies
9265 run : |
9366 sudo apt-get -qqy update
94- sudo apt-get install -qqy libsystemc libsystemc-dev clang cmake
67+ sudo apt-get install -qqy libsystemc libsystemc-dev clang cmake dotnet-sdk-8.0
9568
9669 - name : Download and build Renode
9770 uses : antmicro/renode-test-action@v5.0.0
@@ -103,25 +76,27 @@ jobs:
10376 run : |
10477 mkdir -p build
10578 pushd build
106- cmake ..
107- make CPPSTD=c++14 -j8
79+ cmake ..
80+ make CPPSTD=c++14 -j $(nproc)
10881 popd
109- mkdir -p artifacts/example_binaries
110- for i in examples/*/; do
111- cp "$i"/bin/* artifacts/example_binaries
82+
83+ mkdir -p artifacts/example_binaries artifacts/test_binaries
84+ for example in examples/*/; do
85+ example_name="$(basename $example)"
86+ cp examples/$example_name/bin/$example_name artifacts/example_binaries/x64-systemc--$example_name.elf
11287 done
113- mkdir -p artifacts/test_binaries
114- for i in tests/*/; do
115- cp "$i" /bin/* artifacts/test_binaries
88+ for test in tests/*/; do
89+ test_name="$(basename $test)"
90+ cp tests/$test_name /bin/$test_name artifacts/test_binaries/x64-systemc--$test_name.elf
11691 done
117-
118- - name : Upload example binaries
92+
93+ - name : Upload Example Binaries
11994 uses : actions/upload-artifact@v4
12095 with :
12196 name : example_binaries-${{ github.run_id }}
12297 path : artifacts/example_binaries
12398
124- - name : Upload test binaries
99+ - name : Upload Test Binaries
125100 uses : actions/upload-artifact@v4
126101 with :
127102 name : test_binaries-${{ github.run_id }}
@@ -137,7 +112,7 @@ jobs:
137112 - name : Install dependencies
138113 run : |
139114 sudo apt-get -qqy update
140- sudo apt-get install -qqy libsystemc libsystemc-dev
115+ sudo apt-get install -qqy libsystemc libsystemc-dev dotnet-sdk-8.0
141116
142117 - name : Download example binaries
143118 uses : actions/download-artifact@v4
@@ -159,19 +134,22 @@ jobs:
159134
160135 - name : Run tests
161136 run : |
162- for i in artifacts/example_binaries/*; do
163- mkdir -p examples/ "$(basename "$i")"/bin
164- chmod +x "$i"
165- cp $i examples/"$(basename "$i")" /bin
137+ for example in artifacts/example_binaries/*; do
138+ example_name= "$(basename $example | sed -e 's/x64-systemc--//' -e 's/.elf//')"
139+ mkdir -p examples/$example_name/bin
140+ cp $example examples/$example_name /bin/$example_name
166141 done
142+
143+ for test in artifacts/test_binaries/*; do
144+ test_name="$(basename $test | sed -e 's/x64-systemc--//' -e 's/.elf//')"
145+ mkdir -p tests/$test_name/bin
146+ cp $test tests/$test_name/bin/$test_name
147+ done
148+
167149 pushd examples
168- renode-test -t all_examples.yaml
150+ renode-test -t all_examples.yaml
169151 popd
170- for i in artifacts/test_binaries/*; do
171- mkdir -p tests/"$(basename "$i")"/bin
172- chmod +x "$i"
173- cp $i tests/"$(basename "$i")"/bin
174- done
152+
175153 pushd tests
176- renode-test -t all_tests.yaml
154+ renode-test -t all_tests.yaml
177155 popd
0 commit comments