release v1.17.0 #584
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 | |
| build: | |
| runs-on: ${{ matrix.os }} | |
| needs: cpplint | |
| strategy: | |
| matrix: | |
| os: [ ubuntu-24.04, windows-2022 ] | |
| package_manager: [ "vcpkg", "conan" ] | |
| exclude: | |
| - os: windows-2022 | |
| package_manager: vcpkg | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Build with vcpkg | |
| if: matrix.package_manager == 'vcpkg' | |
| uses: ./.github/actions/build-package-vcpkg | |
| - 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: | |
| - 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: | |
| - uses: actions/checkout@v4 | |
| - 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}} | |
| check-example-linux: | |
| needs: unit-tests | |
| 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_EXAMPLE_USE_FETCHCONTENT=${USE_FETCHCONTENT} | |
| cmake --build build --config Release | |
| check-example-windows: | |
| runs-on: windows-2022 | |
| needs: unit-tests | |
| 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_EXAMPLE_USE_FETCHCONTENT=ON\ | |
| -DOPENSSL_ROOT_DIR="C:/Program Files/OpenSSL" | |
| cmake --build build ${BUILD_TAIL} --config Release | |
| conan-test-package: | |
| runs-on: ${{ matrix.os }} | |
| needs: unit-tests | |
| 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 |