-
Notifications
You must be signed in to change notification settings - Fork 3.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
GH-45039: [CI][Packaging][Python] Fix Docker push step for free-threaded wheel builds #45040
Conversation
pitrou
commented
Dec 17, 2024
•
edited by github-actions
bot
Loading
edited by github-actions
bot
- GitHub Issue: [CI][Packaging][Python] 3.13 free-threaded wheel builds fail in upload step #45039
…-threaded wheel builds
|
@github-actions crossbow submit wheel-manylinux-2-28-cp313-cp313-amd64 wheel-manylinux-2-28-cp313-cp313t-amd64 |
Revision: 3b6759e Submitted crossbow builds: ursacomputing/crossbow @ actions-7af60c9692
|
@github-actions crossbow submit wheelmanylinux |
Revision: 9e6cdb8 Submitted crossbow builds: ursacomputing/crossbow @ actions-552bdb3274 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @pitrou , LGTM, I am happy to merge without actually pushing the image and just validate on the nightlies
@github-actions crossbow submit wheel-manylinux-2-28-cp313-cp313-amd64 wheel-manylinux-2-28-cp313-cp313t-amd64 wheel-manylinux-2014-cp312-cp312-amd64 wheel-manylinux-2014-cp313-cp313-arm64 |
Revision: 3f3a068 Submitted crossbow builds: ursacomputing/crossbow @ actions-605028a7bb
|
3f3a068
to
9e6cdb8
Compare
shell: bash | ||
run: | | ||
archery docker push python-wheel-manylinux-{{ manylinux_version }} | ||
archery docker push python-wheel-manylinux-test-unittests | ||
archery docker push {{ test_unittests_image }} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We may want to push test_unittests_image
too.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You mean test_imports_image
? It's actually an upstream Python image.
python-wheel-manylinux-test-imports:
image: ${ARCH}/python:${PYTHON_IMAGE_TAG}
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh, sorry. Yes. I meant test_imports_image
.
I didn't notice that python-wheel-manylinux-test-imports
is python:XXX
.
I just checked python-free-threaded-wheel-manylinux-test-imports
:
Lines 1207 to 1210 in 37eb3b5
# TODO: Remove this when the official Docker Python image supports the free-threaded build. | |
# See https://github.com/docker-library/python/issues/947 for more info. | |
python-free-threaded-wheel-manylinux-test-imports: | |
image: ${REPO}:${ARCH}-python-3.13-free-threaded-wheel-manylinux-test-imports |
We don't need to cache it because it's a temporary image?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hmm, I don't know. But it's probably not very important, since the build step took 1 minute in https://github.com/ursacomputing/crossbow/actions/runs/12377700603/job/34547835928
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OK. Let's keep the current configuration. (We don't cache the python-free-threaded-wheel-manylinux-test-imports
image.)
# Testing free-threaded wheels uses a different Docker setup | ||
{% set test_imports_image = ( | ||
'python-free-threaded-wheel-manylinux-test-imports' if python_abi_tag == 'cp313t' | ||
else 'python-wheel-manylinux-test-imports') | ||
%} | ||
{% set test_unittests_image = ( | ||
'python-free-threaded-wheel-manylinux-test-unittests' if python_abi_tag == 'cp313t' | ||
else 'python-wheel-manylinux-test-unittests') | ||
%} | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think that using GitHub Actions features instead of using Jinja2 is easier to read/understand:
diff --git a/dev/tasks/python-wheels/github.linux.yml b/dev/tasks/python-wheels/github.linux.yml
index f083b7c0c8..eadb948339 100644
--- a/dev/tasks/python-wheels/github.linux.yml
+++ b/dev/tasks/python-wheels/github.linux.yml
@@ -50,6 +50,15 @@ jobs:
{{ macros.github_install_archery()|indent }}
{{ macros.github_login_dockerhub()|indent }}
+ - name: Prepare
+ run: |
+ if [ "${PYTHON_ABI_TAG}" = "cp313t" ]; then
+ test_image_prefix=python-free-threaded
+ else
+ test_image_prefix=python
+ fi
+ echo "TEST_IMAGE_PREFIX=${test_image_prefix}" >> ${GITHUB_ENV}
+
- name: Build wheel
shell: bash
env:
@@ -72,23 +81,11 @@ jobs:
# TODO(kszucs): auditwheel show
- name: Test wheel
- if: |
- '{{ python_abi_tag }}' != 'cp313t'
- shell: bash
- run: |
- source arrow/ci/scripts/util_enable_core_dumps.sh
- archery docker run python-wheel-manylinux-test-imports
- archery docker run python-wheel-manylinux-test-unittests
-
- # Free-threaded wheels need to be tested using a different Docker Compose service
- - name: Test free-threaded wheel
- if: |
- '{{ python_abi_tag }}' == 'cp313t'
shell: bash
run: |
source arrow/ci/scripts/util_enable_core_dumps.sh
- archery docker run python-free-threaded-wheel-manylinux-test-imports
- archery docker run python-free-threaded-wheel-manylinux-test-unittests
+ archery docker run ${TEST_IMAGE_PREFIX}-wheel-manylinux-test-imports
+ archery docker run ${TEST_IMAGE_PREFIX}-wheel-manylinux-test-unittests
- name: Test wheel on AlmaLinux 8
shell: bash
@@ -145,5 +142,5 @@ jobs:
shell: bash
run: |
archery docker push python-wheel-manylinux-{{ manylinux_version }}
- archery docker push python-wheel-manylinux-test-unittests
+ archery docker push ${TEST_IMAGE_PREFIX}-wheel-manylinux-test-unittests
{% endif %}
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hmm, I don't know, both are uncommon to me :) Feel free to open a fixup PR if you want.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.