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

Label update and consolidation of CITGM jobs #3986

Open
targos opened this issue Dec 22, 2024 · 6 comments
Open

Label update and consolidation of CITGM jobs #3986

targos opened this issue Dec 22, 2024 · 6 comments

Comments

@targos
Copy link
Member

targos commented Dec 22, 2024

FYI @nodejs/citgm, @nodejs/releasers, I made the following changes to the Jenkins CITGM jobs, hopefully to make them more reliable:

  • Test only on the latest available OS version. That means for example that I removed fedora-last-latest, and replaced rhel8 with rhel9.
  • Fix the inline shell scripts to download arm64 binaries for labels that end with -arm64. This should make the arm64 Windows tests faster (and cover arm64 instructions too) and fix the errors that we've been having on macOS
  • Use the same labels on all relevant jobs (except for alpine-latest-x64, which I only added to citgm-smoker because we don't have official binaries to download for the other jobs.
  • On Windows, set both vs2019 (for v18 and v20) and vs2022 (for v22 and v23)

Updated jobs (you can see the new set of labels on each of those pages):

@targos
Copy link
Member Author

targos commented Dec 22, 2024

@StefanStojanovic I am not sure about Windows. Since in the regular CI, the build from source is never done on arm64 hardware, I set "fake" labels on the citgm-smoker job (iiuc, win-vs2022-arm64 will build on x64 hardware). On the other two jobs, I tried to select labels so that it runs on x64 hardware for versions <=20 and on both x64 and arm64 for newer versions.

@targos
Copy link
Member Author

targos commented Dec 22, 2024

@targos
Copy link
Member Author

targos commented Dec 22, 2024

https://ci.nodejs.org/view/Node.js-citgm/job/citgm-smoker/3525/nodes=win-vs2022-arm64/console is doing an x64 build. Those Windows labels are difficult to get right...

@StefanStojanovic
Copy link
Contributor

Hey, @targos, yes, you are correct, we are cross-compiling Node.js for ARM64, so the win-vs2022-arm64 label is only used on Win2022-VS2022 x64 machines. This could be bypassed by adding new labels (or using some of the already existing ones, eg. win11-vs2022-arm64 and win2022-vs2022).

Additionally, regardless of the label (x64 or arm64 suffix), the citgm-smoker job has this hardcoded to execute on Windows:

call vcbuild release nosign x64

So, we'd need to change the job configuration to take the label value in consideration on Windows.

@targos
Copy link
Member Author

targos commented Dec 30, 2024

we are cross-compiling Node.js for ARM64

Is this going to change soon? I have no idea how to setup a cross-compile-then-run-on-arm-hardware config here

@StefanStojanovic
Copy link
Contributor

we are cross-compiling Node.js for ARM64

Is this going to change soon? I have no idea how to setup a cross-compile-then-run-on-arm-hardware config here

Not very likely. I'm not 100% sure as I haven't tried it in some time, but I think ARM64 native compilation was possible (at least at some point). If that is still the case, we can use ARM64 machines to compile and run CITGM. I'm OOF until Jan 13 and I'll investigate it after I'm back.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants