-
Notifications
You must be signed in to change notification settings - Fork 171
CI: Explore consolidating Linux/Windows test workflows? #603
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
Comments
(Assigning to Marcus to triage/evaluate/decide in light of the ongoing CI refactoring #576.) |
also cc @shwina for vis |
#638 is one example showing the drawback of the status quo: Instead of just updating one file, we need to update two. |
Yes moving all the Windows stuff to bash, and unifying on some common scripts would help a lot. |
As a reminder to myself why an indirection might still be needed: actions/runner#904 (comment) |
I was more thinking at the bash script level for more reuse/central place to manage install, build, etc. Not container or action level where I don't see a full merge being feasible. |
I guess you're right about this. The reusable bits will likely have to happen at the bash script level, not at the action or workflow level, because this is another thing that cannot be expressed today 😞 ( test-linux:
# use container
container:
image: ubuntu:24.04
uses:
./.github/workflows/test-wheel-common.yml
...
test-windows:
# don't use container
uses:
./.github/workflows/test-wheel-common.yml
... However, I really love the capability of accessing the workflow yaml variables inside a bash snippet, like if [[ "${{ inputs.host-platform }}" == linux* ]]; then
# do this
elif [[ "${{ inputs.host-platform }}" == win* ]]; then
# do that
fi It is so very neat (ex: the variables are statically expanded). Sounds like we'll be losing this 🥲 |
We can just add these things to the |
Uh oh!
There was an error while loading. Please reload this page.
#600 opens up the door toward a single (Bash-based) implementation of the test workflow, which was previously not possible due to lack of Git Bash on the GH-hosted Windows GPU runner. It was the main reason that we had to re-implement
test-wheel-windows.yml
in Powershell in the first place (#444 (comment)). Note that our build workflow is already cross-platform (and Bash-based, since all of our build runners have Bash pre-installed -- trivial on Linux, and thanks to GH-hosted runner images on Windows).There might still be a few kinks, so a naive unification likely won't work (ex: container vs VM image, gcc vs msvc, ...). But I think most job steps are enough identical that we could probably extract out a reusable workflow, e.g.
test-wheel-common.yml
, for both OS to call.The text was updated successfully, but these errors were encountered: