- 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
- 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
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)