Windows wheels: init submodules in pre-build script with OpenSSL#18262
Windows wheels: init submodules in pre-build script with OpenSSL#18262manuelcandales wants to merge 3 commits intomainfrom
Conversation
The previous fix (setting sslBackend in pre_build_script.sh) only applied to nested tokenizer submodules. The top-level submodule checkout still used schannel via the reusable workflow's `submodules: true`, causing SEC_E_ILLEGAL_MESSAGE errors when cloning from git.gitlab.arm.com. Move all submodule initialization into the pre-build script where we can control the SSL backend, and disable submodule checkout in the workflow.
🔗 Helpful Links🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/executorch/18262
Note: Links to docs will display an error until the docs builds have been completed. ❌ 1 Awaiting Approval, 2 New Failures, 10 PendingAs of commit 8033f32 with merge base 94e9ca6 ( NEW FAILURES - The following jobs have failed:
This comment was automatically generated by Dr. CI and updates every 15 minutes. |
There was a problem hiding this comment.
Pull request overview
Updates the Windows wheel build workflow to avoid Git TLS failures on Windows (schannel SEC_E_ILLEGAL_MESSAGE) when initializing submodules hosted outside GitHub, by moving submodule initialization into the pre-build script where the SSL backend can be controlled.
Changes:
- Disable submodule checkout in the Windows wheels reusable workflow invocation.
- Initialize top-level submodules in
pre_build_script.sh, usinghttp.sslBackend=opensslon Windows. - Keep the existing tokenizers nested-submodule initialization workaround (path-length related), now after top-level init.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| .github/workflows/build-wheels-windows.yml | Disables checkout-time submodules and documents that submodules are initialized in the pre-build script. |
| .ci/scripts/wheel/pre_build_script.sh | Adds top-level submodule init with OpenSSL on Windows; retains nested tokenizers submodule init. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
You can also share your feedback on Copilot code review. Take the survey.
Move submodule initialization above the aarch64 sed workaround so the file it edits is guaranteed to exist even if the caller disables submodule checkout. Also remove the redundant UNAME_S assignment later in the script.
The default 60-minute timeout from pytorch/test-infra is too tight for the Windows wheel build + smoke test, causing jobs to be cancelled.
There was a problem hiding this comment.
Pull request overview
Adjusts the Windows wheel CI pipeline to avoid schannel-related TLS failures when cloning submodules from non-GitHub hosts by moving all submodule initialization into the pre-build script (where the SSL backend can be forced to OpenSSL).
Changes:
- Disable submodule checkout in the Windows wheels reusable workflow invocation.
- Initialize top-level submodules in
pre_build_script.sh, usinghttp.sslBackend=opensslon Windows. - Minor refactor/reordering in
pre_build_script.shto support the new initialization flow.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
.github/workflows/build-wheels-windows.yml |
Disables submodule checkout and documents that submodules are initialized in the pre-build script; adds a 120-minute timeout input. |
.ci/scripts/wheel/pre_build_script.sh |
Adds top-level submodule initialization (OpenSSL on Windows), keeps tokenizers’ nested submodule init, and reorders the aarch64 atomic workaround accordingly. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
You can also share your feedback on Copilot code review. Take the survey.
The previous fix (setting sslBackend in pre_build_script.sh) only applied to nested tokenizer submodules. The top-level submodule checkout still used schannel via the reusable workflow's
submodules: true, causing SEC_E_ILLEGAL_MESSAGE errors when cloning from git.gitlab.arm.com.Move all submodule initialization into the pre-build script where we can control the SSL backend, and disable submodule checkout in the workflow.