nodejs / node

Node.js JavaScript runtime ✨🐢🚀✨
https://nodejs.org
Other
106.43k stars 29.01k forks source link

Add a GHA Windows test workflow? #50489

Open jsumners opened 10 months ago

jsumners commented 10 months ago

When pull requests are opened/updated in this repo the following workflows are automatically run:

But there isn't a corresponding Windows workflow. This is causing a bit of headache for at least me in PR https://github.com/nodejs/node/pull/48740. I don't have a Windows system to test on, but the PR needs to pass on Windows. The only way to get the PR to get run against a Windows system is for someone with privileges to add the needs-ci tag to the PR, and then it takes someone familiar with Jenkins, or at least the org's Jenkins setup, to find what the error is.

Given all of that, why isn't there a GitHub Actions workflow that runs the tests on Windows?

richardlau commented 10 months ago

Given all of that, why isn't there a GitHub Actions workflow that runs the tests on Windows?

Nobody has volunteered to implement one (i.e. no follow up to https://github.com/nodejs/node/pull/32450#discussion_r398268131).

jsumners commented 10 months ago

🙁

Is there no one with Windows knowledge on the core team that could add it?

bnoordhuis commented 10 months ago

"Vested interest" is probably a better choice of words than "knowledge."

I suspect the vast majority of regular contributors run Linux or macOS, not Windows. If you want to see it happen, send a pull request.

jsumners commented 10 months ago

I have zero knowledge of building this thing in Windows. My only interest is in seeing validation on PRs without the overhead outlined above.

H4ad commented 10 months ago

I have a Windows machine, I can help with that, I just need some direction on it, if you can add some issues/docs about how is working today, I can start from that, otherwise, I will try dig into the current GHA to see how it works.

Also, do we have resources to run on Windows? I mean, I don't know if we use Runners from Github or if we run on our infrastructure.

richardlau commented 10 months ago

@H4ad We have our own infrastructure but that's only used for the Jenkins CI. For anything running on GitHub actions we use the standard runners.

jsumners commented 10 months ago

Thank you @H4ad.

targos commented 10 months ago

You could start with a copy of https://github.com/nodejs/node/blob/main/.github/workflows/coverage-windows.yml

richardlau commented 10 months ago

Also https://github.com/nodejs/node/blob/main/.github/workflows/build-windows.yml. Ideally replace this with a test-windows workflow.

H4ad commented 10 months ago

Just for education purposes, what makes the CI run except for the on property? I ask this because I thought the coverage-windows should run by default on PRs but is not the case.

targos commented 10 months ago

coverage-windows doesn't run because it is currently disabled: https://github.com/nodejs/node/issues/50049

bcoe commented 1 month ago

Edit: @targos @richardlau just noting that as of the time of this comment Coverage Windows is disabled manually again:

Screenshot 2024-07-25 at 9 39 04 AM
richardlau commented 1 month ago

@bcoe Building on Windows with the latest Visual Studio (i.e. the one in the GitHub Action runners) is broken due to a compiler bug.

Refs: https://github.com/nodejs/build/issues/3739 Refs: https://github.com/nodejs/node/pull/53863