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, software
12+ # distributed under the License is distributed on an "AS IS" BASIS,
13+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+ # See the License for the specific language governing permissions and
15+ # limitations under the License.
16+
17+
18+ # NOTE: must set "Crossbow" as name to have the badge links working in the
19+ # github comment reports!
20+ name : Crossbow
21+ on :
22+ push :
23+ branches :
24+ - " *-github-*"
25+
26+ env :
27+ ARCHERY_DEBUG : 1
28+
29+ # env: is generated by macros.github_header()
30+ ARROW_JEMALLOC : " OFF"
31+ CC : " clang"
32+ CMAKE_BUILD_TYPE : release
33+ CXX : " clang++"
34+ MACOSX_DEPLOYMENT_TARGET : " 12.0"
35+ PYARROW_VERSION : " 25.0.0.dev106"
36+ PYTHON_VERSION : " 3.11"
37+ PYTHON_ABI_TAG : " cp311"
38+ PYTHON : " /Library/Frameworks/Python.framework/Versions/3.11/bin/python3.11"
39+ VCPKG_DEFAULT_TRIPLET : " arm64-osx-static-release"
40+ VCPKG_FEATURE_FLAGS : " manifests"
41+ VCPKG_OVERLAY_TRIPLETS : ${{ github.workspace }}/arrow/ci/vcpkg
42+ VCPKG_ROOT : ${{ github.workspace }}/vcpkg
43+
44+ permissions :
45+ packages : write
46+
47+ jobs :
48+ build :
49+ name : Build wheel for Python 3.11 on macOS
50+ runs-on : " macos-14"
51+ env :
52+ VCPKG_BINARY_SOURCES : ' clear;nuget,GitHub,readwrite'
53+ steps :
54+ - name : Checkout Arrow
55+ uses : actions/checkout@v4
56+ with :
57+ fetch-depth : 1
58+ path : arrow
59+ persist-credentials : false
60+ repository : raulcd/arrow
61+ ref : 386cf7dc7a92752dc43a11bc0777bf0dccc49504
62+ submodules : recursive
63+
64+
65+ - name : Install System Dependencies
66+ run : |
67+ brew install bash bison coreutils mono ninja
68+ echo "$(brew --prefix bison)/bin" >> $GITHUB_PATH
69+
70+ - name : Homebrew packages
71+ run : |
72+ brew list
73+
74+ # CMake 3.29.1 that is pre-installed on the macOS image has a problem.
75+ # See also: https://github.com/microsoft/vcpkg/issues/37968
76+ - name : Install CMake 3.29.0
77+ shell : bash
78+ run : |
79+ arrow/ci/scripts/install_cmake.sh 3.29.0 ${PWD}/local
80+ echo "${PWD}/local/bin" >> $GITHUB_PATH
81+
82+ - name : Retrieve VCPKG version from arrow/.env
83+ run : |
84+ vcpkg_version=$(. "arrow/.env" && echo "${VCPKG}")
85+ echo "VCPKG_VERSION=$vcpkg_version" >> $GITHUB_ENV
86+
87+ - name : Install Vcpkg
88+ env :
89+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
90+ run : arrow/ci/scripts/install_vcpkg.sh $VCPKG_ROOT $VCPKG_VERSION
91+
92+ - name : Add Vcpkg to PATH
93+ run : echo ${VCPKG_ROOT} >> $GITHUB_PATH
94+
95+ - name : Install Packages
96+ run : |
97+ vcpkg install \
98+ --clean-after-build \
99+ --x-install-root=${VCPKG_ROOT}/installed \
100+ --x-manifest-root=arrow/ci/vcpkg \
101+ --x-feature=azure \
102+ --x-feature=flight \
103+ --x-feature=gcs \
104+ --x-feature=json \
105+ --x-feature=opentelemetry \
106+ --x-feature=orc \
107+ --x-feature=parquet \
108+ --x-feature=s3
109+
110+ - name : Install Python 3.11
111+ run : sudo arrow/ci/scripts/install_python.sh macos 3.11
112+
113+ - name : Build Wheel
114+ run : |
115+ $PYTHON -m venv build-env
116+ source build-env/bin/activate
117+ pip install --upgrade pip wheel
118+ PYTHON=python arrow/ci/scripts/python_wheel_macos_build.sh arm64 $(pwd)/arrow $(pwd)/build
119+
120+ - uses : actions/upload-artifact@v4
121+ with :
122+ name : wheel
123+ path : arrow/python/repaired_wheels/*.whl
124+
125+ # Use a well-known Python version for the GCS testbench, and avoid
126+ # putting it in PATH.
127+ - name : Set up Python for GCS testbench
128+ uses : actions/setup-python@v5.1.1
129+ id : gcs-python-install
130+ with :
131+ python-version : 3.12
132+ update-environment : false
133+
134+ - name : Install GCS testbench
135+ env :
136+ PIPX_BIN_DIR : /usr/local/bin
137+ PIPX_BASE_PYTHON : ${{ steps.gcs-python-install.outputs.python-path }}
138+ run : arrow/ci/scripts/install_gcs_testbench.sh default
139+
140+ - name : Install MinIO
141+ run : |
142+ $(brew --prefix bash)/bin/bash \
143+ arrow/ci/scripts/install_minio.sh latest /usr/local
144+
145+ - name : Test Wheel
146+ env :
147+ PYTEST_ADDOPTS : " -k 'not test_cancellation'"
148+ PYTHON_GIL : 1
149+ run : |
150+ $PYTHON -m venv test-env
151+ source test-env/bin/activate
152+ pip install --upgrade pip wheel
153+ arch -arm64 arrow/ci/scripts/python_wheel_unix_test.sh $(pwd)/arrow
154+
155+ - name : Set up Python
156+ uses : actions/setup-python@v4
157+ with :
158+ python-version : 3.12
159+ - name : Checkout Crossbow
160+ uses : actions/checkout@v4
161+ with :
162+ path : crossbow
163+ persist-credentials : false
164+ ref : actions-bc2bc22eeb
165+ - name : Setup Crossbow
166+ shell : bash
167+ run : |
168+ python3 -m pip install -e arrow/dev/archery[crossbow]
169+ echo "$HOME/.local/bin" >> $GITHUB_PATH
170+ - name : Upload artifacts
171+ shell : bash
172+ run : |
173+ archery crossbow \
174+ --queue-path $(pwd)/crossbow \
175+ --queue-remote https://github.com/ursacomputing/crossbow \
176+ upload-artifacts \
177+ --sha actions-bc2bc22eeb-github-wheel-macos-monterey-cp311-cp311-arm64 \
178+ --tag actions-bc2bc22eeb-github-wheel-macos-monterey-cp311-cp311-arm64 \
179+ "arrow/python/repaired_wheels/*.whl"
180+ env :
181+ CROSSBOW_GITHUB_TOKEN : ${{ secrets.CROSSBOW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
182+ - name : Verify uploaded artifacts
183+ shell : bash
184+ run : |
185+ archery crossbow \
186+ --queue-path $(pwd)/crossbow \
187+ --queue-remote https://github.com/ursacomputing/crossbow \
188+ status \
189+ --task-filter 'wheel-macos-monterey-cp311-cp311-arm64' \
190+ --no-fetch \
191+ --validate \
192+ actions-bc2bc22eeb
193+ env :
194+ CROSSBOW_GITHUB_TOKEN : ${{ secrets.CROSSBOW_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}
195+
196+
0 commit comments