PR #12118 from Tamir91: GHA checking CMake minimal version test #87
This file contains 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: 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 .. | |
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/) | |
echo "$output" | |
# 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 |