Skip to content

Commit d5b1ba0

Browse files
authored
Merge branch 'master' into fix-large-osmids-json-rendering
2 parents c763865 + f3615b4 commit d5b1ba0

File tree

11 files changed

+510
-1191
lines changed

11 files changed

+510
-1191
lines changed

.github/workflows/osrm-backend.yml

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -23,16 +23,14 @@ concurrency:
2323
cancel-in-progress: true
2424

2525
jobs:
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:
@@ -51,6 +49,12 @@ jobs:
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

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
- NodeJS:
2727
- CHANGED: Use node-api instead of NAN. [#6452](https://github.com/Project-OSRM/osrm-backend/pull/6452)
2828
- Misc:
29+
- CHANGED: Migrate to Conan 2.x. [#7042](https://github.com/Project-OSRM/osrm-backend/pull/7042)
2930
- CHANGED: Use std::string_view for key type in json::Object. [#7062](https://github.com/Project-OSRM/osrm-backend/pull/7062)
3031
- CHANGED: Use thread_local instead of boost::thread_specific_ptr. [#6991](https://github.com/Project-OSRM/osrm-backend/pull/6991)
3132
- CHANGED: Bump flatbuffers to v24.3.25 version. [#6988](https://github.com/Project-OSRM/osrm-backend/pull/6988)

0 commit comments

Comments
 (0)