# Ensure the minimum dependency versions found in the various CMake # files match the expected values. This ensures we synchronize versions # across containers and workflows. name: Check dependency versions on: pull_request: branches: [ master ] paths: - '**.cmake' - '**CMakeLists.txt' - 'docker/dependencies.versions' workflow_dispatch: jobs: check-version: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v3 - name: Version check run: | res=0 current=$(awk 'match($0,/set\(_min_version (.+)\)/,a){print a[1]}' cmake/tpls/DyninstBoost.cmake) expected=$(awk 'match($0,/boost:(.+)/,a){print a[1]}' docker/dependencies.versions) if test "$current" != "$expected"; then echo "Boost mismatch: Found $current, expected $expected" >/dev/stderr res=1 fi current=$(awk 'match($0,/set\(_min_version (.+)\)/,a){print a[1]}' cmake/tpls/DyninstTBB.cmake) expected=$(awk 'match($0,/tbb:(.+)/,a){print a[1]}' docker/dependencies.versions) if test "$current" != "$expected"; then echo "TBB mismatch: Found $current, expected $expected" >/dev/stderr res=1 fi current=$(awk 'match($0,/set\(_min_version (.+)\)/,a){print a[1]}' cmake/tpls/DyninstElfUtils.cmake) expected=$(awk 'match($0,/elfutils:(.+)/,a){print a[1]}' docker/dependencies.versions) if test "$current" != "$expected"; then echo "Elfutils mismatch: Found $current, expected $expected" >/dev/stderr res=1 fi current=$(awk 'match($0,/cmake_minimum_required\(VERSION (.+) FATAL_ERROR\)/,a){print a[1]}' CMakeLists.txt) expected=$(awk 'match($0,/cmake:(.+)/,a){print a[1]}' docker/dependencies.versions) if test "$current" != "$expected"; then echo "CMake mismatch: Found $current, expected $expected" >/dev/stderr res=1 fi exit $res