From e9cef3f216ec55b5a819a2046807f2c72b7fc625 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Gardou?= Date: Mon, 3 May 2021 15:48:53 +0200 Subject: [PATCH] [GITHUB] Add clang-cl amd64 build to CI As before, use a matrix for Ninja+Msvc build --- .github/workflows/build.yml | 124 ++++++++++-------------------------- 1 file changed, 33 insertions(+), 91 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 31af335b11a..15e8a156f97 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -76,116 +76,58 @@ jobs: name: reactos-${{matrix.compiler}}-${{matrix.arch}}-${{github.sha}} path: build/livecd.iso - build-clang-cl-i386: - name: Clang-CL (i386) + build-msvc: + strategy: + matrix: + compiler: [msvc, clang-cl] + arch: [i386, amd64] + fail-fast: false runs-on: windows-latest steps: - - name: Install packages + - name: Install ninja + run: choco install -y ninja + - name: Install LLVM (x86) + if: ${{ (matrix.compiler == 'clang-cl') && (matrix.arch == 'i386') }} run: | - choco install ninja -y choco install --x86 -y llvm - - name: Install Flex and Bison + 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') }} + run: | + choco install -y llvm + echo "LLVM_PATH=${env:PROGRAMFILES}\llvm\bin" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append + - 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: Add CL to PATH + - name: Activate VS cmd (x86) + if: ${{ matrix.arch == 'i386' }} uses: ilammy/msvc-dev-cmd@v1 with: arch: amd64_x86 - - uses: actions/checkout@v2 - with: - path: src - - name: Configure - run: | - mkdir build - cd build - $env:PATH = "${env:PROGRAMFILES(X86)}\llvm\bin;$env:PATH" - cmake -G Ninja -DCMAKE_TOOLCHAIN_FILE:FILEPATH=toolchain-msvc.cmake -DARCH:STRING=i386 -DENABLE_ROSTESTS=1 -DENABLE_ROSAPPS=1 -DUSE_CLANG_CL:BOOL=1 ${{github.workspace}}\src - - name: Build - working-directory: ${{github.workspace}}\build - run: cmake --build . - - name: Generate ISOs - working-directory: ${{github.workspace}}\build - run: | - cmake --build . --target bootcd - cmake --build . --target livecd - - build-msvc-i386: - name: MSVC (i386) - runs-on: windows-latest - steps: - - name: Install packages - run: choco install ninja -y - - name: Install Flex and 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: Add CL to PATH - uses: ilammy/msvc-dev-cmd@v1 - with: - arch: amd64_x86 - - uses: actions/checkout@v2 - with: - path: src - - name: Configure - run: | - mkdir build - cd build - cmake -G Ninja -DCMAKE_TOOLCHAIN_FILE:FILEPATH=toolchain-msvc.cmake -DARCH:STRING=i386 -DENABLE_ROSTESTS=1 -DENABLE_ROSAPPS=1 ${{github.workspace}}\src - - name: Build - working-directory: ${{github.workspace}}\build - run: cmake --build . - - name: Generate ISOs - working-directory: ${{github.workspace}}\build - run: | - cmake --build . --target bootcd - cmake --build . --target livecd - - name: Upload bootcd - uses: actions/upload-artifact@v2 - with: - name: reactos-msvc-i386-${{github.sha}} - path: build/bootcd.iso - - name: Upload livecd - uses: actions/upload-artifact@v2 - with: - name: reactos-msvc-i386-${{github.sha}} - path: build/livecd.iso - - build-msvc-amd64: - name: MSVC (amd64) - runs-on: windows-latest - steps: - - name: Install packages - run: choco install ninja -y - - name: Install Flex and 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: Add CL to PATH + - name: Activate VS cmd (amd64) + if: ${{ matrix.arch == 'amd64' }} uses: ilammy/msvc-dev-cmd@v1 with: arch: amd64 - - uses: actions/checkout@v2 + - 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: Create Build directory + run: mkdir build - name: Configure - run: | - mkdir build - cd build - cmake -G Ninja -DCMAKE_TOOLCHAIN_FILE:FILEPATH=toolchain-msvc.cmake -DARCH:STRING=amd64 -DENABLE_ROSTESTS=1 -DENABLE_ROSAPPS=1 ${{github.workspace}}\src + working-directory: ${{github.workspace}}\build + run: cmake -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'}} ${{github.workspace}}\src - name: Build working-directory: ${{github.workspace}}\build - run: | - cmake --build . + run: cmake --build . - name: Generate ISOs working-directory: ${{github.workspace}}\build run: | @@ -194,12 +136,12 @@ jobs: - name: Upload bootcd uses: actions/upload-artifact@v2 with: - name: reactos-msvc-amd64-${{github.sha}} + name: reactos-${{matrix.compiler}}-${{matrix.arch}}-${{github.sha}} path: build/bootcd.iso - name: Upload livecd uses: actions/upload-artifact@v2 with: - name: reactos-msvc-amd64-${{github.sha}} + name: reactos-${{matrix.compiler}}-${{matrix.arch}}-${{github.sha}} path: build/livecd.iso build-msbuild-i386: