@@ -336,6 +336,64 @@ jobs:
336336 cd cpp/examples/minimal_build
337337 ../minimal_build.build/arrow-example
338338
339+ odbc-linux :
340+ needs : check-labels
341+ name : ODBC Linux
342+ runs-on : ubuntu-latest
343+ if : >-
344+ needs.check-labels.outputs.force == 'true' ||
345+ contains(fromJSON(needs.check-labels.outputs.ci-extra-labels || '[]'), 'CI: Extra') ||
346+ contains(fromJSON(needs.check-labels.outputs.ci-extra-labels || '[]'), 'CI: Extra: C++')
347+ timeout-minutes : 75
348+ strategy :
349+ fail-fast : false
350+ env :
351+ ARCH : amd64
352+ ARCHERY_DEBUG : 1
353+ ARROW_ENABLE_TIMING_TESTS : OFF
354+ CLANG_TOOLS : 18
355+ DOCKER_VOLUME_PREFIX : " .docker/"
356+ LLVM : 18
357+ UBUNTU : 24.04
358+ steps :
359+ - name : Checkout Arrow
360+ uses : actions/checkout@v6
361+ with :
362+ fetch-depth : 0
363+ submodules : recursive
364+ - name : Cache Docker Volumes
365+ uses : actions/cache@v5
366+ with :
367+ path : .docker
368+ key : ubuntu-cpp-odbc-${{ hashFiles('cpp/**') }}
369+ restore-keys : ubuntu-cpp-odbc-
370+ - name : Setup Python on hosted runner
371+ uses : actions/setup-python@v6
372+ with :
373+ python-version : 3
374+ - name : Setup Archery
375+ run : python3 -m pip install -e dev/archery[docker]
376+ - name : Execute Docker Build
377+ env :
378+ ARCHERY_DOCKER_USER : ${{ secrets.DOCKERHUB_USER }}
379+ ARCHERY_DOCKER_PASSWORD : ${{ secrets.DOCKERHUB_TOKEN }}
380+ run : |
381+ # GH-40558: reduce ASLR to avoid ASAN/LSAN crashes
382+ sudo sysctl -w vm.mmap_rnd_bits=28
383+ source ci/scripts/util_enable_core_dumps.sh
384+ archery docker run ubuntu-cpp-odbc
385+ - name : Docker Push
386+ if : >-
387+ success() &&
388+ github.event_name == 'push' &&
389+ github.repository == 'apache/arrow' &&
390+ github.ref_name == 'main'
391+ env :
392+ ARCHERY_DOCKER_USER : ${{ secrets.DOCKERHUB_USER }}
393+ ARCHERY_DOCKER_PASSWORD : ${{ secrets.DOCKERHUB_TOKEN }}
394+ continue-on-error : true
395+ run : archery docker push ubuntu-cpp-odbc
396+
339397 odbc-macos :
340398 needs : check-labels
341399 name : ODBC ${{ matrix.build-type }} ${{ matrix.architecture }} macOS ${{ matrix.macos-version }}
@@ -435,7 +493,7 @@ jobs:
435493 "$(pwd)/build/cpp/${{ matrix.build-type }}/libarrow_flight_sql_odbc.dylib"
436494 - name : Register Flight SQL ODBC Driver
437495 run : |
438- sudo cpp/src/arrow/flight/sql/odbc/install/mac /install_odbc.sh $(pwd)/build/cpp/${{ matrix.build-type }}/libarrow_flight_sql_odbc.dylib
496+ sudo cpp/src/arrow/flight/sql/odbc/install/unix /install_odbc.sh $(pwd)/build/cpp/${{ matrix.build-type }}/libarrow_flight_sql_odbc.dylib
439497 - name : Test
440498 shell : bash
441499 run : |
@@ -698,6 +756,7 @@ jobs:
698756 - jni-linux
699757 - jni-macos
700758 - msvc-arm64
759+ - odbc-linux
701760 - odbc-macos
702761 - odbc-msvc
703762 - odbc-nightly
0 commit comments