Skip to content

Commit 6e847bd

Browse files
committed
Merge branch 'main' into pr-48322
2 parents 5521a6b + 962d051 commit 6e847bd

231 files changed

Lines changed: 5445 additions & 1541 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.asf.yaml

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,10 @@ github:
3232
main: {}
3333

3434
collaborators:
35-
- anjakefala
35+
- alinaliBQ
36+
- EnricoMi
3637
- hiroyuki-sato
37-
- jbonofre
38-
- js8544
39-
- vibhatha
40-
- ZhangHuiGui
38+
- HyukjinKwon
4139

4240
notifications:
4341
commits: commits@arrow.apache.org

.github/workflows/check_labels.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,10 @@ on:
3232
description: "Whether to force running the jobs"
3333
value: ${{ jobs.check-labels.outputs.force }}
3434

35+
permissions:
36+
contents: read
37+
pull-requests: read
38+
3539
jobs:
3640
check-labels:
3741
name: Check labels

.github/workflows/cpp_extra.yml

Lines changed: 30 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ on:
2626
- '.dockerignore'
2727
- '.github/workflows/check_labels.yml'
2828
- '.github/workflows/cpp_extra.yml'
29+
- '.github/workflows/cpp_windows.yml'
2930
- '.github/workflows/report_ci.yml'
3031
- 'ci/conda_env_*'
3132
- 'ci/docker/**'
@@ -38,6 +39,7 @@ on:
3839
- 'ci/scripts/util_*'
3940
- 'cpp/**'
4041
- 'compose.yaml'
42+
- 'dev/archery/archery/**'
4143
- 'format/Flight.proto'
4244
- 'testing'
4345
tags:
@@ -47,6 +49,7 @@ on:
4749
- '.dockerignore'
4850
- '.github/workflows/check_labels.yml'
4951
- '.github/workflows/cpp_extra.yml'
52+
- '.github/workflows/cpp_windows.yml'
5053
- '.github/workflows/report_ci.yml'
5154
- 'ci/conda_env_*'
5255
- 'ci/docker/**'
@@ -59,6 +62,7 @@ on:
5962
- 'ci/scripts/util_*'
6063
- 'cpp/**'
6164
- 'compose.yaml'
65+
- 'dev/archery/archery/**'
6266
- 'format/Flight.proto'
6367
- 'testing'
6468
types:
@@ -75,7 +79,9 @@ concurrency:
7579
cancel-in-progress: true
7680

7781
permissions:
82+
actions: read
7883
contents: read
84+
pull-requests: read
7985

8086
jobs:
8187
check-labels:
@@ -339,17 +345,20 @@ jobs:
339345
contains(fromJSON(needs.check-labels.outputs.ci-extra-labels || '[]'), 'CI: Extra') ||
340346
contains(fromJSON(needs.check-labels.outputs.ci-extra-labels || '[]'), 'CI: Extra: C++')
341347
timeout-minutes: 240
348+
permissions:
349+
packages: write
342350
env:
343351
ARROW_BUILD_SHARED: ON
344352
ARROW_BUILD_STATIC: OFF
345353
ARROW_BUILD_TESTS: ON
346354
ARROW_BUILD_TYPE: release
347355
ARROW_DEPENDENCY_SOURCE: VCPKG
348356
ARROW_FLIGHT_SQL_ODBC: ON
349-
ARROW_SIMD_LEVEL: AVX2
357+
ARROW_FLIGHT_SQL_ODBC_INSTALLER: ON
358+
ARROW_HOME: /usr
350359
CMAKE_GENERATOR: Ninja
351360
CMAKE_INSTALL_PREFIX: /usr
352-
VCPKG_BINARY_SOURCES: 'clear;nuget,GitHub,readwrite'
361+
VCPKG_BINARY_SOURCES: 'clear;nugettimeout,600;nuget,GitHub,readwrite'
353362
VCPKG_DEFAULT_TRIPLET: x64-windows
354363
steps:
355364
- name: Disable Crash Dialogs
@@ -368,10 +377,6 @@ jobs:
368377
- name: Download Timezone Database
369378
shell: bash
370379
run: ci/scripts/download_tz_database.sh
371-
- name: Install cmake
372-
shell: bash
373-
run: |
374-
ci/scripts/install_cmake.sh 4.1.2 /usr
375380
- name: Install ccache
376381
shell: bash
377382
run: |
@@ -433,7 +438,25 @@ jobs:
433438
# GH-48269 TODO: Enable Flight & Flight SQL testing in MSVC CI
434439
# GH-48547 TODO: enable ODBC tests after GH-48270 and GH-48269 are resolved.
435440

