-
Notifications
You must be signed in to change notification settings - Fork 10.5k
[windows] add a parameter to skip building experimental SDKs in build.ps1 #83455
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
base: main
Are you sure you want to change the base?
[windows] add a parameter to skip building experimental SDKs in build.ps1 #83455
Conversation
@swift-ci please test |
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 should also consider disabling the static libraries for Linux if we are doing this - they are building static and dynamic libraries AFAIK.
If set, skips building the msi's and installer | ||
If set, skips building the msi's and installer. | ||
|
||
.PARAMETER SkipExperimentalSDK |
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 don't think that this should be another parameter. Perhaps we can handle this uniformly with -SDK
; this does however make testing harder.
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.
Thinking a bit about this - it would actually be helpful to have this functionality more generically: we should be able to disable the non-experimental SDK bits more than the experimental SDK bits. The experimental SDK is what will become the default. That would also help with testing; perhaps we can have something clever as the specifier in the -WindowsSDKs
and -AndroidSDKs
to control which SDK and architectures we support. I would be open to renaming the options btw, they currently control the architectures in the SDK, not the SDKs. If we can simplify the logic for the handling, perhaps something like:
-AndroidSDKs experimental -AndroidSDKArchitectures aarch64 -WindowsSDKs default,experimental -WindowsSDKArchitectures arm64,x64
@@ -81,6 +86,7 @@ powershell.exe -ExecutionPolicy RemoteSigned -File %~dp0build.ps1 ^ | |||
-BinaryCache %BuildRoot% ^ | |||
-ImageRoot %BuildRoot% ^ | |||
%SkipPackagingArg% ^ | |||
%SkipExperimentalSDKArg% ^ |
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.
No, we cannot skip these in this test. This is used for the PR testing and we want to maintain that these are tested - they build differently and are very easy to regress because they are building static libraries.
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.
Just to clarify: we would only deactivate this when running the lldb specific bots. The current Swift PR bots would still run those tests. Nothing would change for the current bots, it would only affect the new bots.
BTW, this is an older idea: #81790 was an initial attempt to do part of what this wants. I think I can possibly put up a partial PoC that you can help drive and use for the purposes of tweaking the LLDB tests. |
#83496 is something that I am playing around with - I think that is a better approach than this. It allows us to disable the default SDK and only build the experimental SDK instead! It will need a little bit more work before it can be merged, but it should be a good starting point. |
This patch adds a parameter to skip building the experimentalSDKs in build.ps1.
We are deploying a bot to build and test Swift features of lldb on Windows. The total run time is currently 2h15. Removing the experimentalSDK build would bring that run time to 1h50, which is a 20% speedup.