https://git.reactos.org/?p=reactos.git;a=commitdiff;h=1e01afab990b9fb9255d0c...
commit 1e01afab990b9fb9255d0c0d253ca141d5731a65 Author: Jérôme Gardou jerome.gardou@reactos.org AuthorDate: Fri May 7 12:52:37 2021 +0200 Commit: Jérôme Gardou zefklop@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)