Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork937
Use Alpine Linux in WSL on CI#1945
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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Merged
Merged
Uh oh!
There was an error while loading.Please reload this page.
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.Learn more about bidirectional Unicode characters
Some of the CI tests use WSL. This switches the WSL distributionfrom Debian to Alpine, which might be slightly faster. For the wayit is being used here, the main expected speed improvement would beto how long the image would take to download, as Alpine is smaller.(The reason for this is thus unrelated to the reason for the Alpinedocker CI test job added ingitpython-developers#1826. There, the goal was to test on awider variety of systems and environments, and that runs the wholetest suite in Alpine. This just changes the WSL distro, used by afew tests on Windows, from Debian to Alpine.)Two things have changed that, taken together, have unblocked this:-Vampire/setup-wsl#50 was fixed, so the action we are using is able to install Alpine Linux. See:gitpython-developers#1917 (review)-gitpython-developers#1893 was fixed ingitpython-developers#1888. So if switching the WSL distro from Debian to Alpine breaks any tests, including by making them fail in an unexpected way that raises the wrong exception, we are likely to find out.
Because Alpine Linux does not ship with bash, and the tests thatuse WSL use it.
Byron approved these changesJul 24, 2024
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 a lot being on top of this!
Let's merge and see if we are lucky with compile-time improvements due to effective GitHub CI caching.
0b81749
intogitpython-developers:main 26 checks passed
Uh oh!
There was an error while loading.Please reload this page.
Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading.Please reload this page.
Some of the CI tests use WSL. This switches the WSL distribution from Debian to Alpine, which might be slightly faster. For the way it is being used here, the main expected speed improvement would be to how long the image would take to download*, as Alpine is smaller.
(The reason for this is thus unrelated to the reason for the Alpine docker CI test job added in#1826. There, the goal was to test on a wider variety of systems and environments, and that runs the whole test suite in Alpine. This just changes the WSL distro, used by a few tests on Windows, from Debian to Alpine.)
Two things have changed that, taken together, have unblocked this:
action failing with a 403 on Alpine etc Vampire/setup-wsl#50 was fixed, so the action we are using is able to install Alpine Linux. See:Bump Vampire/setup-wsl from 3.0.0 to 3.1.0 #1917 (review)
Some xfail markings fail to validate their exception types #1893 was fixed inlint: add typos check #1888. So if switching the WSL distro from Debian to Alpine breaks any tests, including by making them fail in an unexpected way that raises the wrong exception, we are likely to find out.
* Alpine Linux doesn't ship with
bash
so this has thesetup-wsl
action install thebash
package. Updating package indexes and installing the package in the WSL system adds to the overhead. It is still much faster to set up than Debian... except that obtaining the Alpine Linux image, even though it is smaller than the Debian image, tends to take longer, because it is not available from as fast of a source. This relates toVampire/setup-wsl#50 (comment); the issue there was about the action not being able to download from the second source at all, which was fixed.The effect is that Alpine Linux takes longer to download from outside of GitHub, but is faster to retrieve from the GitHub Actions cache and install. Looking at the total time difference added up from all six Windows jobs that use it, this change does slightly better than with Debian. But the slight increase in complexity would likely make it unjustified given the mixed returns. But that's on the feature branch. I believe the cached download will be reusable across separate workflow runs if this is merged, so I would expect a significant overall improvement, with a total time spent getting WSL set up decreased well under half the original total time. So I think it's probably justified.
This is subjective and I will not be sad if you choose to close this without merging.