@@ -193,7 +193,7 @@ jobs:
193193
194194 - name : clang-18-release
195195 continue-on-error : false
196- node : 18
196+ node : 20
197197 runs-on : ubuntu-24.04
198198 BUILD_TOOLS : ON
199199 BUILD_TYPE : Release
@@ -430,30 +430,12 @@ jobs:
430430 - name : Give tar root ownership
431431 if : runner.os == 'Linux' && matrix.ENABLE_CONAN != 'ON'
432432 run : sudo chown root /bin/tar && sudo chmod u+s /bin/tar
433- - name : Cache Boost
434- if : runner.os == 'Linux' && matrix.ENABLE_CONAN != 'ON'
435- id : cache-boost
436- uses : actions/cache@v4
437- with :
438- path : |
439- /usr/local/include/boost
440- /usr/local/lib/libboost*
441- key : v1-boost-${{ runner.os }}-${{ runner.arch }}-${{ matrix.runs-on }}
442- restore-keys : |
443- v1-boost-${{ runner.os }}-${{ runner.arch }}-${{ matrix.runs-on }}
444433
445- - name : Install Boost
446- if : steps.cache-boost.outputs.cache-hit != 'true' && runner.os == 'Linux' && matrix.ENABLE_CONAN != 'ON'
447- run : |
448- BOOST_VERSION="1.85.0"
449- BOOST_VERSION_UNDERSCORE="${BOOST_VERSION//./_}"
450- wget -q https://boostorg.jfrog.io/artifactory/main/release/${BOOST_VERSION}/source/boost_${BOOST_VERSION_UNDERSCORE}.tar.gz
451- tar xzf boost_${BOOST_VERSION_UNDERSCORE}.tar.gz
452- cd boost_${BOOST_VERSION_UNDERSCORE}
453- sudo ./bootstrap.sh
454- sudo ./b2 install
455- cd ..
456- sudo rm -rf boost_${BOOST_VERSION_UNDERSCORE}*
434+ - name : Install boost
435+ uses : MarkusJx/install-boost@v2
436+ id : install-boost
437+ with :
438+ boost_version : 1.85.0
457439
458440 - name : Install dev dependencies
459441 run : |
@@ -557,6 +539,8 @@ jobs:
557539 echo "PKG_CONFIG_PATH=${OSRM_INSTALL_DIR}/lib/pkgconfig" >> $GITHUB_ENV
558540 fi
559541 popd
542+ env :
543+ Boost_ROOT : ${{ steps.install-boost.outputs.BOOST_ROOT }}
560544 - name : Build example
561545 if : ${{ matrix.NODE_PACKAGE_TESTS_ONLY != 'ON' }}
562546 run : |
@@ -657,130 +641,9 @@ jobs:
657641 ccache -p
658642 ccache -s
659643
660- benchmarks :
661- if : github.event_name == 'pull_request'
662- needs : [format-taginfo-docs]
663- runs-on : self-hosted
664- env :
665- CCOMPILER : clang-16
666- CXXCOMPILER : clang++-16
667- CC : clang-16
668- CXX : clang++-16
669- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
670- PR_NUMBER : ${{ github.event.pull_request.number }}
671- GITHUB_REPOSITORY : ${{ github.repository }}
672- RUN_BIG_BENCHMARK : ${{ contains(github.event.pull_request.labels.*.name, 'Performance') }}
673- steps :
674- - name : Checkout PR Branch
675- uses : actions/checkout@v4
676- with :
677- ref : ${{ github.head_ref }}
678- path : pr
679- - name : Activate virtualenv
680- run : |
681- python3 -m venv .venv
682- source .venv/bin/activate
683- echo PATH=$PATH >> $GITHUB_ENV
684- pip install "conan<2.0.0" "requests==2.31.0" "numpy==1.26.4"
685- - name : Prepare data
686- run : |
687- if [ "$RUN_BIG_BENCHMARK" = "true" ]; then
688- rm -rf ~/data.osm.pbf
689- wget http://download.geofabrik.de/europe/poland-latest.osm.pbf -O ~/data.osm.pbf --quiet
690- gunzip -c ./pr/test/data/poland_gps_traces.csv.gz > ~/gps_traces.csv
691- else
692- if [ ! -f "~/data.osm.pbf" ]; then
693- wget http://download.geofabrik.de/europe/germany/berlin-latest.osm.pbf -O ~/data.osm.pbf
694- else
695- echo "Using cached data.osm.pbf"
696- fi
697- gunzip -c ./pr/test/data/berlin_gps_traces.csv.gz > ~/gps_traces.csv
698- fi
699- - name : Prepare environment
700- run : |
701- echo "CCACHE_DIR=$HOME/.ccache" >> $GITHUB_ENV
702- mkdir -p $HOME/.ccache
703- ccache --zero-stats
704- ccache --max-size=256M
705- - name : Checkout Base Branch
706- uses : actions/checkout@v4
707- with :
708- ref : ${{ github.event.pull_request.base.ref }}
709- path : base
710- - name : Build Base Branch
711- run : |
712- cd base
713- npm ci --ignore-scripts
714- cd ..
715- mkdir base/build
716- cd base/build
717- cmake -DENABLE_CONAN=ON -DCMAKE_BUILD_TYPE=Release -DENABLE_NODE_BINDINGS=ON ..
718- make -j$(nproc)
719- make -j$(nproc) benchmarks
720- cd ..
721- make -C test/data
722- - name : Build PR Branch
723- run : |
724- cd pr
725- npm ci --ignore-scripts
726- cd ..
727- mkdir -p pr/build
728- cd pr/build
729- cmake -DENABLE_CONAN=ON -DCMAKE_BUILD_TYPE=Release -DENABLE_NODE_BINDINGS=ON ..
730- make -j$(nproc)
731- make -j$(nproc) benchmarks
732- cd ..
733- make -C test/data
734- # we run benchmarks in tmpfs to avoid impact of disk IO
735- - name : Create folder for tmpfs
736- run : |
737- # if by any chance it was mounted before(e.g. due to previous job failed), unmount it
738- sudo umount ~/benchmarks | true
739- rm -rf ~/benchmarks
740- mkdir -p ~/benchmarks
741- # see https://llvm.org/docs/Benchmarking.html
742- - name : Run PR Benchmarks
743- run : |
744- sudo cset shield -c 2-3 -k on
745- sudo mount -t tmpfs -o size=4g none ~/benchmarks
746- cp -rf pr/build ~/benchmarks/build
747- cp -rf pr/lib ~/benchmarks/lib
748- mkdir -p ~/benchmarks/test
749- cp -rf pr/test/data ~/benchmarks/test/data
750- cp -rf pr/profiles ~/benchmarks/profiles
751-
752- sudo cset shield --exec -- ./pr/scripts/ci/run_benchmarks.sh -f ~/benchmarks -r $(pwd)/pr_results -s $(pwd)/pr -b ~/benchmarks/build -o ~/data.osm.pbf -g ~/gps_traces.csv
753- sudo umount ~/benchmarks
754- sudo cset shield --reset
755- - name : Run Base Benchmarks
756- run : |
757- sudo cset shield -c 2-3 -k on
758- sudo mount -t tmpfs -o size=4g none ~/benchmarks
759- cp -rf base/build ~/benchmarks/build
760- cp -rf base/lib ~/benchmarks/lib
761- mkdir -p ~/benchmarks/test
762- cp -rf base/test/data ~/benchmarks/test/data
763- cp -rf base/profiles ~/benchmarks/profiles
764-
765- # TODO: remove it when base branch will have this file at needed location
766- if [ ! -f ~/benchmarks/test/data/portugal_to_korea.json ]; then
767- cp base/src/benchmarks/portugal_to_korea.json ~/benchmarks/test/data/portugal_to_korea.json
768- fi
769- # we intentionally use scripts from PR branch to be able to update them and see results in the same PR
770- sudo cset shield --exec -- cset shield --exec -- ./pr/scripts/ci/run_benchmarks.sh -f ~/benchmarks -r $(pwd)/base_results -s $(pwd)/pr -b ~/benchmarks/build -o ~/data.osm.pbf -g ~/gps_traces.csv
771- sudo umount ~/benchmarks
772- sudo cset shield --reset
773- - name : Post Benchmark Results
774- run : |
775- python3 pr/scripts/ci/post_benchmark_results.py base_results pr_results
776- - name : Show CCache statistics
777- run : |
778- ccache -p
779- ccache -s
780-
781644 ci-complete :
782- runs-on : ubuntu-22.04
783- needs : [build-test-publish, docker-image-matrix, windows-release-node, benchmarks ]
645+ runs-on : ubuntu-latest
646+ needs : [build-test-publish, docker-image-matrix, windows-release-node]
784647 steps :
785648 - run : echo "CI complete"
786649
0 commit comments