diff --git a/.github/workflows/osrm-backend.yml b/.github/workflows/osrm-backend.yml index 260d6a53e..461034bba 100644 --- a/.github/workflows/osrm-backend.yml +++ b/.github/workflows/osrm-backend.yml @@ -30,7 +30,6 @@ jobs: continue-on-error: false env: BUILD_TYPE: Release - ENABLE_APPLE_SILICON: "OFF" steps: - uses: actions/checkout@v3 - run: pip install "conan<2.0.0" @@ -335,7 +334,7 @@ jobs: build_node_package: true continue-on-error: true node: 20 - runs-on: macos-11 + runs-on: macos-13 # x86_64 BUILD_TYPE: Release CCOMPILER: clang CXXCOMPILER: clang++ @@ -347,14 +346,13 @@ jobs: build_node_package: true continue-on-error: true node: 20 - runs-on: macos-11 + runs-on: macos-14 # arm64 BUILD_TYPE: Release CCOMPILER: clang CXXCOMPILER: clang++ CUCUMBER_TIMEOUT: 60000 ENABLE_ASSERTIONS: ON ENABLE_CONAN: ON - ENABLE_APPLE_SILICON: ON name: ${{ matrix.name}} continue-on-error: ${{ matrix.continue-on-error }} @@ -374,13 +372,13 @@ jobs: ENABLE_CONAN: ${{ matrix.ENABLE_CONAN }} ENABLE_SANITIZER: ${{ matrix.ENABLE_SANITIZER }} NODE_PACKAGE_TESTS_ONLY: ${{ matrix.NODE_PACKAGE_TESTS_ONLY }} - ENABLE_APPLE_SILICON: ${{ matrix.ENABLE_APPLE_SILICON }} TARGET_ARCH: ${{ matrix.TARGET_ARCH }} OSRM_CONNECTION_RETRIES: ${{ matrix.OSRM_CONNECTION_RETRIES }} OSRM_CONNECTION_EXP_BACKOFF_COEF: ${{ matrix.OSRM_CONNECTION_EXP_BACKOFF_COEF }} steps: - uses: actions/checkout@v3 - + - name: Build machine architecture + run: uname -m - name: Use Node.js uses: actions/setup-node@v3 with: @@ -403,9 +401,9 @@ jobs: uses: actions/cache@v3 with: path: ~/.conan - key: v7-conan-${{ matrix.name }}-${{ github.sha }} + key: v9-conan-${{ matrix.name }}-${{ github.sha }} restore-keys: | - v7-conan-${{ matrix.name }}- + v9-conan-${{ matrix.name }}- - name: Enable test cache uses: actions/cache@v3 with: @@ -434,7 +432,7 @@ jobs: - name: Install dev dependencies run: | - python3 -m pip install "conan<2.0.0" + python3 -m pip install "conan<2.0.0" || python3 -m pip install "conan<2.0.0" --break-system-packages # workaround for issue that GitHub Actions seems to not adding it to PATH after https://github.com/actions/runner-images/pull/6499 # and that's why CI cannot find conan executable installed above @@ -497,16 +495,6 @@ jobs: echo "Using ${JOBS} jobs" pushd ${OSRM_BUILD_DIR} - # handle Apple Silicon cross compilation - if [[ "${ENABLE_APPLE_SILICON}" == "ON" ]]; then - ARCH=arm64 - TARGET="${ARCH}-apple-darwin" - CFLAGS="$CFLAGS --target=$TARGET" - CXXFLAGS="$CXXFLAGS --target=$TARGET" - APPLE_SILICON_FLAGS=(-DCMAKE_C_COMPILER_TARGET="$TARGET" -DCMAKE_CXX_COMPILER_TARGET="$TARGET" -DCMAKE_SYSTEM_PROCESSOR="${ARCH}" -DCMAKE_SYSTEM_NAME="Darwin" -DCMAKE_C_FLAGS="$CFLAGS" -DCMAKE_CXX_FLAGS="$CXXFLAGS") - else - APPLE_SILICON_FLAGS=() - fi cmake .. -DCMAKE_BUILD_TYPE=${BUILD_TYPE} \ -DENABLE_CONAN=${ENABLE_CONAN:-OFF} \ @@ -518,12 +506,10 @@ jobs: -DENABLE_SANITIZER=${ENABLE_SANITIZER:-OFF} \ -DBUILD_TOOLS=${BUILD_TOOLS:-OFF} \ -DENABLE_CCACHE=ON \ - -DCMAKE_INSTALL_PREFIX=${OSRM_INSTALL_DIR} \ - "${APPLE_SILICON_FLAGS[@]}" - + -DCMAKE_INSTALL_PREFIX=${OSRM_INSTALL_DIR} make --jobs=${JOBS} - if [[ "${NODE_PACKAGE_TESTS_ONLY}" != "ON" && "${ENABLE_APPLE_SILICON}" != "ON" ]]; then + if [[ "${NODE_PACKAGE_TESTS_ONLY}" != "ON" ]]; then make tests --jobs=${JOBS} make benchmarks --jobs=${JOBS} ccache -s @@ -535,14 +521,14 @@ jobs: fi popd - name: Build example - if: ${{ matrix.NODE_PACKAGE_TESTS_ONLY != 'ON' && matrix.ENABLE_APPLE_SILICON != 'ON' }} + if: ${{ matrix.NODE_PACKAGE_TESTS_ONLY != 'ON' }} run: | mkdir example/build && pushd example/build cmake .. -DCMAKE_BUILD_TYPE=${BUILD_TYPE} make --jobs=${JOBS} popd - name: Run all tests - if: ${{ matrix.NODE_PACKAGE_TESTS_ONLY != 'ON' && matrix.ENABLE_APPLE_SILICON != 'ON' }} + if: ${{ matrix.NODE_PACKAGE_TESTS_ONLY != 'ON' }} run: | make -C test/data benchmark @@ -571,32 +557,32 @@ jobs: popd - name: Use Node 18 - if: ${{ matrix.NODE_PACKAGE_TESTS_ONLY == 'ON' && matrix.ENABLE_APPLE_SILICON != 'ON' }} + if: ${{ matrix.NODE_PACKAGE_TESTS_ONLY == 'ON' }} uses: actions/setup-node@v3 with: node-version: 18 - name: Run Node package tests on Node 18 - if: ${{ matrix.NODE_PACKAGE_TESTS_ONLY == 'ON' && matrix.ENABLE_APPLE_SILICON != 'ON' }} + if: ${{ matrix.NODE_PACKAGE_TESTS_ONLY == 'ON' }} run: | node --version npm run nodejs-tests - name: Use Node 20 - if: ${{ matrix.NODE_PACKAGE_TESTS_ONLY == 'ON' && matrix.ENABLE_APPLE_SILICON != 'ON' }} + if: ${{ matrix.NODE_PACKAGE_TESTS_ONLY == 'ON' }} uses: actions/setup-node@v3 with: node-version: 20 - name: Run Node package tests on Node 20 - if: ${{ matrix.NODE_PACKAGE_TESTS_ONLY == 'ON' && matrix.ENABLE_APPLE_SILICON != 'ON' }} + if: ${{ matrix.NODE_PACKAGE_TESTS_ONLY == 'ON' }} run: | node --version npm run nodejs-tests - name: Use Node latest - if: ${{ matrix.NODE_PACKAGE_TESTS_ONLY == 'ON' && matrix.ENABLE_APPLE_SILICON != 'ON' }} + if: ${{ matrix.NODE_PACKAGE_TESTS_ONLY == 'ON' }} uses: actions/setup-node@v3 with: node-version: latest - name: Run Node package tests on Node-latest - if: ${{ matrix.NODE_PACKAGE_TESTS_ONLY == 'ON' && matrix.ENABLE_APPLE_SILICON != 'ON' }} + if: ${{ matrix.NODE_PACKAGE_TESTS_ONLY == 'ON' }} run: | node --version npm run nodejs-tests @@ -624,15 +610,6 @@ jobs: # name: codecov-osrm-backend # fail_ci_if_error: true # verbose: true - - name: Check Apple Silicon binary - if: ${{ matrix.ENABLE_APPLE_SILICON == 'ON' }} - run: | - ARCH=$(file ./lib/binding/node_osrm.node | awk '{printf $NF}') - if [[ "$ARCH" != "arm64" ]]; then - file ./lib/binding/node_osrm.node - >&2 echo "Wrong architecture!" - exit 1 - fi - name: Build Node package if: ${{ matrix.build_node_package }} run: ./scripts/ci/node_package.sh diff --git a/CHANGELOG.md b/CHANGELOG.md index d462fc560..7f0fa3949 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,7 @@ - NodeJS: - CHANGED: Use node-api instead of NAN. [#6452](https://github.com/Project-OSRM/osrm-backend/pull/6452) - Misc: + - CHANGED: Update Conan Boost version to 1.85.0. [#6868](https://github.com/Project-OSRM/osrm-backend/pull/6868) - FIXED: Fix an error in a RouteParameters AnnotationsType operator overload. [#6646](https://github.com/Project-OSRM/osrm-backend/pull/6646) - ADDED: Add support for "unlimited" to be passed as a value for the default-radius and max-matching-radius flags. [#6599](https://github.com/Project-OSRM/osrm-backend/pull/6599) - CHANGED: Allow -1.0 as unlimited for default_radius value. [#6599](https://github.com/Project-OSRM/osrm-backend/pull/6599) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7d50bd443..1a87e2833 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -330,7 +330,7 @@ if(ENABLE_CONAN) conan_check(REQUIRED) - set(CONAN_BOOST_VERSION "1.79.0@#96e4902111a2e343a8ba0aa95391bb58") + set(CONAN_BOOST_VERSION "1.85.0@#14265ec82b25d91305bbb3b30d3357f8") set(CONAN_BZIP2_VERSION "1.0.8@#d1b2d5816f25865acf978501dff1f897") set(CONAN_EXPAT_VERSION "2.2.10@#916908d4a570ad839edd25322c3268cd") set(CONAN_LUA_VERSION "5.4.4@#3ec62efc37cd0a5d80b9e5cb35277360") diff --git a/scripts/ci/node_package.sh b/scripts/ci/node_package.sh index 8df7c50e0..19f6bbf4a 100755 --- a/scripts/ci/node_package.sh +++ b/scripts/ci/node_package.sh @@ -12,11 +12,6 @@ if [[ ${BUILD_TYPE} == "Debug" ]]; then NPM_FLAGS='--debug' fi -# append --target_arch in order to handle cross-compilation for Apple Silicon -if [[ "$ENABLE_APPLE_SILICON" == "ON" ]]; then - NPM_FLAGS="${NPM_FLAGS} --target_arch=arm64" -fi - echo "dumping binary meta..." ./node_modules/.bin/node-pre-gyp reveal $NPM_FLAGS