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)