@@ -193,7 +193,7 @@ jobs:
193
193
194
194
- name : clang-18-release
195
195
continue-on-error : false
196
- node : 18
196
+ node : 20
197
197
runs-on : ubuntu-24.04
198
198
BUILD_TOOLS : ON
199
199
BUILD_TYPE : Release
@@ -430,30 +430,12 @@ jobs:
430
430
- name : Give tar root ownership
431
431
if : runner.os == 'Linux' && matrix.ENABLE_CONAN != 'ON'
432
432
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 }}
444
433
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_FLAVOR="${BOOST_VERSION}-b2-nodocs"
450
- wget -q https://github.com/boostorg/boost/releases/download/boost-${BOOST_VERSION}/boost-${BOOST_VERSION_FLAVOR}.tar.gz
451
- tar xzf boost-${BOOST_VERSION_FLAVOR}.tar.gz
452
- cd boost-${BOOST_VERSION}
453
- sudo ./bootstrap.sh
454
- sudo ./b2 install
455
- cd ..
456
- sudo rm -rf boost-${BOOST_VERSION}*
434
+ - name : Install boost
435
+ uses : MarkusJx/install-boost@v2
436
+ id : install-boost
437
+ with :
438
+ boost_version : 1.85.0
457
439
458
440
- name : Install dev dependencies
459
441
run : |
@@ -557,6 +539,8 @@ jobs:
557
539
echo "PKG_CONFIG_PATH=${OSRM_INSTALL_DIR}/lib/pkgconfig" >> $GITHUB_ENV
558
540
fi
559
541
popd
542
+ env :
543
+ Boost_ROOT : ${{ steps.install-boost.outputs.BOOST_ROOT }}
560
544
- name : Build example
561
545
if : ${{ matrix.NODE_PACKAGE_TESTS_ONLY != 'ON' }}
562
546
run : |
@@ -657,130 +641,9 @@ jobs:
657
641
ccache -p
658
642
ccache -s
659
643
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
-
781
644
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]
784
647
steps :
785
648
- run : echo "CI complete"
786
649
0 commit comments