https://git.reactos.org/?p=reactos.git;a=commitdiff;h=1e01afab990b9fb9255d0…
commit 1e01afab990b9fb9255d0c0d253ca141d5731a65
Author: Jérôme Gardou <jerome.gardou(a)reactos.org>
AuthorDate: Fri May 7 12:52:37 2021 +0200
Commit: Jérôme Gardou <zefklop(a)users.noreply.github.com>
CommitDate: Wed May 12 11:04:29 2021 +0200
[GITHUB] Make sure things get compiled with MSVC 2015 & 2017
Also unify again ISO artifacts and upload debug symbols
for MSVC builds while we're at it
Also don't fail early in case things go wrong, which helps fixing build errors in
one go
instead of incremental trial & error
---
.github/workflows/build.yml | 94 +++++++++++++++++++++++++++++++++++----------
1 file changed, 74 insertions(+), 20 deletions(-)
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index f3ad5168c7d..42de2d16973 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -60,26 +60,77 @@ jobs:
- name: Configure
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}} -DENABLE_CCACHE=1 -DENABLE_ROSTESTS=1 -DENABLE_ROSAPPS=1
-DCLANG_VERSION=${{env.LLVM_VERSION}}' | ${{github.workspace}}/RosBE-CI/RosBE.sh . 0
${{matrix.arch}}
- name: Build
- run: echo 'cmake --build ${{github.workspace}}/build' |
${{github.workspace}}/RosBE-CI/RosBE.sh . 0 ${{matrix.arch}}
+ run: echo 'cmake --build ${{github.workspace}}/build -- -k0' |
${{github.workspace}}/RosBE-CI/RosBE.sh . 0 ${{matrix.arch}}
- name: Generate ISOs
run: echo 'cmake --build ${{github.workspace}}/build --target bootcd --target
livecd' | ${{github.workspace}}/RosBE-CI/RosBE.sh . 0 ${{matrix.arch}}
- name: Print ccache statistics
run: ccache -s
- - name: Upload bootcd
+ - name: Upload ISOs
uses: actions/upload-artifact@v2
with:
- name: reactos-bootcd-${{matrix.compiler}}-${{matrix.arch}}-${{github.sha}}
- path: build/bootcd.iso
- - name: Upload livecd
+ name: reactos-${{matrix.compiler}}-${{matrix.arch}}-${{github.sha}}
+ path: |
+ build/bootcd.iso
+ build/livecd.iso
+
+ build-msvc:
+ strategy:
+ matrix:
+ arch: [i386, amd64]
+ toolset: ['14.2', '14.1'] # VS 2019, 2017
+ include:
+ - arch: i386 # Not compiling on amd64 prompt
+ toolset: '14.0' # VS 2015
+ fail-fast: false
+ runs-on: windows-latest
+ steps:
+ - name: Install ninja
+ run: choco install -y ninja
+ - name: Install Flex & Bison
+ run: |
+ curl -O
https://svn.reactos.org/storage/vperevertkin/flexbison.7z
+ 7z x flexbison.7z -O${{github.workspace}}\bin
+ echo "${{github.workspace}}\bin" | Out-File -FilePath $env:GITHUB_PATH
-Encoding utf8 -Append
+ echo "BISON_PKGDATADIR=${{github.workspace}}\bin\share\bison" |
Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
+ echo "M4=${{github.workspace}}\bin\m4.exe" | Out-File -FilePath
$env:GITHUB_ENV -Encoding utf8 -Append
+ - name: Activate VS cmd (x86)
+ if: ${{ matrix.arch == 'i386' }}
+ uses: ilammy/msvc-dev-cmd@v1
+ with:
+ arch: amd64_x86
+ toolset: ${{ matrix.toolset }}
+ - name: Activate VS cmd (amd64)
+ if: ${{ matrix.arch == 'amd64' }}
+ uses: ilammy/msvc-dev-cmd@v1
+ with:
+ arch: amd64
+ toolset: ${{ matrix.toolset }}
+ - name: Source checkout
+ uses: actions/checkout@v2
+ with:
+ path: src
+ - name: Configure
+ run: cmake -S src -B build -G Ninja
-DCMAKE_TOOLCHAIN_FILE:FILEPATH=toolchain-msvc.cmake -DARCH:STRING=${{matrix.arch}}
-DENABLE_ROSTESTS=1 -DENABLE_ROSAPPS=1
+ - name: Build
+ run: cmake --build ${{github.workspace}}\build -- -k0
+ - name: Generate ISOs
+ run: cmake --build ${{github.workspace}}\build --target bootcd --target livecd
+ - name: Upload ISOs
uses: actions/upload-artifact@v2
with:
- name: reactos-livecd-${{matrix.compiler}}-${{matrix.arch}}-${{github.sha}}
- path: build/livecd.iso
+ name: reactos-msvc${{matrix.toolset}}-${{matrix.arch}}-${{github.sha}}
+ path: |
+ build/bootcd.iso
+ build/livecd.iso
+ - name: Upload debug symbols
+ uses: actions/upload-artifact@v2
+ with:
+ name: reactos-syms-msvc${{matrix.toolset}}-${{matrix.arch}}-${{github.sha}}
+ path: build/msvc_pdb
- build-msvc:
+ build-clang-cl:
strategy:
matrix:
- compiler: [msvc, clang-cl]
arch: [i386, amd64]
fail-fast: false
runs-on: windows-latest
@@ -87,12 +138,12 @@ jobs:
- name: Install ninja
run: choco install -y ninja
- name: Install LLVM (x86)
- if: ${{ (matrix.compiler == 'clang-cl') && (matrix.arch ==
'i386') }}
+ if: ${{ matrix.arch == 'i386' }}
run: |
choco install --x86 -y llvm
echo "LLVM_PATH=${env:PROGRAMFILES(X86)}\llvm\bin" | Out-File -FilePath
$env:GITHUB_ENV -Encoding utf8 -Append
- name: Install LLVM (amd64)
- if: ${{ (matrix.compiler == 'clang-cl') && (matrix.arch ==
'amd64') }}
+ if: ${{ matrix.arch == 'amd64' }}
run: |
choco install -y llvm
echo "LLVM_PATH=${env:PROGRAMFILES}\llvm\bin" | Out-File -FilePath
$env:GITHUB_ENV -Encoding utf8 -Append
@@ -108,34 +159,37 @@ jobs:
uses: ilammy/msvc-dev-cmd@v1
with:
arch: amd64_x86
+ toolset: '14.1' # latest masm build known to make bootable builds
- name: Activate VS cmd (amd64)
if: ${{ matrix.arch == 'amd64' }}
uses: ilammy/msvc-dev-cmd@v1
with:
arch: amd64
+ toolset: '14.1' # latest masm build known to make bootable builds
- name: Add LLVM to PATH
- if: ${{ matrix.compiler == 'clang-cl' }}
run: echo "${env:LLVM_PATH}" | Out-File -FilePath $env:GITHUB_PATH
-Encoding utf8 -Append
- name: Source checkout
uses: actions/checkout@v2
with:
path: src
- name: Configure
- run: cmake -S src -B build -G Ninja
-DCMAKE_TOOLCHAIN_FILE:FILEPATH=toolchain-msvc.cmake -DARCH:STRING=${{matrix.arch}}
-DENABLE_ROSTESTS=1 -DENABLE_ROSAPPS=1 -DUSE_CLANG_CL:BOOL=${{matrix.compiler ==
'clang-cl'}}
+ run: cmake -S src -B build -G Ninja
-DCMAKE_TOOLCHAIN_FILE:FILEPATH=toolchain-msvc.cmake -DARCH:STRING=${{matrix.arch}}
-DENABLE_ROSTESTS=1 -DENABLE_ROSAPPS=1 -DUSE_CLANG_CL:BOOL=TRUE
- name: Build
- run: cmake --build ${{github.workspace}}\build
+ run: cmake --build ${{github.workspace}}\build -- -k0
- name: Generate ISOs
run: cmake --build ${{github.workspace}}\build --target bootcd --target livecd
- - name: Upload bootcd
+ - name: Upload ISOs
uses: actions/upload-artifact@v2
with:
- name: reactos-bootcd-${{matrix.compiler}}-${{matrix.arch}}-${{github.sha}}
- path: build/bootcd.iso
- - name: Upload livecd
+ name: reactos-clang-cl-${{matrix.arch}}-${{github.sha}}
+ path: |
+ build/bootcd.iso
+ build/livecd.iso
+ - name: Upload debug symbols
uses: actions/upload-artifact@v2
with:
- name: reactos-livecd-${{matrix.compiler}}-${{matrix.arch}}-${{github.sha}}
- path: build/livecd.iso
+ name: reactos-syms-clang-cl-${{matrix.arch}}-${{github.sha}}
+ path: build/msvc_pdb
build-msbuild-i386:
name: MSBuild (i386)