Skip to content

Commit 0676a59

Browse files
committed
[GITHUB] Speed up build
1 parent a34733f commit 0676a59

1 file changed

Lines changed: 4 additions & 258 deletions

File tree

.github/workflows/build.yml

Lines changed: 4 additions & 258 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
@@ -82,257 +82,3 @@ jobs:
8282
path: |
8383
build/bootcd.iso
8484
85-
build-msvc:
86-
strategy:
87-
matrix:
88-
os: [windows-latest]
89-
toolset: ['14','14.2'] # VS 2022, and 2019 (see below)
90-
arch: [i386, amd64]
91-
config: [Debug, Release]
92-
dllver: ['0x502', '0x600']
93-
exclude: # Build NT6 ISOs only with the latest toolset when compiled as a debug build
94-
- dllver: 0x600
95-
toolset: 14.2
96-
- dllver: 0x600
97-
config: Release
98-
fail-fast: false
99-
runs-on: ${{matrix.os}}
100-
steps:
101-
- name: Install ninja
102-
run: choco install -y ninja
103-
- name: Install Flex & Bison
104-
run: |
105-
curl -O https://svn.reactos.org/storage/vperevertkin/flexbison.7z
106-
7z x flexbison.7z -O${{github.workspace}}\bin
107-
echo "${{github.workspace}}\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
108-
echo "BISON_PKGDATADIR=${{github.workspace}}\bin\share\bison" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
109-
echo "M4=${{github.workspace}}\bin\m4.exe" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
110-
- name: Activate VS cmd (x86)
111-
if: ${{ matrix.arch == 'i386' }}
112-
uses: ilammy/msvc-dev-cmd@v1
113-
with:
114-
arch: amd64_x86
115-
toolset: ${{matrix.toolset}}
116-
- name: Activate VS cmd (amd64)
117-
if: ${{ matrix.arch == 'amd64' }}
118-
uses: ilammy/msvc-dev-cmd@v1
119-
with:
120-
arch: amd64
121-
toolset: ${{matrix.toolset}}
122-
- name: Source checkout
123-
uses: actions/checkout@v6
124-
with:
125-
path: src
126-
- name: Configure
127-
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
128-
- name: Build
129-
run: cmake --build build -- -k0
130-
- name: Generate ISOs
131-
run: cmake --build build --target bootcd
132-
- name: Upload ISOs
133-
uses: actions/upload-artifact@v7
134-
with:
135-
name: reactos-msvc${{matrix.toolset}}-${{matrix.arch}}-${{matrix.config}}-${{matrix.dllver}}-${{github.sha}}
136-
path: |
137-
build/bootcd.iso
138-
- name: Upload debug symbols
139-
if: ${{ matrix.config == 'Debug' }}
140-
uses: actions/upload-artifact@v7
141-
with:
142-
name: reactos-syms-msvc${{matrix.toolset}}-${{matrix.arch}}-${{matrix.config}}-${{matrix.dllver}}-${{github.sha}}
143-
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@v7
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@v7
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
299-
- name: Upload ISOs
300-
uses: actions/upload-artifact@v7
301-
with:
302-
name: reactos-clang-cl-${{matrix.arch}}-${{matrix.config}}-${{github.sha}}
303-
path: |
304-
build/bootcd.iso
305-
- name: Upload debug symbols
306-
if: ${{ matrix.config == 'Debug' }}
307-
uses: actions/upload-artifact@v7
308-
with:
309-
name: reactos-syms-clang-cl-${{matrix.arch}}-${{matrix.config}}-${{github.sha}}
310-
path: build/msvc_pdb
311-
312-
build-msbuild-i386:
313-
name: MSBuild (i386)
314-
runs-on: windows-latest
315-
steps:
316-
- name: Install Flex and Bison
317-
run: |
318-
curl -O https://svn.reactos.org/storage/vperevertkin/flexbison.7z
319-
7z x flexbison.7z -O${{github.workspace}}\bin
320-
echo "${{github.workspace}}\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
321-
echo "BISON_PKGDATADIR=${{github.workspace}}\bin\share\bison" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
322-
echo "M4=${{github.workspace}}\bin\m4.exe" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
323-
- name: Add CL to PATH
324-
uses: ilammy/msvc-dev-cmd@v1
325-
with:
326-
arch: amd64_x86
327-
- uses: actions/checkout@v6
328-
with:
329-
path: src
330-
- name: Configure
331-
run: |
332-
mkdir build
333-
cd build
334-
$GENERATOR = "Visual Studio 17 2022"
335-
if ($env:VisualStudioVersion -ge "18") { $GENERATOR = "Visual Studio 18 2026" }
336-
cmake -G $GENERATOR -A Win32 -DCMAKE_TOOLCHAIN_FILE:FILEPATH=toolchain-msvc.cmake -DARCH:STRING=i386 -DENABLE_ROSTESTS=1 -DENABLE_ROSAPPS=1 ${{github.workspace}}\src
337-
- name: Build
338-
run: cmake --build ${{github.workspace}}\build --target bootcd

0 commit comments

Comments
 (0)