Skip to content
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

Execute CI in bare Windows environment #16

Open
sio opened this issue Dec 16, 2021 · 2 comments
Open

Execute CI in bare Windows environment #16

sio opened this issue Dec 16, 2021 · 2 comments
Labels
help wanted Extra attention is needed

Comments

@sio
Copy link
Owner

sio commented Dec 16, 2021

GitHub Actions provide Windows environment with half of Unix installed on top. This is not exactly representative of an average Windows PC.

We should run CI tests in a more bare environment: just Python from python.org, some build of GNU Make for orchestration (choco?) and cmd.exe for shell. There should be no touch command, no /dev/null to write to, no sh.exe to fall back to... Code path for such environment will be significantly different to what we test now, and some new issues may be discovered.

One way to achieve this would be to use Docker Windows containers.

As with many things Windows, running Docker is annoying:

  • Be prepared to waste 2GB of RAM on a Linux VM even if you intend to run zero Linux containers
  • Windows container OS version must match host OS, say goodbye to reproducibility unless you're ready to spin up the same version of Windows Server GHA is currently using.
  • Typical container size for Windows 10 is about 8GB. Nanoserver images exist, but they are not compatible with Windows 10.

Currently I have no patience for this obnoxious stuff. Leaving it here in case someone else is interested.

@sio sio added the help wanted Extra attention is needed label Dec 16, 2021
@Poddster
Copy link
Contributor

Poddster commented May 9, 2022

Who would have GNU make, but not touch or sh.exe? If someone has make you can assume they have bash, as they can probably find it in the same place.

What about your CI environment simply being stock Windows + git-for-windows? That's probably a common install of the kinds of people that will be invoking your makefile.

Though git-for-windows doesn't come with Make, so still not sure how they would have GNU Make in the first place.

@sio
Copy link
Owner Author

sio commented May 10, 2022

I agree that this kind of setup is extremely unusual, and it affects low number of users (if any at all). But I've stumbled upon it organically and I guess someone else might too.

I was tinkering with a new Windows VM and it didn't have any of dev tools I normally use. I installed Python and fetched a copy of GNU Make, and I expected that that should be enough for Makefile.venv. One could've expected me to know better, being the project author and all, right? :)

I'm leaving this open as a low priority wishlist item in case I (or someone else) have time for it later.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

2 participants