Skip to content

release v1.17.0

release v1.17.0 #584

Workflow file for this run

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