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
Use make -j
for parallel build
#10506
Conversation
aeb57f5
to
e0e0b76
Compare
.travis.yml
Outdated
# We test the latest version on circleci | ||
- node_js: "11" | ||
- node_js: "10" | ||
# Move `windows` build to be the fourth since it is slow |
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.
Also node 6 is slow. What do you think about this order?
- Lint
- Node 11 (fast, for quick feedback)
- Windows
- Node 6
- Node 8
- Node 10
- Flow
- Test262
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.
We can definitely give it a try. As long as Windows
or Node 6
is not the last I think they would not make significant difference.
How many concurrent jobs do we have on circle ci? If we have two concurrent jobs we can move windows testing to circle ci.
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.
4 I think
This PR introduces general improvements to current build scripts. The following jobs have seen significant time reduce
The following improvements are implemented:
gulp build-babel-types
formake lint
, so thatlint
does not have to build all babel packages.merge-stream
by refactoringbuildBabel
make code-quality
: an umbrella rule (with parallelism) ofmake lint && make flow
.make build-standalone
andmake build-preset-env-standalone
inlint
,parser-flow-test
andparser-test262-test
jobs.make bootstrap-only
andmake bootstrap-flow
as they requests different services and writes to different destinations.make bootstrap-only
andmake bootstrap-test262
for the same reason abovemake build-standalone
andmake build-preset-env-standalone
as they writes to different destinations.make
call to$(MAKE)
variableNote that now the lint job will run first since it is less expensive than unit testing.
Other thoughts: I did a rough measure on travis: it will take 2 min for machine setup + yarn install + lerna bootstrap, even with yarn cache. Could we merge
lint
,parser-flow-test
andparser-test262-test
into one job so that we can remove machine setup overhead?