Skip to content

Commit a8a043f

Browse files
author
unknown
committed
1 parent 3e00d19 commit a8a043f

File tree

4,174 files changed

+225
-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

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

0 commit comments

Comments
 (0)