Skip to content

Commit ab92f0f

Browse files
alinaliBQjusting-bq
andcommitted
Enable macOS ODBC CI build
Co-Authored-By: alinalibq <[email protected]> Co-Authored-By: justing-bq <[email protected]>
1 parent 9bb0603 commit ab92f0f

File tree

1 file changed

+70
-3
lines changed

1 file changed

+70
-3
lines changed

.github/workflows/cpp_extra.yml

Lines changed: 70 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -330,9 +330,75 @@ jobs:
330330
cd cpp/examples/minimal_build
331331
../minimal_build.build/arrow-example
332332
333-
odbc:
333+
odbc-macos:
334334
needs: check-labels
335-
name: ODBC
335+
name: ODBC ${{ matrix.architecture }} macOS ${{ matrix.macos-version }}
336+
runs-on: macos-${{ matrix.macos-version }}
337+
if: >-
338+
needs.check-labels.outputs.force == 'true' ||
339+
contains(fromJSON(needs.check-labels.outputs.ci-extra-labels || '[]'), 'CI: Extra') ||
340+
contains(fromJSON(needs.check-labels.outputs.ci-extra-labels || '[]'), 'CI: Extra: C++')
341+
timeout-minutes: 75
342+
strategy:
343+
fail-fast: false
344+
matrix:
345+
include:
346+
- architecture: AMD64
347+
macos-version: "15-intel"
348+
- architecture: ARM64
349+
macos-version: "14"
350+
env:
351+
ARROW_BUILD_TESTS: ON
352+
ARROW_FLIGHT_SQL_ODBC: ON
353+
ARROW_HOME: /tmp/local
354+
steps:
355+
- name: Checkout Arrow
356+
uses: actions/[email protected]
357+
with:
358+
fetch-depth: 0
359+
submodules: recursive
360+
- name: Install Dependencies
361+
run: |
362+
brew bundle --file=cpp/Brewfile
363+
export LIBIODBC_DIR="$(brew --cellar libiodbc)/$(brew list --versions libiodbc | awk '{print $2}')"
364+
echo ODBC_INCLUDE_DIR="$LIBIODBC_DIR/include" >> $GITHUB_ENV
365+
echo ODBC_LIB_DIR="$LIBIODBC_DIR/lib" >> $GITHUB_ENV
366+
- name: Setup ccache
367+
run: |
368+
ci/scripts/ccache_setup.sh
369+
- name: ccache info
370+
id: ccache-info
371+
run: |
372+
echo "cache-dir=$(ccache --get-config cache_dir)" >> $GITHUB_OUTPUT
373+
- name: Cache ccache
374+
uses: actions/cache@v4
375+
with:
376+
path: ${{ steps.ccache-info.outputs.cache-dir }}
377+
key: cpp-ccache-macos-${{ matrix.macos-version }}-${{ hashFiles('cpp/**') }}
378+
restore-keys: cpp-ccache-macos-${{ matrix.macos-version }}-
379+
- name: Build
380+
run: |
381+
# Homebrew uses /usr/local as prefix. So packages
382+
# installed by Homebrew also use /usr/local/include. We
383+
# want to include headers for packages installed by
384+
# Homebrew as system headers to ignore warnings in them.
385+
# But "-isystem /usr/local/include" isn't used by CMake
386+
# because /usr/local/include is marked as the default
387+
# include path. So we disable -Werror to avoid build error
388+
# by warnings from packages installed by Homebrew.
389+
export BUILD_WARNING_LEVEL=PRODUCTION
390+
ci/scripts/cpp_build.sh $(pwd) $(pwd)/build
391+
- name: Test
392+
shell: bash
393+
run: |
394+
sudo sysctl -w kern.coredump=1
395+
sudo sysctl -w kern.corefile=/tmp/core.%N.%P
396+
ulimit -c unlimited # must enable within the same shell
397+
ci/scripts/cpp_test.sh $(pwd) $(pwd)/build
398+
399+
odbc-msvc:
400+
needs: check-labels
401+
name: ODBC Windows
336402
runs-on: windows-2022
337403
if: >-
338404
needs.check-labels.outputs.force == 'true' ||
@@ -443,6 +509,7 @@ jobs:
443509
- jni-linux
444510
- jni-macos
445511
- msvc-arm64
446-
- odbc
512+
- odbc-macos
513+
- odbc-msvc
447514
uses: ./.github/workflows/report_ci.yml
448515
secrets: inherit

0 commit comments

Comments
 (0)