@@ -2,151 +2,11 @@ name: Build
22on : [push, pull_request]
33
44jobs :
5- build-linux :
6- strategy :
7- matrix :
8- compiler : [gcc, clang]
9- arch : [i386, amd64]
10- config : [Debug, Release]
11- dllver : ['0x502', '0x600']
12- exclude :
13- - dllver : 0x600
14- compiler : clang
15- - dllver : 0x600
16- config : Release
17- fail-fast : false
18- runs-on : ubuntu-22.04
19- steps :
20- - name : Get RosBE build specifics
21- id : get_rosbe_spec
22- run : |
23- gcc -march=native -Q --help=target | grep "\-march= " | awk '{print $NF}'
24- echo march-sha=$(gcc -march=native -Q --help=target | sha1sum | awk '{print $1}') >> $GITHUB_OUTPUT
25- echo git-sha=$(git ls-remote https://github.com/zefklop/RosBE.git | grep unix_amd64 | awk '{print $1}') >> $GITHUB_OUTPUT
26- wget https://gist.githubusercontent.com/zefklop/b2d6a0b470c70183e93d5285a03f5899/raw/build_rosbe_ci.sh
27- - name : Get RosBE
28- id : get_rosbe
29- uses : actions/cache@v4
30- with :
31- path : RosBE-CI
32- key : RosBE-CI-${{runner.os}}-${{steps.get_rosbe_spec.outputs.march-sha}}-${{steps.get_rosbe_spec.outputs.git-sha}}-${{hashfiles('./build_rosbe_ci.sh')}}
33- - name : Compile RosBE
34- if : ${{ steps.get_rosbe.outputs.cache-hit != 'true' }}
35- run : |
36- chmod +x build_rosbe_ci.sh
37- ./build_rosbe_ci.sh ${{github.workspace}}/RosBE-CI
38- - name : Install ccache
39- run : sudo apt install ccache
40- - name : Install LLVM
41- if : ${{ matrix.compiler == 'clang' }}
42- run : |
43- export LLVM_VERSION=13
44- wget https://apt.llvm.org/llvm.sh
45- chmod +x llvm.sh
46- sudo ./llvm.sh $LLVM_VERSION
47- echo "D_CLANG_VERSION=-DCLANG_VERSION=$LLVM_VERSION" >> $GITHUB_ENV
48- - name : Source checkout
49- uses : actions/checkout@v4
50- with :
51- path : src
52- - name : Set up cache for ccache
53- uses : actions/cache@v4
54- with :
55- path : ccache
56- key : ccache-${{matrix.compiler}}-${{matrix.arch}}-${{matrix.config}}-${{matrix.dllver}}-${{github.sha}}
57- restore-keys : |
58- ccache-${{matrix.compiler}}-${{matrix.arch}}-${{matrix.config}}-${{matrix.dllver}}-
59- - name : Set ccache settings
60- run : |
61- echo "CCACHE_BASEDIR=${{github.workspace}}" >> $GITHUB_ENV
62- echo "CCACHE_DIR=${{github.workspace}}/ccache" >> $GITHUB_ENV
63- echo "CCACHE_MAXSIZE=1G" >> $GITHUB_ENV
64- echo "CCACHE_SLOPPINESS=time_macros" >> $GITHUB_ENV
65- - name : Ease ccache compiler check (GCC)
66- if : ${{ matrix.compiler == 'gcc' }}
67- run : echo "CCACHE_COMPILERCHECK=string:${{steps.get_rosbe_spec.outputs.git-sha}}-${{hashfiles('./build_rosbe_ci.sh')}}" >> $GITHUB_ENV
68- - name : Configure
69- run : echo 'cmake -S ${{github.workspace}}/src -B ${{github.workspace}}/build -G Ninja -DCMAKE_TOOLCHAIN_FILE:FILEPATH=toolchain-${{matrix.compiler}}.cmake -DARCH:STRING=${{matrix.arch}} -DCMAKE_BUILD_TYPE=${{matrix.config}} -DDLL_EXPORT_VERSION=${{matrix.dllver}} -DENABLE_CCACHE=1 -DENABLE_ROSTESTS=1 -DENABLE_ROSAPPS=1 ${{env.D_CLANG_VERSION}}' | ${{github.workspace}}/RosBE-CI/RosBE.sh . 0 ${{matrix.arch}}
70- - name : Build
71- run : echo 'cmake --build ${{github.workspace}}/build -- -k0' | ${{github.workspace}}/RosBE-CI/RosBE.sh . 0 ${{matrix.arch}}
72- - name : Generate ISOs
73- run : echo 'cmake --build ${{github.workspace}}/build --target bootcd --target livecd' | ${{github.workspace}}/RosBE-CI/RosBE.sh . 0 ${{matrix.arch}}
74- - name : Print ccache statistics
75- run : ccache -s
76- - name : Upload ISOs
77- uses : actions/upload-artifact@v4
78- with :
79- name : reactos-${{matrix.compiler}}-${{matrix.arch}}-${{matrix.config}}-${{matrix.dllver}}-${{github.sha}}
80- path : |
81- build/bootcd.iso
82- build/livecd.iso
83-
84- build-msvc :
85- strategy :
86- matrix :
87- os : [windows-latest]
88- toolset : ['14','14.2'] # VS 2022, and 2019 (see below)
89- arch : [i386, amd64]
90- config : [Debug, Release]
91- dllver : ['0x502', '0x600']
92- exclude : # Build NT6 ISOs only with the latest toolset when compiled as a debug build
93- - dllver : 0x600
94- toolset : 14.2
95- - dllver : 0x600
96- config : Release
97- fail-fast : false
98- runs-on : ${{matrix.os}}
99- steps :
100- - name : Install ninja
101- run : choco install -y ninja
102- - name : Install Flex & Bison
103- run : |
104- curl -O https://svn.reactos.org/storage/vperevertkin/flexbison.7z
105- 7z x flexbison.7z -O${{github.workspace}}\bin
106- echo "${{github.workspace}}\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
107- echo "BISON_PKGDATADIR=${{github.workspace}}\bin\share\bison" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
108- echo "M4=${{github.workspace}}\bin\m4.exe" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
109- - name : Activate VS cmd (x86)
110- if : ${{ matrix.arch == 'i386' }}
111- uses : ilammy/msvc-dev-cmd@v1
112- with :
113- arch : amd64_x86
114- toolset : ${{matrix.toolset}}
115- - name : Activate VS cmd (amd64)
116- if : ${{ matrix.arch == 'amd64' }}
117- uses : ilammy/msvc-dev-cmd@v1
118- with :
119- arch : amd64
120- toolset : ${{matrix.toolset}}
121- - name : Source checkout
122- uses : actions/checkout@v4
123- with :
124- path : src
125- - name : Configure
126- run : cmake -S src -B build -G Ninja -DCMAKE_TOOLCHAIN_FILE:FILEPATH=toolchain-msvc.cmake -DARCH:STRING=${{matrix.arch}} -DCMAKE_BUILD_TYPE=${{matrix.config}} -DDLL_EXPORT_VERSION=${{matrix.dllver}} -DENABLE_ROSTESTS=1 -DENABLE_ROSAPPS=1
127- - name : Build
128- run : cmake --build build -- -k0
129- - name : Generate ISOs
130- run : cmake --build build --target bootcd --target livecd
131- - name : Upload ISOs
132- uses : actions/upload-artifact@v4
133- with :
134- name : reactos-msvc${{matrix.toolset}}-${{matrix.arch}}-${{matrix.config}}-${{matrix.dllver}}-${{github.sha}}
135- path : |
136- build/bootcd.iso
137- build/livecd.iso
138- - name : Upload debug symbols
139- if : ${{ matrix.config == 'Debug' }}
140- uses : actions/upload-artifact@v4
141- with :
142- name : reactos-syms-msvc${{matrix.toolset}}-${{matrix.arch}}-${{matrix.config}}-${{matrix.dllver}}-${{github.sha}}
143- path : build/msvc_pdb
144-
1455 build-msvc-arm :
1466 strategy :
1477 matrix :
1488 toolset : ['14','14.2'] # VS 2022, 2019
149- arch : [arm, arm64 ]
9+ arch : [arm]
15010 config : [Debug, Release]
15111 fail-fast : false
15212 runs-on : windows-latest
19151 - name : Build subsystems
19252 if : ${{ matrix.arch == 'arm' }}
19353 run : cmake --build build --target subsystems/all
54+ - name : Build bootvid
55+ if : ${{ matrix.arch == 'arm' }}
56+ run : cmake --build build --target drivers/base/bootvid
19457 - name : Build some applications (arm64)
19558 if : ${{ matrix.arch == 'arm64' }}
19659 run : cmake --build build --target calc magnify mstsc notepad osk regedit taskmgr winmine wordpad base/applications/screensavers/all -- -k0
@@ -223,88 +86,3 @@ jobs:
22386 name : reactos-syms-msvc${{matrix.toolset}}-${{matrix.arch}}-${{matrix.config}}-${{github.sha}}
22487 path : build/msvc_pdb
22588
226- # FIXME: Does not boot on toolset 14.1, 14.3+ is untested
227- build-clang-cl :
228- strategy :
229- matrix :
230- arch : [i386, amd64]
231- config : [Debug, Release]
232- fail-fast : false
233- runs-on : windows-latest
234- steps :
235- - name : Install ninja
236- run : choco install -y ninja
237- - name : Install LLVM
238- run : |
239- choco install -y --allow-downgrade llvm --version 13.0.1
240- echo "LLVM_PATH=${env:PROGRAMFILES}\llvm\bin" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
241- - name : Install Flex & Bison
242- run : |
243- curl -O https://svn.reactos.org/storage/vperevertkin/flexbison.7z
244- 7z x flexbison.7z -O${{github.workspace}}\bin
245- echo "${{github.workspace}}\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
246- echo "BISON_PKGDATADIR=${{github.workspace}}\bin\share\bison" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
247- echo "M4=${{github.workspace}}\bin\m4.exe" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
248- - name : Activate VS cmd (x86)
249- if : ${{ matrix.arch == 'i386' }}
250- uses : ilammy/msvc-dev-cmd@v1
251- with :
252- arch : amd64_x86
253- toolset : ' 14'
254- - name : Activate VS cmd (amd64)
255- if : ${{ matrix.arch == 'amd64' }}
256- uses : ilammy/msvc-dev-cmd@v1
257- with :
258- arch : amd64
259- toolset : ' 14'
260- - name : Add LLVM to PATH
261- run : echo "${env:LLVM_PATH}" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
262- - name : Source checkout
263- uses : actions/checkout@v4
264- with :
265- path : src
266- - name : Configure
267- run : cmake -S src -B build -G Ninja -DCMAKE_TOOLCHAIN_FILE:FILEPATH=toolchain-msvc.cmake -DARCH:STRING=${{matrix.arch}} -DCMAKE_BUILD_TYPE=${{matrix.config}} -DENABLE_ROSTESTS=1 -DENABLE_ROSAPPS=1 -DUSE_CLANG_CL:BOOL=TRUE
268- - name : Build
269- run : cmake --build build -- -k0
270- - name : Generate ISOs
271- run : cmake --build build --target bootcd --target livecd
272- - name : Upload ISOs
273- uses : actions/upload-artifact@v4
274- with :
275- name : reactos-clang-cl-${{matrix.arch}}-${{matrix.config}}-${{github.sha}}
276- path : |
277- build/bootcd.iso
278- build/livecd.iso
279- - name : Upload debug symbols
280- if : ${{ matrix.config == 'Debug' }}
281- uses : actions/upload-artifact@v4
282- with :
283- name : reactos-syms-clang-cl-${{matrix.arch}}-${{matrix.config}}-${{github.sha}}
284- path : build/msvc_pdb
285-
286- build-msbuild-i386 :
287- name : MSBuild (i386)
288- runs-on : windows-latest
289- steps :
290- - name : Install Flex and Bison
291- run : |
292- curl -O https://svn.reactos.org/storage/vperevertkin/flexbison.7z
293- 7z x flexbison.7z -O${{github.workspace}}\bin
294- echo "${{github.workspace}}\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
295- echo "BISON_PKGDATADIR=${{github.workspace}}\bin\share\bison" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
296- echo "M4=${{github.workspace}}\bin\m4.exe" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
297- - name : Add CL to PATH
298- uses : ilammy/msvc-dev-cmd@v1
299- with :
300- arch : amd64_x86
301- - uses : actions/checkout@v4
302- with :
303- path : src
304- - name : Configure
305- run : |
306- mkdir build
307- cd build
308- cmake -G "Visual Studio 17 2022" -A Win32 -DCMAKE_TOOLCHAIN_FILE:FILEPATH=toolchain-msvc.cmake -DARCH:STRING=i386 -DENABLE_ROSTESTS=1 -DENABLE_ROSAPPS=1 ${{github.workspace}}\src
309- - name : Build
310- run : cmake --build ${{github.workspace}}\build --target bootcd --target livecd
0 commit comments