Skip to content

Commit 5e7649a

Browse files
committed
[#90242] CI: add Windows runner
1 parent 94d30c4 commit 5e7649a

File tree

1 file changed

+81
-6
lines changed

1 file changed

+81
-6
lines changed

.github/workflows/test.yml

Lines changed: 81 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,12 @@ env:
1919
jobs:
2020
build-zephyr-binaries:
2121
name: Build Zephyr Binaries
22-
runs-on: ubuntu-22.04
22+
strategy:
23+
matrix:
24+
os:
25+
- ubuntu-22.04
26+
- windows-2025
27+
runs-on: ${{ matrix.os }}
2328
steps:
2429
- name: Checkout
2530
uses: actions/checkout@v4
@@ -30,9 +35,18 @@ jobs:
3035
python-version: '3.12'
3136

3237
- name: Install Dependencies
38+
shell: bash
3339
run: |
34-
sudo apt-get -qqy update
35-
sudo apt-get install -qqy cmake ninja-build
40+
if [ "${{ runner.os }}" = "Linux" ]; then
41+
sudo apt-get -qqy update
42+
sudo apt-get install -qqy cmake ninja-build
43+
elif [ "${{ runner.os }}" = "Windows" ]; then
44+
choco feature enable -n allowGlobalConfirmation
45+
choco install ninja cmake
46+
else
47+
echo "Unknown runner!"
48+
exit 1
49+
fi
3650
3751
- name: Setup Zephyr project
3852
uses: zephyrproject-rtos/action-zephyr-setup@v1
@@ -41,6 +55,7 @@ jobs:
4155
toolchains: arm-zephyr-eabi
4256

4357
- name: Build Zephyr
58+
shell: bash
4459
run: |
4560
mkdir -p artifacts/zephyr_binaries
4661
for example in examples/*/zephyr; do
@@ -52,19 +67,79 @@ jobs:
5267
- name: Upload Zephyr binaries
5368
uses: actions/upload-artifact@v4
5469
with:
55-
name: zephyr_binaries-${{ github.run_id }}
70+
name: zephyr_binaries-${{ runner.os }}-${{ github.run_id }}
5671
path: artifacts/zephyr_binaries
5772

73+
build-systemc:
74+
name: Build SystemC
75+
strategy:
76+
matrix:
77+
os:
78+
- ubuntu-22.04
79+
- windows-2025
80+
runs-on: ${{ matrix.os }}
81+
steps:
82+
- uses: actions/checkout@v4
83+
with:
84+
submodules: true
85+
86+
- name: Install dependencies
87+
shell: bash
88+
run: |
89+
if [ "${{ runner.os }}" = "Linux" ]; then
90+
sudo apt-get -qqy update
91+
sudo apt-get install -qqy cmake
92+
elif [ "${{ runner.os }}" = "Windows" ]; then
93+
choco feature enable -n allowGlobalConfirmation
94+
choco install cmake
95+
else
96+
echo "Unknown runner!"
97+
exit 1
98+
fi
99+
100+
- name: Set CMake generator
101+
if: runner.os == "Windows"
102+
shell: bash
103+
run: |
104+
export CMAKE_GENERATOR="Visual Studio 17 2022"
105+
106+
- name: Build library
107+
shell: bash
108+
run: |
109+
mkdir -p build
110+
pushd build
111+
cmake ../systemc -DBUILD_SHARED_LIBS=OFF \
112+
-DCMAKE_CXX_STANDARD=14 \
113+
-DCMAKE_POLICY_VERSION_MINIMUM=3.1
114+
115+
cmake --build . -j $(nproc)
116+
popd
117+
118+
- name: Upload library (Linux)
119+
if: runner.os == "Linux"
120+
uses: actions/upload-artifact@v4
121+
with:
122+
name: ${{ runner.os }}-${{ github.run_id }}-libsystemc.a
123+
path: build/src/libsystemc.a
124+
125+
- name: Upload library (Windows)
126+
if: runner.os == "Windows"
127+
uses: actions/upload-artifact@v4
128+
with:
129+
name: ${{ runner.os }}-${{ github.run_id }}-libsystemc.lib
130+
path: build/src/libsystemc.lib
131+
58132
build-examples:
59133
name: Build Examples
134+
needs: build-systemc
60135
runs-on: ubuntu-22.04
61136
steps:
62137
- uses: actions/checkout@v4
63138

64139
- name: Install dependencies
65140
run: |
66141
sudo apt-get -qqy update
67-
sudo apt-get install -qqy libsystemc libsystemc-dev clang cmake dotnet-sdk-8.0
142+
sudo apt-get install -qqy libsystemc libsystemc-dev clang cmake
68143
69144
- name: Download and build Renode
70145
uses: antmicro/renode-test-action@v5.0.0
@@ -112,7 +187,7 @@ jobs:
112187
- name: Install dependencies
113188
run: |
114189
sudo apt-get -qqy update
115-
sudo apt-get install -qqy libsystemc libsystemc-dev dotnet-sdk-8.0
190+
sudo apt-get install -qqy libsystemc libsystemc-dev
116191
117192
- name: Download example binaries
118193
uses: actions/download-artifact@v4

0 commit comments

Comments
 (0)