name: Run CMake description: Run CMake to generate build files inputs: build_dir: description: Build directory required: false default: "build" build_type: description: Build type for third-party libraries and clio. Could be 'Release', 'Debug' required: true default: "Release" integration_tests: description: Whether to generate target integration tests required: true default: "true" benchmark: description: Whether to generate targets for benchmarks required: true default: "true" code_coverage: description: Whether to enable code coverage required: true default: "false" time_trace: description: Whether to enable compiler trace reports required: true default: "false" package: description: Whether to generate Debian package required: true default: "false" version: description: Version of the clio_server binary required: false default: "" runs: using: composite steps: - name: Run cmake shell: bash env: BUILD_DIR: "${{ inputs.build_dir }}" BUILD_TYPE: "${{ inputs.build_type }}" INTEGRATION_TESTS: "${{ inputs.integration_tests == 'true' && 'ON' || 'OFF' }}" BENCHMARK: "${{ inputs.benchmark == 'true' && 'ON' || 'OFF' }}" COVERAGE: "${{ inputs.code_coverage == 'true' && 'ON' || 'OFF' }}" TIME_TRACE: "${{ inputs.time_trace == 'true' && 'ON' || 'OFF' }}" PACKAGE: "${{ inputs.package == 'true' && 'ON' || 'OFF' }}" # GitHub creates a merge commit for a PR # https://www.kenmuse.com/blog/the-many-shas-of-a-github-pull-request/ # # We: # - explicitly provide branch name # - use `github.head_ref` to get the SHA of last commit in the PR branch # # This way it works both for PRs and pushes to branches. GITHUB_BRANCH_NAME: "${{ github.head_ref || github.ref_name }}" GITHUB_HEAD_SHA: "${{ github.event.pull_request.head.sha || github.sha }}" # # If tag is being pushed, or it's a nightly release, we use that version. FORCE_CLIO_VERSION: ${{ inputs.version }} run: | cmake \ -B "${BUILD_DIR}" \ -S . \ -G Ninja \ -DCMAKE_TOOLCHAIN_FILE:FILEPATH=build/generators/conan_toolchain.cmake \ -DCMAKE_BUILD_TYPE="${BUILD_TYPE}" \ -Dtests=ON \ -Dintegration_tests="${INTEGRATION_TESTS}" \ -Dbenchmark="${BENCHMARK}" \ -Dcoverage="${COVERAGE}" \ -Dtime_trace="${TIME_TRACE}" \ -Dpackage="${PACKAGE}"