This is an automated email from the ASF dual-hosted git repository.

paleolimbot pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-nanoarrow.git


The following commit(s) were added to refs/heads/main by this push:
     new 938fdf68 fix(ci): Fix runner specification for c-device (#760)
938fdf68 is described below

commit 938fdf680fb2951f3a9d7adf230ea3b4df1828cc
Author: Dewey Dunnington <[email protected]>
AuthorDate: Fri Jun 6 11:11:06 2025 -0500

    fix(ci): Fix runner specification for c-device (#760)
    
    This is currently failing with:
    
    ```
    Error when evaluating 'runs-on' for job 'test-c-device'. 
.github/workflows/build-and-test-device.yaml (Line: 40, Col: 14): Unexpected 
value ''
    ```
    
    ...because we'd been relying on the "empty string means ubuntu-latest"
    that was removed from GitHub actions at some point. There are a few
    updates here as well to fix the device build since that job hadn't been
    running for some time.
---
 .github/workflows/build-and-test-device.yaml | 27 ++++++++++++++-------------
 CMakeLists.txt                               | 11 +++++++----
 2 files changed, 21 insertions(+), 17 deletions(-)

diff --git a/.github/workflows/build-and-test-device.yaml 
b/.github/workflows/build-and-test-device.yaml
index 42b0a001..59102830 100644
--- a/.github/workflows/build-and-test-device.yaml
+++ b/.github/workflows/build-and-test-device.yaml
@@ -48,7 +48,7 @@ jobs:
           - {runner: ubuntu-latest, label: default-build}
           - {runner: ubuntu-latest, label: namespaced-build, cmake_args: 
"-DNANOARROW_NAMESPACE=SomeUserNamespace"}
           - {runner: ubuntu-latest, label: bundled-build, cmake_args: 
"-DNANOARROW_DEVICE_BUNDLE=ON"}
-          - {label: shared-test-linkage, cmake_args: 
"-DNANOARROW_TEST_LINKAGE_SHARED=ON"}
+          - {runner: ubuntu-latest, label: shared-test-linkage, cmake_args: 
"-DNANOARROW_TEST_LINKAGE_SHARED=ON"}
           - {runner: macOS-latest, label: with-metal, cmake_args: 
"-DNANOARROW_DEVICE_WITH_METAL=ON"}
           - {runner: ["self-hosted", "cuda"], label: with-cuda, cmake_args: 
"-DNANOARROW_DEVICE_WITH_CUDA=ON"}
 
@@ -60,6 +60,13 @@ jobs:
         run: |
           sudo apt-get update && sudo apt-get install -y valgrind
 
+      - name: Set up Python
+        if: matrix.config.label == 'with-cuda'
+        uses: actions/setup-python@v5
+        with:
+          python-version: "3.x"
+          cache: 'pip'
+
       # The self-hosted runner for CUDA needs a number of packages installed 
that
       # are already installed on the GitHub runner
       - name: Install build dependencies
@@ -67,6 +74,10 @@ jobs:
         run: |
           sudo apt-get update && \
             sudo apt-get install -y cmake build-essential cuda-toolkit tzdata
+
+          # Install newer cmake for building Arrow C++
+          pip install cmake
+
           # Debug install location of cuda toolkit
           ldconfig -p | grep libcuda
 
@@ -76,16 +87,13 @@ jobs:
         with:
           path: arrow
           # Bump the number at the end of this line to force a new Arrow C++ 
build
-          # The self-hosted runner needs its own Arrow build since it is 
running
-          # a much older linux distribution. When the Arrow C++ requirement 
for tests is
-          # dropped, we don't have to use this at all as part of the CI 
configuration.
-          key: arrow-device-${{ runner.os }}-${{ runner.arch }}-${{ 
matrix.config.label }}-2
+          key: arrow-device-${{ runner.os }}-${{ runner.arch }}-${{ 
matrix.config.label }}-3
 
       - name: Build Arrow C++
         if: steps.cache-arrow-build.outputs.cache-hit != 'true'
         shell: bash
         run: |
-          ci/scripts/build-arrow-cpp-minimal.sh 18.0.0 arrow
+          ci/scripts/build-arrow-cpp-minimal.sh 20.0.0 arrow
 
       - name: Build
         run: |
@@ -137,13 +145,6 @@ jobs:
           name: nanoarrow-device-memcheck
           path: build/Testing/Temporary/MemoryChecker.*.log
 
-      - name: Set up Python
-        if: matrix.config.label == 'with-cuda'
-        uses: actions/setup-python@v5
-        with:
-          python-version: "3.12"
-          cache: 'pip'
-
       - name: Build Python bindings with CUDA
         if: matrix.config.label == 'with-cuda'
         env:
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2f295b92..d008690f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -744,10 +744,13 @@ if(NANOARROW_BUILD_TESTS)
     if(NANOARROW_DEVICE_WITH_METAL)
       add_executable(nanoarrow_device_metal_test 
src/nanoarrow/device/metal_test.cc)
       target_link_libraries(nanoarrow_device_metal_test
-                            nanoarrow_device
-                            nanoarrow
+                            ${NANOARROW_TEST_DEVICE_LIB}
+                            ${NANOARROW_TEST_LIB}
                             gtest_main
                             nanoarrow_coverage_config)
+      target_include_directories(nanoarrow_device_metal_test
+                                 PRIVATE ${NANOARROW_DEVICE_INCLUDE_METAL})
+
       if(Arrow_FOUND)
         target_compile_definitions(nanoarrow_device_metal_test
                                    PRIVATE -DNANOARROW_BUILD_TESTS_WITH_ARROW)
@@ -758,8 +761,8 @@ if(NANOARROW_BUILD_TESTS)
     if(NANOARROW_DEVICE_WITH_CUDA)
       add_executable(nanoarrow_device_cuda_test 
src/nanoarrow/device/cuda_test.cc)
       target_link_libraries(nanoarrow_device_cuda_test
-                            nanoarrow_device
-                            nanoarrow
+                            ${NANOARROW_TEST_DEVICE_LIB}
+                            ${NANOARROW_TEST_LIB}
                             CUDA::cuda_driver
                             gtest_main
                             nanoarrow_coverage_config)

Reply via email to