[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
This commit is contained in:
Jérôme Gardou 2021-05-07 12:52:37 +02:00 committed by Jérôme Gardou
parent 3adf450867
commit 1e01afab99

View file

@ -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
uses: actions/upload-artifact@v2
with:
name: reactos-livecd-${{matrix.compiler}}-${{matrix.arch}}-${{github.sha}}
path: build/livecd.iso
name: reactos-${{matrix.compiler}}-${{matrix.arch}}-${{github.sha}}
path: |
build/bootcd.iso
build/livecd.iso
build-msvc:
strategy:
matrix:
compiler: [msvc, clang-cl]
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-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-clang-cl:
strategy:
matrix:
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)