Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GHA checking CMake minimal version test #12118

Merged
53 changes: 53 additions & 0 deletions .github/workflows/CMake-minimal-version.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
name: CMake minimal version
# The aim of this test derminate minimal supported CMake version for LibRS project
# and check if it equlas to expected minimal CMAke version

on:
push:
pull_request:

env:
EXPECTED_CMAKE_VERSION: "VERSION 3.8.0"

jobs:
test_downloader:
name: "Run CMake compatibility tool"
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v3

- name: "Get current CMake version"
id: cmake_version
run: |
sudo apt-get install xorg-dev libglu1-mesa-dev

# Go back from RealSense directory to parent directory
cd ..
Nir-Az marked this conversation as resolved.
Show resolved Hide resolved

git clone https://github.com/nlohmann/cmake_min_version.git
cd cmake_min_version
# We clone a specific commit which we tested the process as working
git checkout 687dc56e1cf52c865cebf6ac94ad67906d6e1369

python3 -mvenv venv
venv/bin/pip3 install -r requirements.txt
venv/bin/python3 cmake_downloader.py --first_minor
output=$(venv/bin/python3 cmake_min_version.py /home/runner/work/librealsense/librealsense/)
Nir-Az marked this conversation as resolved.
Show resolved Hide resolved
echo "Current CMake $output"
Nir-Az marked this conversation as resolved.
Show resolved Hide resolved

# Retrieve CMake minimal version from the last line of the tool output.
current_cmake_version=$(echo ${output: -30} | cut -d'(' -f 2 | head -c -2)
# Saving cmake minimal version string in GitHub output
echo "current_cmake_version=$current_cmake_version" >> $GITHUB_OUTPUT

- name: "Check minimal CMake version"
run: |
if [ "${{steps.cmake_version.outputs.current_cmake_version}}" == "${EXPECTED_CMAKE_VERSION}" ] || [ "${{steps.cmake_version.outputs.current_cmake_version}}" \< "${EXPECTED_CMAKE_VERSION}" ]
then
echo "The test PASSED, current CMake version is ${{steps.cmake_version.outputs.current_cmake_version}} and it is not higher than ${EXPECTED_CMAKE_VERSION}"
exit 0
else
echo "Error - LibRS minimal CMake version require is ${EXPECTED_CMAKE_VERSION} but on this build the minimal is ${{steps.cmake_version.outputs.current_cmake_version}}"
exit 1
fi
Loading