Skip to content

Commit fb7b3c3

Browse files
author
unknown
committed
1 parent 3e00d19 commit fb7b3c3

File tree

4,174 files changed

+224
-292275
lines changed

Some content is hidden

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

4,174 files changed

+224
-292275
lines changed

.circleci/config.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
12
version: 2
23

34
jobs:

.github/workflows/cache_vcpkg.yml

Lines changed: 0 additions & 109 deletions
This file was deleted.

.github/workflows/crossbow.yml

Lines changed: 220 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,220 @@
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+
19+
# NOTE: must set "Crossbow" as name to have the badge links working in the
20+
# github comment reports!
21+
name: Crossbow
22+
on:
23+
push:
24+
branches:
25+
- "*-github-*"
26+
27+
env:
28+
ARCHERY_DEBUG: 1
29+
30+
31+
permissions:
32+
packages: write
33+
34+
jobs:
35+
build:
36+
name: "Build wheel for manylinux 2-28"
37+
runs-on: ubuntu-latest
38+
env:
39+
# archery uses these environment variables
40+
ARCH: amd64
41+
PYTHON: "3.11"
42+
PYTHON_ABI_TAG: "cp311"
43+
PYTHON_IMAGE_TAG: "3.11"
44+
45+
steps:
46+
- name: Checkout Arrow
47+
uses: actions/checkout@v4
48+
with:
49+
fetch-depth: 1
50+
path: arrow
51+
repository: apache/arrow
52+
ref: 82847d8f6dae87e709d284b4b871da1424e93a25
53+
submodules: recursive
54+
55+
- name: Free up disk space
56+
if: runner.os == 'Linux' && runner.arch == 'X64'
57+
shell: bash
58+
run: |
59+
arrow/ci/scripts/util_free_space.sh
60+
61+
- name: Set up Python
62+
uses: actions/setup-python@v4
63+
with:
64+
cache: 'pip'
65+
python-version: 3.12
66+
- name: Install Archery
67+
shell: bash
68+
run: pip install -e arrow/dev/archery[all]
69+
70+
- name: Login to Dockerhub
71+
uses: docker/login-action@v2
72+
with:
73+
username: ${{ secrets.DOCKERHUB_USER }}
74+
password: ${{ secrets.DOCKERHUB_TOKEN }}
75+
76+
77+
# Detect free-threaded Python builds
78+
- name: Prepare
79+
run: |
80+
if [[ "${PYTHON_ABI_TAG}" == *t ]]; then
81+
test_image_prefix=python-free-threaded
82+
else
83+
test_image_prefix=python
84+
fi
85+
echo "TEST_IMAGE_PREFIX=${test_image_prefix}" >> ${GITHUB_ENV}
86+
87+
- name: Build wheel
88+
shell: bash
89+
env:
90+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
91+
run: |
92+
if [ "manylinux" = "musllinux" ] && [ "amd64" = "arm64" ]; then
93+
# We can't use NuGet on musl arm systems because the official NuGet binary for arm doesn't exist.
94+
:
95+
else
96+
export VCPKG_BINARY_SOURCES="clear;nuget,GitHub,readwrite"
97+
fi
98+
archery docker run \
99+
-e SETUPTOOLS_SCM_PRETEND_VERSION=24.0.0.dev272 \
100+
python-wheel-manylinux-2-28
101+
102+
- uses: actions/upload-artifact@v4
103+
with:
104+
name: wheel
105+
path: arrow/python/repaired_wheels/*.whl
106+
107+
# TODO(kszucs): auditwheel show
108+
- name: Test wheel
109+
shell: bash
110+
run: |
111+
source arrow/ci/scripts/util_enable_core_dumps.sh
112+
archery docker run ${TEST_IMAGE_PREFIX}-wheel-manylinux-test-imports
113+
archery docker run ${TEST_IMAGE_PREFIX}-wheel-manylinux-test-unittests
114+
115+
- name: Test wheel on AlmaLinux 8
116+
shell: bash
117+
if: |
118+
'3.11' == '3.12' && 'manylinux' == 'manylinux'
119+
env:
120+
ALMALINUX: "8"
121+
run: |
122+
archery docker run \
123+
-e ARROW_GANDIVA=OFF \
124+
-e TEST_DEFAULT=0 \
125+
-e TEST_PYARROW_VERSION=24.0.0.dev272 \
126+
-e TEST_PYTHON_VERSIONS=3.11 \
127+
-e TEST_WHEEL_PLATFORM_TAGS=manylinux_2_28_x86_64 \
128+
-e TEST_WHEELS=1 \
129+
almalinux-verify-rc
130+
131+
- name: Test wheel on Ubuntu 22.04
132+
shell: bash
133+
if: |
134+
'3.11' == '3.10' && 'manylinux' == 'manylinux'
135+
env:
136+
UBUNTU: "22.04"
137+
run: |
138+
archery docker run \
139+
-e TEST_DEFAULT=0 \
140+
-e TEST_PYARROW_VERSION=24.0.0.dev272 \
141+
-e TEST_PYTHON_VERSIONS=3.11 \
142+
-e TEST_WHEEL_PLATFORM_TAGS=manylinux_2_28_x86_64 \
143+
-e TEST_WHEELS=1 \
144+
ubuntu-verify-rc
145+
146+
- name: Test wheel on Ubuntu 24.04
147+
shell: bash
148+
if: |
149+
'3.11' == '3.12' && 'manylinux' == 'manylinux'
150+
env:
151+
UBUNTU: "24.04"
152+
run: |
153+
archery docker run \
154+
-e TEST_DEFAULT=0 \
155+
-e TEST_PYARROW_VERSION=24.0.0.dev272 \
156+
-e TEST_PYTHON_VERSIONS=3.11 \
157+
-e TEST_WHEEL_PLATFORM_TAGS=manylinux_2_28_x86_64 \
158+
-e TEST_WHEELS=1 \
159+
ubuntu-verify-rc
160+
161+
- name: Set up Python
162+
uses: actions/setup-python@v4
163+
with:
164+
python-version: 3.12
165+
- name: Checkout Crossbow
166+
uses: actions/checkout@v4
167+
with:
168+
path: crossbow
169+
ref: nightly-packaging-2026-04-02-0
170+
- name: Setup Crossbow
171+
shell: bash
172+
run: |
173+
python3 -m pip install -e arrow/dev/archery[crossbow]
174+
echo "$HOME/.local/bin" >> $GITHUB_PATH
175+
- name: Upload artifacts
176+
shell: bash
177+
run: |
178+
archery crossbow \
179+
--queue-path $(pwd)/crossbow \
180+
--queue-remote https://github.com/ursacomputing/crossbow \
181+
upload-artifacts \
182+
--sha nightly-packaging-2026-04-02-0-github-wheel-manylinux-2-28-cp311-cp311-amd64 \
183+
--tag nightly-packaging-2026-04-02-0-github-wheel-manylinux-2-28-cp311-cp311-amd64 \
184+
"arrow/python/repaired_wheels/*.whl"
185+
env:
186+
CROSSBOW_GITHUB_TOKEN: ${{ secrets.CROSSBOW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
187+
- name: Verify uploaded artifacts
188+
shell: bash
189+
run: |
190+
archery crossbow \
191+
--queue-path $(pwd)/crossbow \
192+
--queue-remote https://github.com/ursacomputing/crossbow \
193+
status \
194+
--task-filter 'wheel-manylinux-2-28-cp311-cp311-amd64' \
195+
--no-fetch \
196+
--validate \
197+
nightly-packaging-2026-04-02-0
198+
env:
199+
CROSSBOW_GITHUB_TOKEN: ${{ secrets.CROSSBOW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
200+
201+
- name: Upload wheel to Anaconda scientific-python
202+
shell: bash
203+
run: |
204+
# check if completion actually expands to wheel files
205+
# to prevent empty dirs from failing silently
206+
if ! compgen -G "arrow/python/repaired_wheels/*.whl" > /dev/null; then
207+
echo "No wheel files found!"
208+
exit 1
209+
fi
210+
python3 -m pip install git+https://github.com/Anaconda-Platform/anaconda-client.git@1.14.1
211+
anaconda -t ${CROSSBOW_SCIENTIFIC_PYTHON_UPLOAD_TOKEN} upload --force -u scientific-python-nightly-wheels --label main arrow/python/repaired_wheels/*.whl
212+
env:
213+
CROSSBOW_SCIENTIFIC_PYTHON_UPLOAD_TOKEN: ${{ secrets.CROSSBOW_SCIENTIFIC_PYTHON_UPLOAD_TOKEN }}
214+
215+
216+
- name: Push Docker images
217+
shell: bash
218+
run: |
219+
archery docker push python-wheel-manylinux-2-28
220+
archery docker push ${TEST_IMAGE_PREFIX}-wheel-manylinux-test-unittests

0 commit comments

Comments
 (0)