mirror of
https://github.com/reactos/reactos.git
synced 2024-12-28 10:04:49 +00:00
[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:
parent
3adf450867
commit
1e01afab99
1 changed files with 75 additions and 21 deletions
96
.github/workflows/build.yml
vendored
96
.github/workflows/build.yml
vendored
|
@ -60,26 +60,77 @@ jobs:
|
||||||
- name: Configure
|
- 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}}
|
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
|
- 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
|
- name: Generate ISOs
|
||||||
run: echo 'cmake --build ${{github.workspace}}/build --target bootcd --target livecd' | ${{github.workspace}}/RosBE-CI/RosBE.sh . 0 ${{matrix.arch}}
|
run: echo 'cmake --build ${{github.workspace}}/build --target bootcd --target livecd' | ${{github.workspace}}/RosBE-CI/RosBE.sh . 0 ${{matrix.arch}}
|
||||||
- name: Print ccache statistics
|
- name: Print ccache statistics
|
||||||
run: ccache -s
|
run: ccache -s
|
||||||
- name: Upload bootcd
|
- name: Upload ISOs
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v2
|
||||||
with:
|
with:
|
||||||
name: reactos-bootcd-${{matrix.compiler}}-${{matrix.arch}}-${{github.sha}}
|
name: reactos-${{matrix.compiler}}-${{matrix.arch}}-${{github.sha}}
|
||||||
path: build/bootcd.iso
|
path: |
|
||||||
- name: Upload livecd
|
build/bootcd.iso
|
||||||
uses: actions/upload-artifact@v2
|
build/livecd.iso
|
||||||
with:
|
|
||||||
name: reactos-livecd-${{matrix.compiler}}-${{matrix.arch}}-${{github.sha}}
|
|
||||||
path: build/livecd.iso
|
|
||||||
|
|
||||||
build-msvc:
|
build-msvc:
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
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]
|
arch: [i386, amd64]
|
||||||
fail-fast: false
|
fail-fast: false
|
||||||
runs-on: windows-latest
|
runs-on: windows-latest
|
||||||
|
@ -87,12 +138,12 @@ jobs:
|
||||||
- name: Install ninja
|
- name: Install ninja
|
||||||
run: choco install -y ninja
|
run: choco install -y ninja
|
||||||
- name: Install LLVM (x86)
|
- name: Install LLVM (x86)
|
||||||
if: ${{ (matrix.compiler == 'clang-cl') && (matrix.arch == 'i386') }}
|
if: ${{ matrix.arch == 'i386' }}
|
||||||
run: |
|
run: |
|
||||||
choco install --x86 -y llvm
|
choco install --x86 -y llvm
|
||||||
echo "LLVM_PATH=${env:PROGRAMFILES(X86)}\llvm\bin" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
|
echo "LLVM_PATH=${env:PROGRAMFILES(X86)}\llvm\bin" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
|
||||||
- name: Install LLVM (amd64)
|
- name: Install LLVM (amd64)
|
||||||
if: ${{ (matrix.compiler == 'clang-cl') && (matrix.arch == 'amd64') }}
|
if: ${{ matrix.arch == 'amd64' }}
|
||||||
run: |
|
run: |
|
||||||
choco install -y llvm
|
choco install -y llvm
|
||||||
echo "LLVM_PATH=${env:PROGRAMFILES}\llvm\bin" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
|
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
|
uses: ilammy/msvc-dev-cmd@v1
|
||||||
with:
|
with:
|
||||||
arch: amd64_x86
|
arch: amd64_x86
|
||||||
|
toolset: '14.1' # latest masm build known to make bootable builds
|
||||||
- name: Activate VS cmd (amd64)
|
- name: Activate VS cmd (amd64)
|
||||||
if: ${{ matrix.arch == 'amd64' }}
|
if: ${{ matrix.arch == 'amd64' }}
|
||||||
uses: ilammy/msvc-dev-cmd@v1
|
uses: ilammy/msvc-dev-cmd@v1
|
||||||
with:
|
with:
|
||||||
arch: amd64
|
arch: amd64
|
||||||
|
toolset: '14.1' # latest masm build known to make bootable builds
|
||||||
- name: Add LLVM to PATH
|
- name: Add LLVM to PATH
|
||||||
if: ${{ matrix.compiler == 'clang-cl' }}
|
|
||||||
run: echo "${env:LLVM_PATH}" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
|
run: echo "${env:LLVM_PATH}" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
|
||||||
- name: Source checkout
|
- name: Source checkout
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v2
|
||||||
with:
|
with:
|
||||||
path: src
|
path: src
|
||||||
- name: Configure
|
- 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
|
- name: Build
|
||||||
run: cmake --build ${{github.workspace}}\build
|
run: cmake --build ${{github.workspace}}\build -- -k0
|
||||||
- name: Generate ISOs
|
- name: Generate ISOs
|
||||||
run: cmake --build ${{github.workspace}}\build --target bootcd --target livecd
|
run: cmake --build ${{github.workspace}}\build --target bootcd --target livecd
|
||||||
- name: Upload bootcd
|
- name: Upload ISOs
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v2
|
||||||
with:
|
with:
|
||||||
name: reactos-bootcd-${{matrix.compiler}}-${{matrix.arch}}-${{github.sha}}
|
name: reactos-clang-cl-${{matrix.arch}}-${{github.sha}}
|
||||||
path: build/bootcd.iso
|
path: |
|
||||||
- name: Upload livecd
|
build/bootcd.iso
|
||||||
|
build/livecd.iso
|
||||||
|
- name: Upload debug symbols
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v2
|
||||||
with:
|
with:
|
||||||
name: reactos-livecd-${{matrix.compiler}}-${{matrix.arch}}-${{github.sha}}
|
name: reactos-syms-clang-cl-${{matrix.arch}}-${{github.sha}}
|
||||||
path: build/livecd.iso
|
path: build/msvc_pdb
|
||||||
|
|
||||||
build-msbuild-i386:
|
build-msbuild-i386:
|
||||||
name: MSBuild (i386)
|
name: MSBuild (i386)
|
||||||
|
|
Loading…
Reference in a new issue