-
Notifications
You must be signed in to change notification settings - Fork 29.8k
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
win, build: skip building cctest by default #21408
Conversation
@nodejs/platform-windows PTAL |
What's the logic behind building it for release builds? |
@seishun: so that CI (which uses something like |
@@ -147,6 +149,7 @@ if defined build_release ( | |||
set licensertf=1 | |||
set download_arg="--download=all" | |||
set i18n_arg=small-icu | |||
set cctest=1 |
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.
AFAIK on the release CI (where build_release
is used) tests aren't run. Anyone from @nodejs/releasers / @nodejs/build / @nodejs/platform-windows able to confirm?
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.
They are probably not, but I guess someone somewhere might depend on that. This change will not make big change in terms of building release binaries, it is mostly aimed to help out when developing Node.
CI is green, can I have +1? /cc @nodejs/platform-windows @nodejs/build-files |
66b12aa
to
1115174
Compare
ping? |
I am a bit confused by the title, does this patch skip building cctest by default in normal dev workflows? |
Yes. It will get built if you do |
@bzoz Oh right I understand now, this moves cctest out of |
ping @nodejs/platform-windows ? |
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.
Left two comments, otherwise looks good.
@bzoz ping? =) |
1115174
to
7535c04
Compare
Updated, but now it fails to build node from clean checkout:
|
if "%test_args%"=="" set target=rename_node_bin_win | ||
if defined cctest set target="Build" | ||
) | ||
if "%target%"=="rename_node_bin_win" if exist "%config%\cctest.exe" del "%config%\cctest.exe" |
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.
First time seeing this file, so may be completely wrong, but: shouldn't you actually also assign target
= node
here?
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.
@lundibundi not sure I understand your question, target
might have just been changed above. This uses rename_node_bin_win
instead of just node
to be compatible with vcbuild dll
, but should be the same otherwise.
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.
Yeah rename_node_bin_win
is an old kludge.
Lines 834 to 842 in d1a55d3
{ | |
# When using shared lib to build executable in Windows, in order to avoid | |
# filename collision, the executable name is node-win.exe. Need to rename | |
# it back to node.exe | |
'target_name': 'rename_node_bin_win', | |
'type': 'none', | |
'dependencies': [ | |
'<(node_core_target_name)', | |
], |
I have a refactor for this in the pipeline.
ping @bzoz. |
7535c04
to
4167341
Compare
Updated, PTAL. It looks like the linking issue got resolved, the codebase builds correctly after clean checkout. |
Resumed with fixed vcbuild: https://ci.nodejs.org/job/node-test-pull-request/18138/ |
vcbuild.bat
Outdated
if "%target%"=="Build" if defined no_cctest set target=node | ||
if "%target%"=="Build" ( | ||
if defined no_cctest set target=rename_node_bin_win | ||
if "%test_args%"=="" set target=rename_node_bin_win |
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.
if "%test_args%"=="" set target=rename_node_bin_win | |
if "%test_args%"=="" set target=rename_node_bin_win |
nit: trailing whitespace
set openssl_no_asm= | ||
set doc= | ||
|
||
:next-arg | ||
if "%1"=="" goto args-done | ||
if /i "%1"=="debug" set config=Debug&goto arg-ok | ||
if /i "%1"=="release" set config=Release&set ltcg=1&set "pch="&goto arg-ok | ||
if /i "%1"=="release" set config=Release&set ltcg=1&set "pch="&set cctest=1&goto arg-ok |
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.
maybe we should create a ci
target, since the "real" release doesn't need cctest
either.
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, this should converge to be like the Makefile, including the distinction between compiling and js-only targets. Currently cctest
runs and the addons are compiled everywhere, unnecessarily.
vcbuild will build cctest only if it will be run, or for CI and release builds
82e34f3
to
c525367
Compare
Fixed whitespace and reabased, PTAL |
looks like Travis is having issues, cc @nodejs/build-infra ? |
https://travis-ci.com/nodejs/node/jobs/160294272
@bzoz Ignore the error for now, it's clear that your commit message is fine. We only get 60 requests per hour unauthenticated.. I suppose we'll need to get authentication into that script. @richardlau @addaleax thoughts on where we should log an issue about this? Is it something we should take on in Build since it's going to require credentials and inclusion of secrets? |
Oh, and we're sharing rate limiting with everyone else using these Travis hosts, so we're bound to run into this with some regularity. I'm surprised it hasn't come up before; maybe it has? |
Yes, it has. I've opened #24567 to track separately. |
Landed in 2c473d6 |
vcbuild will build cctest only if it will be run, or for CI and release builds PR-URL: #21408 Reviewed-By: João Reis <[email protected]> Reviewed-By: Refael Ackermann <[email protected]>
vcbuild will build cctest only if it will be run, or for CI and release builds PR-URL: #21408 Reviewed-By: João Reis <[email protected]> Reviewed-By: Refael Ackermann <[email protected]>
vcbuild will build cctest only if it will be run, or for CI and release builds PR-URL: nodejs#21408 Reviewed-By: João Reis <[email protected]> Reviewed-By: Refael Ackermann <[email protected]>
vcbuild will build cctest only if it will be run, or for CI and release builds PR-URL: #21408 Reviewed-By: João Reis <[email protected]> Reviewed-By: Refael Ackermann <[email protected]>
vcbuild will build cctest only if it will be run, or for CI and release builds PR-URL: #21408 Reviewed-By: João Reis <[email protected]> Reviewed-By: Refael Ackermann <[email protected]>
vcbuild
will buildcctest
only if it will be run, or for CI and release builds.Checklist
make -j4 test
(UNIX), orvcbuild test
(Windows) passes/cc @nodejs/build-files @nodejs/platform-windows