436-
# GH-47787 TODO: Build ODBC installer
441+
- name: Install WiX Toolset
442+
shell: pwsh
443+
run: |
444+
Invoke-WebRequest -Uri https://github.com/wixtoolset/wix/releases/download/v6.0.0/wix-cli-x64.msi -OutFile wix-cli-x64.msi
445+
Start-Process -FilePath wix-cli-x64.msi -ArgumentList '/quiet', 'Include_freethreaded=1' -Wait
446+
echo "C:\Program Files\WiX Toolset v6.0\bin\" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
447+
- name: Build MSI ODBC installer
448+
shell: pwsh
449+
run: |
450+
# Verify WiX version
451+
wix --version
452+
cd build/cpp
453+
cpack
454+
- name: Upload the artifacts to the job
455+
uses: actions/upload-artifact@v6
456+
with:
457+
name: flight-sql-odbc-msi-installer
458+
path: build/cpp/Apache Arrow Flight SQL ODBC-*-win64.msi
459+
if-no-files-found: error
437460

438461
report-extra-cpp:
439462
if: github.event_name == 'schedule' && always()

.github/workflows/cpp_windows.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,9 @@ on:
3333
required: true
3434
type: string
3535

36+
permissions:
37+
contents: read
38+
3639
jobs:
3740
windows:
3841
runs-on: ${{ inputs.os }}

.github/workflows/cuda_extra.yml

Lines changed: 136 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
1+
# Licensed to the Apache Software Foundation (ASF) under one
2+
# or more contributor license agreements. See the NOTICE file
3+
# distributed with this work for additional information
4+
# regarding copyright ownership. The ASF licenses this file
5+
# to you under the Apache License, Version 2.0 (the
6+
# "License"); you may not use this file except in compliance
7+
# with the License. You may obtain a copy of the License at
8+
#
9+
# http://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# Unless required by applicable law or agreed to in writing,
12+
# software distributed under the License is distributed on an
13+
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14+
# KIND, either express or implied. See the License for the
15+
# specific language governing permissions and limitations
16+
# under the License.
17+
18+
name: CUDA Extra
19+
20+
on:
21+
push:
22+
tags:
23+
- '**'
24+
pull_request:
25+
types:
26+
- labeled
27+
- opened
28+
- reopened
29+
- synchronize
30+
schedule:
31+
- cron: |
32+
0 6 * * *
33+
34+
concurrency:
35+
group: ${{ github.repository }}-${{ github.head_ref || github.sha }}-${{ github.workflow }}
36+
cancel-in-progress: true
37+
38+
permissions:
39+
actions: read
40+
contents: read
41+
pull-requests: read
42+
43+
jobs:
44+
check-labels:
45+
if: github.event_name != 'schedule' || github.repository == 'apache/arrow'
46+
uses: ./.github/workflows/check_labels.yml
47+
secrets: inherit
48+
with:
49+
parent-workflow: cuda_extra
50+
51+
docker:
52+
needs: check-labels
53+
name: ${{ matrix.title }}
54+
runs-on: "runs-on=${{ github.run_id }}/family=g4dn.xlarge/image=ubuntu24-gpu-x64/spot=capacity-optimized"
55+
if: >-
56+
needs.check-labels.outputs.force == 'true' ||
57+
contains(fromJSON(needs.check-labels.outputs.ci-extra-labels || '[]'), 'CI: Extra') ||
58+
contains(fromJSON(needs.check-labels.outputs.ci-extra-labels || '[]'), 'CI: Extra: CUDA')
59+
timeout-minutes: 75
60+
strategy:
61+
fail-fast: false
62+
matrix:
63+
include:
64+
- cuda: 12.9.0
65+
ubuntu: 24.04
66+
image: ubuntu-cuda-cpp
67+
title: AMD64 Ubuntu 24 CUDA 12.9.0
68+
- cuda: 11.7.1
69+
ubuntu: 22.04
70+
image: ubuntu-cuda-cpp
71+
title: AMD64 Ubuntu 22 CUDA 11.7.1
72+
- cuda: 12.9.0
73+
ubuntu: 24.04
74+
image: ubuntu-cuda-python
75+
title: AMD64 Ubuntu 24 CUDA 12.9.0 Python
76+
- cuda: 11.7.1
77+
ubuntu: 22.04
78+
image: ubuntu-cuda-python
79+
title: AMD64 Ubuntu 22 CUDA 11.7.1 Python
80+
env:
81+
ARCHERY_DEBUG: 1
82+
ARROW_ENABLE_TIMING_TESTS: OFF
83+
DOCKER_VOLUME_PREFIX: ".docker/"
84+
steps:
85+
- name: Checkout Arrow
86+
uses: actions/checkout@v6
87+
with:
88+
fetch-depth: 0
89+
submodules: recursive
90+
- name: Cache Docker Volumes
91+
uses: actions/cache@v5
92+
with:
93+
path: .docker
94+
key: extra-${{ matrix.image }}-${{ hashFiles('cpp/**') }}
95+
restore-keys: extra-${{ matrix.image }}-
96+
- name: Setup Python
97+
uses: actions/setup-python@v6
98+
with:
99+
python-version: 3
100+
- name: Setup Archery
101+
run: python3 -m pip install -e dev/archery[docker]
102+
- name: Display NVIDIA SMI details
103+
run: |
104+
nvidia-smi
105+
nvidia-smi -L
106+
nvidia-smi -q -d Memory
107+
- name: Execute Docker Build
108+
continue-on-error: ${{ matrix.continue-on-error || false }}
109+
env:
110+
ARCHERY_DOCKER_USER: ${{ secrets.DOCKERHUB_USER }}
111+
ARCHERY_DOCKER_PASSWORD: ${{ secrets.DOCKERHUB_TOKEN }}
112+
CUDA: ${{ matrix.cuda }}
113+
UBUNTU: ${{ matrix.ubuntu }}
114+
run: |
115+
# GH-40558: reduce ASLR to avoid ASAN/LSAN crashes
116+
sudo sysctl -w vm.mmap_rnd_bits=28
117+
source ci/scripts/util_enable_core_dumps.sh
118+
archery docker run ${{ matrix.run-options || '' }} ${{ matrix.image }}
119+
- name: Docker Push
120+
if: >-
121+
success() &&
122+
github.event_name == 'push' &&
123+
github.repository == 'apache/arrow' &&
124+
github.ref_name == 'main'
125+
env:
126+
ARCHERY_DOCKER_USER: ${{ secrets.DOCKERHUB_USER }}
127+
ARCHERY_DOCKER_PASSWORD: ${{ secrets.DOCKERHUB_TOKEN }}
128+
continue-on-error: true
129+
run: archery docker push ${{ matrix.image }}
130+
131+
report-extra-cpp:
132+
if: github.event_name == 'schedule' && always()
133+
needs:
134+
- docker
135+
uses: ./.github/workflows/report_ci.yml
136+
secrets: inherit

