@@ -23,16 +23,14 @@ concurrency:
2323 cancel-in-progress : true
2424
2525jobs :
26- windows-release-node :
26+ conan- windows-release-node :
2727 needs : format-taginfo-docs
2828 runs-on : windows-2022
2929 continue-on-error : false
3030 env :
3131 BUILD_TYPE : Release
3232 steps :
3333 - uses : actions/checkout@v4
34- - run : pip install "conan<2.0.0"
35- - run : conan --version
3634 - run : cmake --version
3735 - uses : actions/setup-node@v4
3836 with :
5149 run : |
5250 mkdir build
5351 cd build
52+
53+ python3 -m venv .venv
54+ source .venv/Scripts/Activate
55+ python3 -m pip install conan==2.7.1
56+ conan profile detect --force
57+
5458 cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_CONAN=ON -DENABLE_NODE_BINDINGS=ON ..
5559 cmake --build . --config Release
5660
@@ -161,7 +165,7 @@ jobs:
161165 curl --retry-delay 3 --retry 10 --retry-all-errors "http://127.0.0.1:5000/route/v1/driving/13.388860,52.517037;13.385983,52.496891?steps=true"
162166 docker stop osrm-container
163167
164- build-test-publish :
168+ build-matrix :
165169 needs : format-taginfo-docs
166170 strategy :
167171 matrix :
@@ -338,7 +342,7 @@ jobs:
338342 build_node_package : true
339343 continue-on-error : true
340344 node : 20
341- runs-on : macos-14 # arm64
345+ runs-on : macos-15 # arm64
342346 BUILD_TYPE : Release
343347 CCOMPILER : clang
344348 CXXCOMPILER : clang++
@@ -393,10 +397,10 @@ jobs:
393397 - name : Enable Conan cache
394398 uses : actions/cache@v4
395399 with :
396- path : ~/.conan
397- key : v9 -conan-${{ matrix.name }}-${{ github.sha }}
400+ path : ~/.conan2
401+ key : v10 -conan-${{ matrix.name }}-${{ github.sha }}
398402 restore-keys : |
399- v9 -conan-${{ matrix.name }}-
403+ v10 -conan-${{ matrix.name }}-
400404 - name : Enable test cache
401405 uses : actions/cache@v4
402406 with :
@@ -432,15 +436,14 @@ jobs:
432436 run : sudo chown root /bin/tar && sudo chmod u+s /bin/tar
433437
434438 - name : Install boost
439+ if : ${{ matrix.ENABLE_CONAN != 'ON' }}
435440 uses : MarkusJx/install-boost@v2
436441 id : install-boost
437442 with :
438443 boost_version : 1.85.0
439444
440445 - name : Install dev dependencies
441446 run : |
442- python3 -m pip install "conan<2.0.0" || python3 -m pip install "conan<2.0.0" --break-system-packages
443-
444447 # workaround for issue that GitHub Actions seems to not adding it to PATH after https://github.com/actions/runner-images/pull/6499
445448 # and that's why CI cannot find conan executable installed above
446449 if [[ "${RUNNER_OS}" == "macOS" ]]; then
@@ -477,20 +480,6 @@ jobs:
477480 tar zxvf onetbb.tgz
478481 sudo cp -a oneapi-tbb-${TBB_VERSION}/lib/. /usr/local/lib/
479482 sudo cp -a oneapi-tbb-${TBB_VERSION}/include/. /usr/local/include/
480- - name : Add Clang 18 to list of Conan compilers # workaround for the issue that Conan 1.x doesn't know about Clang 18
481- if : ${{ matrix.ENABLE_CONAN == 'ON' && matrix.CCOMPILER == 'clang-18' }}
482- run : |
483- sudo wget https://github.com/mikefarah/yq/releases/download/v4.9.6/yq_linux_amd64 -O /usr/bin/yq && sudo chmod +x /usr/bin/yq
484-
485- conan config init
486- yq eval '.compiler.clang.version += ["18"]' -i "$HOME/.conan/settings.yml"
487- - name : Add Apple-clang 16 to list of Conan compilers # workaround for the issue that Conan 1.x doesn't know about Apple-clang 16
488- if : ${{ matrix.ENABLE_CONAN == 'ON' && matrix.runs-on == 'macos-14' }}
489- run : |
490- sudo wget https://github.com/mikefarah/yq/releases/download/v4.9.6/yq_darwin_arm64 -O /usr/local/bin/yq && sudo chmod +x /usr/local/bin/yq
491-
492- conan config init
493- yq eval '.compiler.apple-clang.version += ["16.0"]' -i "$HOME/.conan/settings.yml"
494483 - name : Prepare build
495484 run : |
496485 mkdir ${OSRM_BUILD_DIR}
@@ -512,7 +501,14 @@ jobs:
512501 run : |
513502 echo "Using ${JOBS} jobs"
514503 pushd ${OSRM_BUILD_DIR}
515-
504+
505+ if [[ "${ENABLE_CONAN}" == "ON" ]]; then
506+ python3 -m venv .venv
507+ source .venv/bin/activate
508+ python3 -m pip install conan==2.7.1
509+ conan profile detect --force
510+ fi
511+
516512 ccache --zero-stats
517513 cmake .. -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \
518514 -DENABLE_CONAN=${ENABLE_CONAN:-OFF} \
@@ -526,6 +522,7 @@ jobs:
526522 -DENABLE_CCACHE=ON \
527523 -DENABLE_LTO=${ENABLE_LTO:-ON} \
528524 -DCMAKE_INSTALL_PREFIX=${OSRM_INSTALL_DIR}
525+
529526 make --jobs=${JOBS}
530527
531528 if [[ "${NODE_PACKAGE_TESTS_ONLY}" != "ON" ]]; then
@@ -542,10 +539,11 @@ jobs:
542539 env :
543540 Boost_ROOT : ${{ steps.install-boost.outputs.BOOST_ROOT }}
544541 - name : Build example
545- if : ${{ matrix.NODE_PACKAGE_TESTS_ONLY != 'ON' }}
542+ if : ${{ matrix.NODE_PACKAGE_TESTS_ONLY != 'ON' && matrix.ENABLE_CONAN != 'ON' }}
546543 run : |
547544 mkdir example/build && pushd example/build
548- cmake .. -DCMAKE_BUILD_TYPE=${BUILD_TYPE}
545+ cmake .. -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \
546+ -DBoost_ROOT=${{ steps.install-boost.outputs.BOOST_ROOT }}
549547 make --jobs=${JOBS}
550548 popd
551549 - name : Run all tests
@@ -554,8 +552,10 @@ jobs:
554552 make -C test/data benchmark
555553
556554 # macOS SIP strips the linker path. Reset this inside the running shell
557- export LD_LIBRARY_PATH=${{ env.LD_LIBRARY_PATH }}
558- ./example/build/osrm-example test/data/mld/monaco.osrm
555+ if [[ "${ENABLE_CONAN}" == "OFF" ]]; then
556+ export LD_LIBRARY_PATH=${{ env.LD_LIBRARY_PATH }}
557+ ./example/build/osrm-example test/data/mld/monaco.osrm
558+ fi
559559
560560 # All tests assume to be run from the build directory
561561 pushd ${OSRM_BUILD_DIR}
@@ -643,7 +643,7 @@ jobs:
643643
644644 ci-complete :
645645 runs-on : ubuntu-latest
646- needs : [build-test-publish, docker-image- matrix, windows-release-node]
646+ needs : [build-matrix, conan- windows-release-node, docker-image-matrix ]
647647 steps :
648648 - run : echo "CI complete"
649649
0 commit comments