From dced751a729fc34c018ad99be974fc04a7cca06e Mon Sep 17 00:00:00 2001 From: Jade Date: Fri, 4 Oct 2024 04:26:49 +0800 Subject: [PATCH] [ci] Merge Windows into CMake matrix (#7153) --- .github/workflows/cmake.yml | 58 +++++++++++++++---------------------- 1 file changed, 23 insertions(+), 35 deletions(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 1192a2f366..37cf09a671 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -24,7 +24,11 @@ jobs: name: macOS container: "" env: "PATH=\"/opt/homebrew/opt/protobuf@3/bin:$PATH\"" - flags: "--preset with-sccache -DCMAKE_BUILD_TYPE=Release -DWITH_JAVA=OFF -DWITH_EXAMPLES=ON -DCMAKE_LIBRARY_PATH=/opt/homebrew/opt/protobuf@3/lib -DProtobuf_INCLUDE_DIR=/opt/homebrew/opt/protobuf@3/include -DProtobuf_PROTOC_EXECUTABLE=/opt/homebrew/opt/protobuf@3/bin/protoc" + flags: "--preset with-sccache -DCMAKE_BUILD_TYPE=Release -DWITH_EXAMPLES=ON -DCMAKE_LIBRARY_PATH=/opt/homebrew/opt/protobuf@3/lib -DProtobuf_INCLUDE_DIR=/opt/homebrew/opt/protobuf@3/include -DProtobuf_PROTOC_EXECUTABLE=/opt/homebrew/opt/protobuf@3/bin/protoc" + - os: windows-2022 + name: Windows + container: "" + flags: "--preset with-sccache -DCMAKE_BUILD_TYPE=Release -DWITH_EXAMPLES=ON -DUSE_SYSTEM_FMTLIB=ON -DUSE_SYSTEM_LIBUV=ON -DUSE_SYSTEM_EIGEN=OFF -DCMAKE_TOOLCHAIN_FILE=${{ runner.workspace }}/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_INSTALL_OPTIONS=--clean-after-build -DVCPKG_TARGET_TRIPLET=x64-windows-release -DVCPKG_HOST_TRIPLET=x64-windows-release" name: "Build - ${{ matrix.name }}" runs-on: ${{ matrix.os }} @@ -35,8 +39,22 @@ jobs: run: sudo apt-get update && sudo apt-get install -y libopencv-dev libopencv4.5-java libprotobuf-dev protobuf-compiler ninja-build - name: Install dependencies (macOS) - run: brew install opencv protobuf@3 ninja if: runner.os == 'macOS' + run: brew install opencv protobuf@3 ninja + + - uses: ilammy/msvc-dev-cmd@v1.13.0 + if: runner.os == 'Windows' + + - name: Install CMake (Windows only) + if: runner.os == 'Windows' + uses: lukka/get-cmake@v3.29.3 + + - name: Run vcpkg (Windows only) + if: runner.os == 'Windows' + uses: lukka/run-vcpkg@v11.5 + with: + vcpkgDirectory: ${{ runner.workspace }}/vcpkg + vcpkgGitCommitId: 37c3e63a1306562f7f59c4c3c8892ddd50fdf992 # HEAD on 2024-02-24 - name: Install sccache uses: mozilla-actions/sccache-action@v0.0.5 @@ -56,42 +74,12 @@ jobs: SCCACHE_WEBDAV_PASSWORD: ${{ secrets.ARTIFACTORY_PASSWORD }} - name: test + if: runner.os != 'Windows' working-directory: build-cmake run: ctest --output-on-failure - build-windows: - name: "Build - Windows" - runs-on: windows-2022 - steps: - - uses: ilammy/msvc-dev-cmd@v1.13.0 - - - name: Install CMake - uses: lukka/get-cmake@v3.29.3 - - - name: Run sccache-cache - uses: mozilla-actions/sccache-action@v0.0.5 - - - uses: actions/checkout@v4 - - - name: Run vcpkg - uses: lukka/run-vcpkg@v11.5 - with: - vcpkgDirectory: ${{ runner.workspace }}/vcpkg - vcpkgGitCommitId: 37c3e63a1306562f7f59c4c3c8892ddd50fdf992 # HEAD on 2024-02-24 - - - name: configure - run: cmake --preset with-sccache -DCMAKE_BUILD_TYPE=Release -DWITH_JAVA=OFF -DWITH_EXAMPLES=ON -DUSE_SYSTEM_FMTLIB=ON -DUSE_SYSTEM_LIBUV=ON -DUSE_SYSTEM_EIGEN=OFF -DCMAKE_TOOLCHAIN_FILE=${{ runner.workspace }}/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_INSTALL_OPTIONS=--clean-after-build -DVCPKG_TARGET_TRIPLET=x64-windows-release -DVCPKG_HOST_TRIPLET=x64-windows-release - env: - SCCACHE_WEBDAV_USERNAME: ${{ secrets.ARTIFACTORY_USERNAME }} - SCCACHE_WEBDAV_PASSWORD: ${{ secrets.ARTIFACTORY_PASSWORD }} - - - name: build - run: cmake --build build-cmake --parallel $(nproc) - env: - SCCACHE_WEBDAV_USERNAME: ${{ secrets.ARTIFACTORY_USERNAME }} - SCCACHE_WEBDAV_PASSWORD: ${{ secrets.ARTIFACTORY_PASSWORD }} - - - name: test + - name: test (windows) + if: runner.os == 'Windows' working-directory: build-cmake # UnitTest_test segfaults on exit occasionally run: ctest --output-on-failure -E 'UnitTest'