From c8762de8d349c0d5199d2fa060f2a7cd2c3b9de4 Mon Sep 17 00:00:00 2001 From: Dennis Date: Mon, 6 May 2024 18:05:35 +0200 Subject: [PATCH] Upgrade environment and compilers for macOS build - build natively on ARM & X64 - remove special case handling for cross compilation - use latest environment --- .github/workflows/osrm-backend.yml | 48 ++++++++---------------------- 1 file changed, 12 insertions(+), 36 deletions(-) diff --git a/.github/workflows/osrm-backend.yml b/.github/workflows/osrm-backend.yml index f338e05fb..e11ff0816 100644 --- a/.github/workflows/osrm-backend.yml +++ b/.github/workflows/osrm-backend.yml @@ -26,7 +26,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" @@ -301,7 +300,7 @@ jobs: build_node_package: true continue-on-error: true node: 20 - runs-on: macos-11 + runs-on: macos-latest-large BUILD_TYPE: Release CCOMPILER: clang CXXCOMPILER: clang++ @@ -313,14 +312,13 @@ jobs: build_node_package: true continue-on-error: true node: 20 - runs-on: macos-11 + runs-on: macos-latest-large 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 }} @@ -340,7 +338,6 @@ 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 }} @@ -474,17 +471,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} \ -DENABLE_ASSERTIONS=${ENABLE_ASSERTIONS:-OFF} \ @@ -495,12 +481,11 @@ 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 @@ -512,14 +497,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 @@ -548,32 +533,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 @@ -601,15 +586,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