@@ -23,16 +23,14 @@ concurrency:
23
23
cancel-in-progress : true
24
24
25
25
jobs :
26
- windows-release-node :
26
+ conan- windows-release-node :
27
27
needs : format-taginfo-docs
28
28
runs-on : windows-2022
29
29
continue-on-error : false
30
30
env :
31
31
BUILD_TYPE : Release
32
32
steps :
33
33
- uses : actions/checkout@v4
34
- - run : pip install "conan<2.0.0"
35
- - run : conan --version
36
34
- run : cmake --version
37
35
- uses : actions/setup-node@v4
38
36
with :
51
49
run : |
52
50
mkdir build
53
51
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
+
54
58
cmake -DCMAKE_BUILD_TYPE=Release -DENABLE_CONAN=ON -DENABLE_NODE_BINDINGS=ON ..
55
59
cmake --build . --config Release
56
60
@@ -161,7 +165,7 @@ jobs:
161
165
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"
162
166
docker stop osrm-container
163
167
164
- build-test-publish :
168
+ build-matrix :
165
169
needs : format-taginfo-docs
166
170
strategy :
167
171
matrix :
@@ -338,7 +342,7 @@ jobs:
338
342
build_node_package : true
339
343
continue-on-error : true
340
344
node : 20
341
- runs-on : macos-14 # arm64
345
+ runs-on : macos-15 # arm64
342
346
BUILD_TYPE : Release
343
347
CCOMPILER : clang
344
348
CXXCOMPILER : clang++
@@ -393,10 +397,10 @@ jobs:
393
397
- name : Enable Conan cache
394
398
uses : actions/cache@v4
395
399
with :
396
- path : ~/.conan
397
- key : v9 -conan-${{ matrix.name }}-${{ github.sha }}
400
+ path : ~/.conan2
401
+ key : v10 -conan-${{ matrix.name }}-${{ github.sha }}
398
402
restore-keys : |
399
- v9 -conan-${{ matrix.name }}-
403
+ v10 -conan-${{ matrix.name }}-
400
404
- name : Enable test cache
401
405
uses : actions/cache@v4
402
406
with :
@@ -432,15 +436,14 @@ jobs:
432
436
run : sudo chown root /bin/tar && sudo chmod u+s /bin/tar
433
437
434
438
- name : Install boost
439
+ if : ${{ matrix.ENABLE_CONAN != 'ON' }}
435
440
uses : MarkusJx/install-boost@v2
436
441
id : install-boost
437
442
with :
438
443
boost_version : 1.85.0
439
444
440
445
- name : Install dev dependencies
441
446
run : |
442
- python3 -m pip install "conan<2.0.0" || python3 -m pip install "conan<2.0.0" --break-system-packages
443
-
444
447
# workaround for issue that GitHub Actions seems to not adding it to PATH after https://github.com/actions/runner-images/pull/6499
445
448
# and that's why CI cannot find conan executable installed above
446
449
if [[ "${RUNNER_OS}" == "macOS" ]]; then
@@ -477,20 +480,6 @@ jobs:
477
480
tar zxvf onetbb.tgz
478
481
sudo cp -a oneapi-tbb-${TBB_VERSION}/lib/. /usr/local/lib/
479
482
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"
494
483
- name : Prepare build
495
484
run : |
496
485
mkdir ${OSRM_BUILD_DIR}
@@ -512,7 +501,14 @@ jobs:
512
501
run : |
513
502
echo "Using ${JOBS} jobs"
514
503
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
+
516
512
ccache --zero-stats
517
513
cmake .. -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \
518
514
-DENABLE_CONAN=${ENABLE_CONAN:-OFF} \
@@ -526,6 +522,7 @@ jobs:
526
522
-DENABLE_CCACHE=ON \
527
523
-DENABLE_LTO=${ENABLE_LTO:-ON} \
528
524
-DCMAKE_INSTALL_PREFIX=${OSRM_INSTALL_DIR}
525
+
529
526
make --jobs=${JOBS}
530
527
531
528
if [[ "${NODE_PACKAGE_TESTS_ONLY}" != "ON" ]]; then
@@ -542,10 +539,11 @@ jobs:
542
539
env :
543
540
Boost_ROOT : ${{ steps.install-boost.outputs.BOOST_ROOT }}
544
541
- name : Build example
545
- if : ${{ matrix.NODE_PACKAGE_TESTS_ONLY != 'ON' }}
542
+ if : ${{ matrix.NODE_PACKAGE_TESTS_ONLY != 'ON' && matrix.ENABLE_CONAN != 'ON' }}
546
543
run : |
547
544
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 }}
549
547
make --jobs=${JOBS}
550
548
popd
551
549
- name : Run all tests
@@ -554,8 +552,10 @@ jobs:
554
552
make -C test/data benchmark
555
553
556
554
# 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
559
559
560
560
# All tests assume to be run from the build directory
561
561
pushd ${OSRM_BUILD_DIR}
@@ -643,7 +643,7 @@ jobs:
643
643
644
644
ci-complete :
645
645
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 ]
647
647
steps :
648
648
- run : echo "CI complete"
649
649
0 commit comments