.github/workflows/dev.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@ jobs:
4141

4242
lint:
4343
name: Lint C++, Python, R, Docker, RAT
44-
# Use Ubuntu 22.04 to ensure working pre-commit on Ubuntu 22.04.
45-
runs-on: ubuntu-22.04
44+
# Use Ubuntu 24.04 to ensure working pre-commit on Ubuntu 24.04.
45+
runs-on: ubuntu-24.04
4646
if: ${{ !contains(github.event.pull_request.title, 'WIP') }}
4747
timeout-minutes: 15
4848
steps:

.github/workflows/dev_pr/labeler.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,3 +73,9 @@
7373
- any-glob-to-any-file:
7474
- docs/**/*
7575
- "**/*.{md, rst, Rmd, Rd}"
76+
77+
"CI: Extra: C++":
78+
- changed-files:
79+
- any-glob-to-any-file:
80+
- .github/workflows/cpp_extra.yml
81+
- cpp/src/arrow/flight/sql/odbc/**/*

.github/workflows/docs.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,11 @@
1818
name: Docs
1919

2020
on:
21+
pull_request:
22+
paths:
23+
- '.github/workflows/docs.yml'
24+
- 'cpp/apidoc/**'
25+
- 'docs/**'
2126
push:
2227

2328
permissions:

.github/workflows/docs_light.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,15 @@ on:
2121
pull_request:
2222
paths:
2323
- '.dockerignore'
24-
- 'docs/**'
2524
- '.github/workflows/docs_light.yml'
2625
- 'ci/docker/conda.dockerfile'
2726
- 'ci/docker/conda-cpp.dockerfile'
2827
- 'ci/docker/conda-python.dockerfile'
2928
- 'ci/scripts/cpp_build.sh'
3029
- 'ci/scripts/python_build.sh'
3130
- 'compose.yaml'
31+
- 'cpp/apidoc/**'
32+
- 'docs/**'
3233

3334
permissions:
3435
contents: read

0 commit comments

Comments
 (0)