-
Notifications
You must be signed in to change notification settings - Fork 29.7k
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
build: add build from tarball #32129
Conversation
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.
Generally LGTM
My understanding is that changes to actions don't unless the PR is coming from a local branch, how should we go about properly testing this?
.github/workflows/CI.yml
Outdated
@@ -39,6 +39,25 @@ jobs: | |||
run: npx envinfo | |||
- name: Build | |||
run: ./configure && make -j8 | |||
build-from-tarball: |
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.
do we want to run this on windows / linux too?
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.
@MylesBorins is the tarball different per OS? Looking at release jobs it looks like it is only built once.
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 added runs for windows and linux.
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 am -1 on windows.
To my early comment, I guess i was wrong... it seems like the action is running even though the PR came from a fork https://github.com/nodejs/node/pull/32129/checks?check_run_id=490863314 I thought this was not able to happen based on how GitHub IAM works... |
@MylesBorins, it looks like my changes to the actions are running - eg you can see the job running here: https://github.com/nodejs/node/runs/490863314?check_suite_focus=true |
@jkleinsc it is only built once in ci-release, specifically on the centos7 machine, I believe. I'm more curious about potential platform issues when building from the source binary. For example there are code paths only for particular architectures / OSs, so would be a shame to miss coverage |
My suggestion would be to modify the existing The other non- |
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.
sgtm
Codecov Report
@@ Coverage Diff @@
## master #32129 +/- ##
==========================================
- Coverage 97.29% 97.27% -0.02%
==========================================
Files 197 197
Lines 64971 65070 +99
==========================================
+ Hits 63215 63299 +84
- Misses 1756 1771 +15
Continue to review full report at Codecov.
|
ea76457
to
d902a32
Compare
@jkleinsc CI does some setup stuff to choose compiler you don't care about for just x64, and then does:
|
f89f986
to
5f4628e
Compare
.github/workflows/CI.yml
Outdated
./configure && make tar -j8 | ||
mkdir tarballs | ||
mv *.tar.gz tarballs | ||
- name: Upload tarball artifact |
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.
This part should consider removed, see #32458 (comment)
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.
This step is needed so that downstream build jobs have access to the tarball. I think this is a different case than #32458 (comment) because it isn't an executable. The other option would be to make the tarball on every platform but it doesn't appear that it can be made on Windows as far as I can tell. Also doing it that way would then make the jobs run longer as they would each have to build the tarball and then build from the tarball.
Please also consider split into a single file, see #32450. |
@jkleinsc This failed on Windows, afaict? |
@sam-github any insight into the Windows CI config? I can't get all the tests to pass there and it looks like maybe Jenkins splits the tests into multiple parallel runs? |
At least two of the failing tests ( |
@richardlau thanks for the hint. That did indeed resolve 2 of the failing tests. It looks like the test |
19e6487
to
d1fed7e
Compare
For Windows we'll need to add to
to fix test failures such as:
|
Git for Windows includes C:\Program Files\Git\bin\bash.exe which spawns ..\usr\bin\bash.exe so copying that executable won't work. However if a symlink is used to test paths with spaces this executable will still work.
1cb0c4d
to
f5dc4d2
Compare
@richardlau this is ready for review. I was able to sort out the Windows issues. |
CI: https://ci.nodejs.org/job/node-test-pull-request/30595/ (:heavy_check_mark:) |
Git for Windows includes `C:\Program Files\Git\bin\bash.exe`, which spawns ..\usr\bin\bash.exe, so copying that executable won't work. However, if a symlink is used to test paths with spaces, this executable will still work. PR-URL: #32129 Reviewed-By: Rod Vagg <rod@vagg.org> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Fixes: nodejs/build#1931 PR-URL: #32129 Reviewed-By: Rod Vagg <rod@vagg.org> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Landed in 38bf1be...26924fa 🎉 Thanks for pushing this through, @jkleinsc! |
very nice work, this should be really valuable, thanks for putting up with a marathon @jkleinsc |
Git for Windows includes `C:\Program Files\Git\bin\bash.exe`, which spawns ..\usr\bin\bash.exe, so copying that executable won't work. However, if a symlink is used to test paths with spaces, this executable will still work. PR-URL: #32129 Reviewed-By: Rod Vagg <rod@vagg.org> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Fixes: nodejs/build#1931 PR-URL: #32129 Reviewed-By: Rod Vagg <rod@vagg.org> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Richard Lau <riclau@uk.ibm.com>
see: #32848 |
Git for Windows includes `C:\Program Files\Git\bin\bash.exe`, which spawns ..\usr\bin\bash.exe, so copying that executable won't work. However, if a symlink is used to test paths with spaces, this executable will still work. PR-URL: nodejs#32129 Reviewed-By: Rod Vagg <rod@vagg.org> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Git for Windows includes `C:\Program Files\Git\bin\bash.exe`, which spawns ..\usr\bin\bash.exe, so copying that executable won't work. However, if a symlink is used to test paths with spaces, this executable will still work. PR-URL: #32129 Reviewed-By: Rod Vagg <rod@vagg.org> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Fixes: nodejs/build#1931 PR-URL: #32129 Reviewed-By: Rod Vagg <rod@vagg.org> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Git for Windows includes `C:\Program Files\Git\bin\bash.exe`, which spawns ..\usr\bin\bash.exe, so copying that executable won't work. However, if a symlink is used to test paths with spaces, this executable will still work. PR-URL: #32129 Reviewed-By: Rod Vagg <rod@vagg.org> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Richard Lau <riclau@uk.ibm.com>
This PR adds a GitHub action to build Node.js from a tarball.
Resolves: nodejs/build#1931
Checklist
make -j4 test
(UNIX), orvcbuild test
(Windows) passes