-
Notifications
You must be signed in to change notification settings - Fork 83
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
Full CI support for public builds + switch to use cibuildwheel #267
Conversation
/ok to test |
/ok to test |
/ok to test |
/ok to test |
/ok to test |
/ok to test |
/ok to test |
/ok to test |
/ok to test |
/ok to test |
/ok to test |
/ok to test |
/ok to test |
(updated the PR description) |
PARALLEL_LEVEL=${{ env.PARALLEL_LEVEL }} | ||
CIBW_ENVIRONMENT_WINDOWS: > | ||
CUDA_HOME="$(cygpath -w $(realpath ./cuda_toolkit))" | ||
# PARALLEL_LEVEL=${{ env.PARALLEL_LEVEL }} |
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.
Note: This was commented out because of #271.
# WAR: setup-python is not relocatable... | ||
# see https://github.com/actions/setup-python/issues/871 | ||
- name: Set up Python ${{ inputs.python-version }} | ||
if: ${{ startsWith(inputs.host-platform, 'linux') }} | ||
id: setup-python | ||
uses: actions/setup-python@v5 | ||
with: | ||
python-version: "3.12" |
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.
Technically we don't need this step. However, because actions/setup-python
is not relocatable (its RPATH is hard-wired, see actions/setup-python#871), on a self-hosted runner cibuildwheels cannot properly load libpython3.12. This is a WAR by forcing the same Python version installed on the host (and mounted into the container).
Last comment I think: Perhaps we should squash these commits. Not hellbent on this |
/ok to test |
Yes when we merge there's a drop-down menu to select merge or squash. |
ahh, that option is grayed out for me on this project |
@ksimpson-work is it still grey after you approved it? |
No, I noticed it when I went to merge my own PRs. I'll take a screenshot next time, unless I was hallucinating |
Let's merge! Thanks for quick reviews @ksimpson-work! |
Close #227. Part of #81.
The earlier build pipeline was deficient because
This PR switches to use public GHA workflows. Most steps are meant to be easily reusable (after some tweaking/refactoring) by other Python/CUDA projects, either first-party or third-party. For example,
cibuildwheels
has been used to offer guarantee to manylinux. It also lays the ground work for later bring-up of the CI test stage. (This PR only covers the build stage.)As of commit 0d554f0, we can build all needed wheels using GHA now! 🎉
cuda.bindings
cuda.core
The artifacts are available here for inspection: https://github.com/NVIDIA/cuda-python/actions/runs/12192916020