Skip to content

Commit b183665

Browse files
committed
[GITHUB] Speed up build
1 parent 24843f8 commit b183665

File tree

1 file changed

+16
-202
lines changed

1 file changed

+16
-202
lines changed

.github/workflows/build.yml

Lines changed: 16 additions & 202 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ jobs:
55
build-linux:
66
strategy:
77
matrix:
8-
compiler: [gcc, clang]
9-
arch: [i386, amd64]
10-
config: [Debug, Release]
11-
dllver: ['0x502', '0x600']
8+
compiler: [gcc]
9+
arch: [i386]
10+
config: [Debug]
11+
dllver: ['0x502']
1212
exclude:
1313
- dllver: 0x600
1414
compiler: clang
@@ -71,6 +71,8 @@ jobs:
7171
run: echo 'cmake --build ${{github.workspace}}/build -- -k0' | ${{github.workspace}}/RosBE-CI/RosBE.sh . 0 ${{matrix.arch}}
7272
- name: Generate ISOs
7373
run: echo 'cmake --build ${{github.workspace}}/build --target bootcd --target livecd' | ${{github.workspace}}/RosBE-CI/RosBE.sh . 0 ${{matrix.arch}}
74+
- name: Generate PC-98 boot floppy
75+
run: echo 'cmake --build ${{github.workspace}}/build --target pc98bootfdd' | ${{github.workspace}}/RosBE-CI/RosBE.sh . 0 ${{matrix.arch}}
7476
- name: Print ccache statistics
7577
run: ccache -s
7678
- name: Upload ISOs
@@ -80,15 +82,17 @@ jobs:
8082
path: |
8183
build/bootcd.iso
8284
build/livecd.iso
85+
build/PC98/ReactOS-98.IMG
86+
build/RAM/ramcd.iso
8387
8488
build-msvc:
8589
strategy:
8690
matrix:
8791
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+
toolset: ['14.2'] # VS 2022, and 2019 (see below)
93+
arch: [i386]
94+
config: [Debug]
95+
dllver: ['0x502']
9296
exclude: # Build NT6 ISOs only with the latest toolset when compiled as a debug build
9397
- dllver: 0x600
9498
toolset: 14.2
@@ -128,210 +132,20 @@ jobs:
128132
run: cmake --build build -- -k0
129133
- name: Generate ISOs
130134
run: cmake --build build --target bootcd --target livecd
135+
- name: Generate PC-98 boot floppy
136+
run: cmake --build build --target pc98bootfdd
131137
- name: Upload ISOs
132138
uses: actions/upload-artifact@v5
133139
with:
134140
name: reactos-msvc${{matrix.toolset}}-${{matrix.arch}}-${{matrix.config}}-${{matrix.dllver}}-${{github.sha}}
135141
path: |
136142
build/bootcd.iso
137143
build/livecd.iso
144+
build/PC98/ReactOS-98.IMG
145+
build/RAM/ramcd.iso
138146
- name: Upload debug symbols
139147
if: ${{ matrix.config == 'Debug' }}
140148
uses: actions/upload-artifact@v5
141149
with:
142150
name: reactos-syms-msvc${{matrix.toolset}}-${{matrix.arch}}-${{matrix.config}}-${{matrix.dllver}}-${{github.sha}}
143151
path: build/msvc_pdb
144-
145-
build-msvc-arm:
146-
strategy:
147-
matrix:
148-
os: [windows-2022, windows-latest]
149-
toolset: ['14', '14.29'] # VS 2022 (ongoing), 2019 (last)
150-
arch: [arm, arm64]
151-
config: [Debug, Release]
152-
exclude:
153-
# arm64: windows-latest is enough/fine.
154-
- os: windows-2022
155-
arch: arm64
156-
# arm (sdk): only available on windows-2022.
157-
- os: windows-latest
158-
arch: arm
159-
fail-fast: false
160-
runs-on: ${{matrix.os}}
161-
steps:
162-
- name: Install ninja
163-
run: choco install -y ninja
164-
- name: Install Flex & Bison
165-
run: |
166-
curl -O https://svn.reactos.org/storage/vperevertkin/flexbison.7z
167-
7z x flexbison.7z -O${{github.workspace}}\bin
168-
echo "${{github.workspace}}\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
169-
echo "BISON_PKGDATADIR=${{github.workspace}}\bin\share\bison" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
170-
echo "M4=${{github.workspace}}\bin\m4.exe" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
171-
- name: Activate VS cmd (arm)
172-
if: ${{ matrix.arch == 'arm' }}
173-
uses: ilammy/msvc-dev-cmd@v1
174-
with:
175-
arch: amd64_arm
176-
sdk: 10.0.22621.0 # Windows SDK 10.0.26100.0 dropped support for 32-bit ARM
177-
toolset: ${{matrix.toolset}}
178-
- name: Activate VS cmd (arm64)
179-
if: ${{ matrix.arch == 'arm64' }}
180-
uses: ilammy/msvc-dev-cmd@v1
181-
with:
182-
arch: amd64_arm64
183-
toolset: ${{matrix.toolset}}
184-
- name: Source checkout
185-
uses: actions/checkout@v6
186-
with:
187-
path: src
188-
- name: Configure
189-
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
190-
- name: Build base module
191-
if: ${{ matrix.arch == 'arm' }}
192-
run: cmake --build build --target base/all
193-
- name: Build dll:3rdparty
194-
if: ${{ matrix.arch == 'arm' }}
195-
run: cmake --build build --target dll/3rdparty/all -- -k0
196-
- name: Build control panel applets
197-
if: ${{ matrix.arch == 'arm' }}
198-
run: cmake --build build --target dll/cpl/all
199-
- name: Build dll:opengl
200-
if: ${{ matrix.arch == 'arm' }}
201-
run: cmake --build build --target dll/opengl/all -- -k0
202-
- name: Build dll:shellext
203-
if: ${{ matrix.arch == 'arm' }}
204-
run: cmake --build build --target dll/shellext/all -- -k0
205-
- name: Build drivers:base
206-
if: ${{ matrix.arch == 'arm' }}
207-
run: cmake --build build --target drivers/base/all -- -k0
208-
- name: Build rosapps
209-
if: ${{ matrix.arch == 'arm' }}
210-
run: cmake --build build --target modules/rosapps/all
211-
- name: Build subsystems
212-
if: ${{ matrix.arch == 'arm' }}
213-
run: cmake --build build --target subsystems/all
214-
- name: Build some applications (arm64)
215-
if: ${{ matrix.arch == 'arm64' }}
216-
run: cmake --build build --target calc magnify mstsc notepad osk regedit taskmgr winmine wordpad base/applications/screensavers/all -- -k0
217-
- name: Build control panel applets (arm64)
218-
if: ${{ matrix.arch == 'arm64' }}
219-
run: cmake --build build --target dll/cpl/all -- -k0
220-
- name: Upload compiled binaries
221-
uses: actions/upload-artifact@v5
222-
with:
223-
name: reactos-msvc${{matrix.toolset}}-${{matrix.arch}}-${{matrix.config}}-${{github.sha}}
224-
path: |
225-
build/base
226-
build/dll/3rdparty
227-
build/dll/cpl
228-
build/dll/opengl
229-
build/dll/shellext
230-
build/drivers/base
231-
build/modules/rosapps
232-
build/subsystems
233-
!**/CMakeFiles
234-
!**/cmake_install.cmake
235-
!**/*.asm
236-
!**/*.bin
237-
!**/*.c
238-
!**/*.def
239-
!**/*.exp
240-
!**/*.h
241-
!**/*.lib
242-
!**/*.mc
243-
!**/*.obj
244-
!**/*.rc
245-
!**/*.tlb
246-
- name: Upload debug symbols
247-
if: ${{ matrix.config == 'Debug' }}
248-
uses: actions/upload-artifact@v5
249-
with:
250-
name: reactos-syms-msvc${{matrix.toolset}}-${{matrix.arch}}-${{matrix.config}}-${{github.sha}}
251-
path: build/msvc_pdb
252-
253-
# FIXME: Does not boot on toolset 14.1, 14.3+ is untested
254-
build-clang-cl:
255-
strategy:
256-
matrix:
257-
arch: [i386, amd64]
258-
config: [Debug, Release]
259-
fail-fast: false
260-
runs-on: windows-latest
261-
steps:
262-
- name: Install ninja
263-
run: choco install -y ninja
264-
- name: Install LLVM
265-
run: |
266-
choco install -y --allow-downgrade llvm --version 13.0.1
267-
echo "LLVM_PATH=${env:PROGRAMFILES}\llvm\bin" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
268-
- name: Install Flex & Bison
269-
run: |
270-
curl -O https://svn.reactos.org/storage/vperevertkin/flexbison.7z
271-
7z x flexbison.7z -O${{github.workspace}}\bin
272-
echo "${{github.workspace}}\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
273-
echo "BISON_PKGDATADIR=${{github.workspace}}\bin\share\bison" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
274-
echo "M4=${{github.workspace}}\bin\m4.exe" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
275-
- name: Activate VS cmd (x86)
276-
if: ${{ matrix.arch == 'i386' }}
277-
uses: ilammy/msvc-dev-cmd@v1
278-
with:
279-
arch: amd64_x86
280-
toolset: '14'
281-
- name: Activate VS cmd (amd64)
282-
if: ${{ matrix.arch == 'amd64' }}
283-
uses: ilammy/msvc-dev-cmd@v1
284-
with:
285-
arch: amd64
286-
toolset: '14'
287-
- name: Add LLVM to PATH
288-
run: echo "${env:LLVM_PATH}" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
289-
- name: Source checkout
290-
uses: actions/checkout@v6
291-
with:
292-
path: src
293-
- name: Configure
294-
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
295-
- name: Build
296-
run: cmake --build build -- -k0
297-
- name: Generate ISOs
298-
run: cmake --build build --target bootcd --target livecd
299-
- name: Upload ISOs
300-
uses: actions/upload-artifact@v5
301-
with:
302-
name: reactos-clang-cl-${{matrix.arch}}-${{matrix.config}}-${{github.sha}}
303-
path: |
304-
build/bootcd.iso
305-
build/livecd.iso
306-
- name: Upload debug symbols
307-
if: ${{ matrix.config == 'Debug' }}
308-
uses: actions/upload-artifact@v5
309-
with:
310-
name: reactos-syms-clang-cl-${{matrix.arch}}-${{matrix.config}}-${{github.sha}}
311-
path: build/msvc_pdb
312-
313-
build-msbuild-i386:
314-
name: MSBuild (i386)
315-
runs-on: windows-latest
316-
steps:
317-
- name: Install Flex and Bison
318-
run: |
319-
curl -O https://svn.reactos.org/storage/vperevertkin/flexbison.7z
320-
7z x flexbison.7z -O${{github.workspace}}\bin
321-
echo "${{github.workspace}}\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
322-
echo "BISON_PKGDATADIR=${{github.workspace}}\bin\share\bison" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
323-
echo "M4=${{github.workspace}}\bin\m4.exe" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
324-
- name: Add CL to PATH
325-
uses: ilammy/msvc-dev-cmd@v1
326-
with:
327-
arch: amd64_x86
328-
- uses: actions/checkout@v6
329-
with:
330-
path: src
331-
- name: Configure
332-
run: |
333-
mkdir build
334-
cd build
335-
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
336-
- name: Build
337-
run: cmake --build ${{github.workspace}}\build --target bootcd --target livecd

0 commit comments

Comments
 (0)