Fix Windows build #566
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: ci | |
| on: | |
| push: | |
| branches: [ main ] | |
| tags: | |
| - "v*" | |
| pull_request: | |
| branches: [ main ] | |
| jobs: | |
| cpplint: | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Build cpplint image | |
| run: pip install "cpplint<2" | |
| - name: Check code in /src | |
| run: find src/ \( -name "*.cc" -o -name "*.h" \) -print0 | xargs -0 cpplint | |
| - name: Check code in /tests | |
| run: find tests/ \( -name "*.cc" -o -name "*.h" \) -print0 | xargs cpplint | |
| - name: Check code in /examples | |
| run: find examples/ \( -name "*.cc" -o -name "*.h" \) -print0 | xargs cpplint | |
| check-example-linux: | |
| needs: cpplint | |
| runs-on: ubuntu-24.04 | |
| strategy: | |
| matrix: | |
| dependency: [ system, fetchcontent ] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Install OpenSSL on Linux | |
| shell: bash | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y libssl-dev | |
| - name: Set use_fetchcontent | |
| shell: bash | |
| if: matrix.dependency == 'fetchcontent' | |
| run: echo "USE_FETCHCONTENT=ON" >> $GITHUB_ENV | |
| - name: Install package | |
| if: matrix.dependency == 'system' | |
| uses: ./.github/actions/build-package-system | |
| - name: Build example | |
| shell: bash | |
| run: | | |
| cd examples | |
| cmake -S . -B build -DREDUCT_CPP_USE_STD_CHRONO=OFF -DREDUCT_CPP_EXAMPLE_USE_FETCHCONTENT=${USE_FETCHCONTENT} | |
| cmake --build build --config Release | |
| check-example-windows: | |
| runs-on: windows-2022 | |
| needs: cpplint | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Install OpenSSL on Windows | |
| shell: bash | |
| run: | | |
| choco install openssl | |
| - name: Build example | |
| shell: bash | |
| run: | | |
| cd examples | |
| cmake -S . -B build \ | |
| -DREDUCT_CPP_USE_STD_CHRONO=ON \ | |
| -DREDUCT_CPP_EXAMPLE_USE_FETCHCONTENT=USE_FETCHCONTENT=ON\ | |
| -DOPENSSL_ROOT_DIR="C:/Program Files/OpenSSL" | |
| cmake --build build ${BUILD_TAIL} --config Release | |
| build: | |
| runs-on: ${{ matrix.os }} | |
| needs: cpplint | |
| strategy: | |
| matrix: | |
| os: [ ubuntu-24.04, windows-2022 ] | |
| package_manager: [ "vcpkg", "conan" ] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Build with vcpkg | |
| if: matrix.package_manager == 'vcpkg' | |
| uses: ./.github/actions/build-package-vcpkg | |
| with: | |
| build_tests: true | |
| - name: Build with conan | |
| if: matrix.package_manager == 'conan' | |
| uses: ./.github/actions/build-package-conan | |
| with: | |
| build_tests: true | |
| - name: Upload test artifacts | |
| if: matrix.package_manager == 'conan' | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: reduct-tests | |
| path: build/Release/bin/reduct-tests | |
| unit-tests: | |
| needs: | |
| - cpplint | |
| - build | |
| runs-on: ubuntu-24.04 | |
| strategy: | |
| matrix: | |
| token: [ "", "TOKEN" ] | |
| reductstore_version: [ "main", "latest" ] | |
| license_file: [ "", "lic.key" ] | |
| include: | |
| - token: "" | |
| exclude_token_api_tag: "~[token_api]" | |
| - token: "TOKEN" | |
| exclude_token_api_tag: "" | |
| - reductstore_version: "main" | |
| exclude_api_version_tag: "" | |
| - reductstore_version: "latest" | |
| exclude_api_version_tag: "~[1_17]" | |
| - license_file: "" | |
| exclude_license_tag: "~[license]" | |
| steps: | |
| - name: Download test artifacts | |
| uses: actions/download-artifact@v5 | |
| with: | |
| name: reduct-tests | |
| path: build/Release/bin/ | |
| - name: Set execute permissions | |
| run: chmod +x build/Release/bin/reduct-tests | |
| - name: Generate license | |
| run: echo '${{secrets.LICENSE_KEY}}' > lic.key | |
| - uses: ./.github/actions/run-tests | |
| with: | |
| api-token: ${{matrix.token}} | |
| tags: "${{matrix.exclude_token_api_tag}} ${{matrix.exclude_api_version_tag}} ${{matrix.exclude_license_tag}}" | |
| reductstore-version: ${{matrix.reductstore_version}} | |
| lic_file: ${{matrix.license_file}} | |
| conan-test-package: | |
| runs-on: ${{ matrix.os }} | |
| needs: cpplint | |
| strategy: | |
| matrix: | |
| os: [ ubuntu-24.04, windows-2022 ] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-tags: 'true' | |
| - name: Create conan package | |
| uses: ./.github/actions/install-conan | |
| - name: Build package | |
| shell: bash | |
| run: conan create . --user=local --channel=test --build=missing -s build_type=Release | |
| - name: Test package | |
| shell: bash | |
| run: conan test examples reduct-cpp/$(git describe --tags --always).local@local/test |