Tune makefile scripts (#10781)

* chore: replace node by `yarn node`

* chore: fix tsc command

* chore: use `yarn` to wrap node

* chore: supress yarn run output

* chore: disable silent mode for builtin yarn command
This commit is contained in:
Huáng Jùnliàng 2019-12-04 22:28:25 -05:00 committed by GitHub
parent e94da0dce5
commit 2b472912e4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 42 additions and 39 deletions

View File

@ -14,6 +14,9 @@ EMPTY :=
SPACE := $(EMPTY) $(EMPTY) SPACE := $(EMPTY) $(EMPTY)
COMMA_SEPARATED_SOURCES = $(subst $(SPACE),$(COMMA),$(SOURCES)) COMMA_SEPARATED_SOURCES = $(subst $(SPACE),$(COMMA),$(SOURCES))
YARN := yarn --silent
NODE := $(YARN) node
.PHONY: build build-dist watch lint fix clean test-clean test-only test test-ci publish bootstrap .PHONY: build build-dist watch lint fix clean test-clean test-only test test-ci publish bootstrap
@ -23,10 +26,10 @@ ifneq ("$(BABEL_COVERAGE)", "true")
endif endif
build-bundle: clean clean-lib build-bundle: clean clean-lib
yarn gulp build $(YARN) gulp build
$(MAKE) generate-standalone generate-type-helpers $(MAKE) generate-standalone generate-type-helpers
# call build again as the generated files might need to be compiled again. # call build again as the generated files might need to be compiled again.
yarn gulp build $(YARN) gulp build
$(MAKE) build-typings $(MAKE) build-typings
$(MAKE) build-dist $(MAKE) build-dist
@ -34,18 +37,18 @@ build-bundle-ci: bootstrap-only
$(MAKE) build-bundle $(MAKE) build-bundle
generate-standalone: generate-standalone:
node packages/babel-standalone/scripts/generate.js $(NODE) packages/babel-standalone/scripts/generate.js
generate-type-helpers: generate-type-helpers:
node packages/babel-types/scripts/generateTypeHelpers.js $(NODE) packages/babel-types/scripts/generateTypeHelpers.js
build-typings: build-flow-typings build-typescript-typings build-typings: build-flow-typings build-typescript-typings
build-flow-typings: build-flow-typings:
node packages/babel-types/scripts/generators/flow.js > packages/babel-types/lib/index.js.flow $(NODE) packages/babel-types/scripts/generators/flow.js > packages/babel-types/lib/index.js.flow
build-typescript-typings: build-typescript-typings:
node packages/babel-types/scripts/generators/typescript.js > packages/babel-types/lib/index.d.ts $(NODE) packages/babel-types/scripts/generators/typescript.js > packages/babel-types/lib/index.d.ts
build-standalone: build-babel-standalone build-preset-env-standalone build-standalone: build-babel-standalone build-preset-env-standalone
@ -53,16 +56,16 @@ build-standalone-ci: build-bundle-ci
$(MAKE) build-standalone $(MAKE) build-standalone
build-babel-standalone: build-babel-standalone:
yarn gulp build-babel-standalone $(YARN) gulp build-babel-standalone
build-preset-env-standalone: build-preset-env-standalone:
yarn gulp build-babel-preset-env-standalone $(YARN) gulp build-babel-preset-env-standalone
prepublish-build-standalone: prepublish-build-standalone:
BABEL_ENV=production IS_PUBLISH=true yarn gulp build-babel-standalone BABEL_ENV=production IS_PUBLISH=true $(YARN) gulp build-babel-standalone
prepublish-build-preset-env-standalone: prepublish-build-preset-env-standalone:
BABEL_ENV=production IS_PUBLISH=true yarn gulp build-babel-preset-env-standalone BABEL_ENV=production IS_PUBLISH=true $(YARN) gulp build-babel-preset-env-standalone
build-dist: build-polyfill-dist build-plugin-transform-runtime-dist build-dist: build-polyfill-dist build-plugin-transform-runtime-dist
@ -72,17 +75,17 @@ build-polyfill-dist:
build-plugin-transform-runtime-dist: build-plugin-transform-runtime-dist:
cd packages/babel-plugin-transform-runtime; \ cd packages/babel-plugin-transform-runtime; \
node scripts/build-dist.js $(NODE) scripts/build-dist.js
build-no-bundle: clean clean-lib build-no-bundle: clean clean-lib
BABEL_ENV=development yarn gulp build-no-bundle BABEL_ENV=development $(YARN) gulp build-no-bundle
# Ensure that build artifacts for types are created during local # Ensure that build artifacts for types are created during local
# development too. # development too.
$(MAKE) generate-type-helpers $(MAKE) generate-type-helpers
$(MAKE) build-typings $(MAKE) build-typings
watch: build-no-bundle watch: build-no-bundle
BABEL_ENV=development yarn gulp watch BABEL_ENV=development $(YARN) gulp watch
code-quality-ci: flowcheck-ci lint-ci code-quality-ci: flowcheck-ci lint-ci
@ -92,10 +95,10 @@ flowcheck-ci: bootstrap-flowcheck
code-quality: flow lint code-quality: flow lint
flow: flow:
yarn flow check --strip-root $(YARN) flow check --strip-root
bootstrap-flowcheck: bootstrap-only bootstrap-flowcheck: bootstrap-only
yarn gulp build-babel-types $(YARN) gulp build-babel-types
$(MAKE) build-typings $(MAKE) build-typings
lint-ci: lint-js-ci lint-ts-ci lint-ci: lint-js-ci lint-ts-ci
@ -109,7 +112,7 @@ lint-ts-ci: bootstrap-flowcheck
lint: lint-js lint-ts lint: lint-js lint-ts
lint-js: lint-js:
yarn eslint scripts $(SOURCES) '*.js' --format=codeframe $(YARN) eslint scripts $(SOURCES) '*.js' --format=codeframe
lint-ts: lint-ts:
scripts/lint-ts-typings.sh scripts/lint-ts-typings.sh
@ -117,10 +120,10 @@ lint-ts:
fix: fix-json fix-js fix: fix-json fix-js
fix-js: fix-js:
yarn eslint scripts $(SOURCES) '*.js' --format=codeframe --fix $(YARN) eslint scripts $(SOURCES) '*.js' --format=codeframe --fix
fix-json: fix-json:
yarn prettier "{$(COMMA_SEPARATED_SOURCES)}/*/test/fixtures/**/options.json" --write --loglevel warn $(YARN) prettier "{$(COMMA_SEPARATED_SOURCES)}/*/test/fixtures/**/options.json" --write --loglevel warn
clean: test-clean clean: test-clean
rm -f .npmrc rm -f .npmrc
@ -133,7 +136,7 @@ test-clean:
$(foreach source, $(SOURCES), \ $(foreach source, $(SOURCES), \
$(call clean-source-test, $(source))) $(call clean-source-test, $(source)))
# Does not work on Windows; use "yarn jest" instead # Does not work on Windows; use "$(YARN) jest" instead
test-only: test-only:
BABEL_ENV=test ./scripts/test.sh BABEL_ENV=test ./scripts/test.sh
$(MAKE) test-clean $(MAKE) test-clean
@ -143,7 +146,7 @@ test: lint test-only
test-ci: jest-ci test-ci: jest-ci
jest-ci: build-standalone-ci jest-ci: build-standalone-ci
BABEL_ENV=test yarn jest --maxWorkers=4 --ci BABEL_ENV=test $(YARN) jest --maxWorkers=4 --ci
$(MAKE) test-clean $(MAKE) test-clean
# Does not work on Windows # Does not work on Windows
@ -160,13 +163,13 @@ bootstrap-flow:
cd build/flow && git checkout $(FLOW_COMMIT) cd build/flow && git checkout $(FLOW_COMMIT)
test-flow: test-flow:
node scripts/parser-tests/flow $(NODE) scripts/parser-tests/flow
test-flow-ci: build-bundle-ci bootstrap-flow test-flow-ci: build-bundle-ci bootstrap-flow
$(MAKE) test-flow $(MAKE) test-flow
test-flow-update-whitelist: test-flow-update-whitelist:
node scripts/parser-tests/flow --update-whitelist $(NODE) scripts/parser-tests/flow --update-whitelist
bootstrap-typescript: bootstrap-typescript:
rm -rf ./build/typescript rm -rf ./build/typescript
@ -175,13 +178,13 @@ bootstrap-typescript:
cd build/typescript && git checkout $(TYPESCRIPT_COMMIT) cd build/typescript && git checkout $(TYPESCRIPT_COMMIT)
test-typescript: test-typescript:
node scripts/parser-tests/typescript $(NODE) scripts/parser-tests/typescript
test-typescript-ci: build-bundle-ci bootstrap-typescript test-typescript-ci: build-bundle-ci bootstrap-typescript
$(MAKE) test-typescript $(MAKE) test-typescript
test-typescript-update-whitelist: test-typescript-update-whitelist:
node scripts/parser-tests/typescript --update-whitelist $(NODE) scripts/parser-tests/typescript --update-whitelist
bootstrap-test262: bootstrap-test262:
rm -rf build/test262 rm -rf build/test262
@ -190,13 +193,13 @@ bootstrap-test262:
cd build/test262 && git checkout $(TEST262_COMMIT) cd build/test262 && git checkout $(TEST262_COMMIT)
test-test262: test-test262:
node scripts/parser-tests/test262 $(NODE) scripts/parser-tests/test262
test-test262-ci: build-bundle-ci bootstrap-test262 test-test262-ci: build-bundle-ci bootstrap-test262
$(MAKE) test-test262 $(MAKE) test-test262
test-test262-update-whitelist: test-test262-update-whitelist:
node scripts/parser-tests/test262 --update-whitelist $(NODE) scripts/parser-tests/test262 --update-whitelist
# Does not work on Windows # Does not work on Windows
clone-license: clone-license:
@ -213,11 +216,11 @@ prepublish:
new-version: new-version:
git pull --rebase git pull --rebase
yarn lerna version --force-publish=$(FORCE_PUBLISH) $(YARN) lerna version --force-publish=$(FORCE_PUBLISH)
# NOTE: Run make new-version first # NOTE: Run make new-version first
publish: prepublish publish: prepublish
yarn lerna publish from-git $(YARN) lerna publish from-git
$(MAKE) clean $(MAKE) clean
publish-ci: prepublish publish-ci: prepublish
@ -227,7 +230,7 @@ else
echo "Missing NPM_TOKEN env var" echo "Missing NPM_TOKEN env var"
exit 1 exit 1
endif endif
yarn lerna publish from-git --yes $(YARN) lerna publish from-git --yes
rm -f .npmrc rm -f .npmrc
$(MAKE) clean $(MAKE) clean
@ -237,8 +240,8 @@ ifneq ("$(I_AM_USING_VERDACCIO)", "I_AM_SURE")
exit 1 exit 1
endif endif
$(MAKE) prepublish-build $(MAKE) prepublish-build
yarn lerna version patch --force-publish=$(FORCE_PUBLISH) --no-push --yes --tag-version-prefix="version-e2e-test-" $(YARN) lerna version patch --force-publish=$(FORCE_PUBLISH) --no-push --yes --tag-version-prefix="version-e2e-test-"
yarn lerna publish from-git --registry http://localhost:4873 --yes --tag-version-prefix="version-e2e-test-" $(YARN) lerna publish from-git --registry http://localhost:4873 --yes --tag-version-prefix="version-e2e-test-"
$(MAKE) clean $(MAKE) clean
publish-eslint: publish-eslint:
@ -253,7 +256,7 @@ yarn-install: clean-all
lerna-bootstrap: yarn-install lerna-bootstrap: yarn-install
# todo: remove `-- -- --ignore-engines` in Babel 8 # todo: remove `-- -- --ignore-engines` in Babel 8
yarn lerna bootstrap -- -- --ignore-engines $(YARN) lerna bootstrap -- -- --ignore-engines
bootstrap: bootstrap-only bootstrap: bootstrap-only
$(MAKE) build $(MAKE) build
@ -300,7 +303,7 @@ define clean-source-all
endef endef
define set-json-field define set-json-field
node -e "\ $(NODE) -e "\
require('fs').writeFileSync('$1'.trim(), \ require('fs').writeFileSync('$1'.trim(), \
JSON.stringify({ ...require('$1'.trim()), $2: $3 }, null, 2) + '\\n' \ JSON.stringify({ ...require('$1'.trim()), $2: $3 }, null, 2) + '\\n' \
)" )"

View File

@ -1,7 +1,6 @@
#!/bin/bash #!/bin/bash
set -e set -e
node="node"
tsFlags="--strict" tsFlags="--strict"
$node ./node_modules/typescript/bin/tsc $tsFlags ./packages/babel-types/lib/index.d.ts yarn --silent tsc $tsFlags ./packages/babel-types/lib/index.d.ts

View File

@ -1,10 +1,11 @@
#!/bin/bash #!/bin/bash
set -e set -e
node="yarn --silent node"
jestArgs="--coverage" jestArgs="--coverage"
if [ -n "$CI" ]; then if [ -n "$CI" ]; then
jestArgs="${jestArgs} --maxWorkers=4 --ci" jestArgs="${jestArgs} --maxWorkers=4 --ci"
fi fi
node_modules/.bin/jest $jestArgs $node node_modules/.bin/jest $jestArgs

View File

@ -1,11 +1,11 @@
#!/bin/bash #!/bin/bash
set -e set -e
node="node" node="yarn --silent node"
jestArgs=() jestArgs=()
if [ "$TEST_DEBUG" ]; then if [ "$TEST_DEBUG" ]; then
node="node --inspect-brk" node="$node --inspect-brk"
jestArgs+=("--runInBand") jestArgs+=("--runInBand")
fi fi
@ -23,4 +23,4 @@ if [ -n "$TEST_ONLY" ]; then
jestArgs+=("(packages|codemods|eslint)/.*$TEST_ONLY.*/test") jestArgs+=("(packages|codemods|eslint)/.*$TEST_ONLY.*/test")
fi fi
$node node_modules/jest/bin/jest.js "${jestArgs[@]}" $node node_modules/.bin/jest "${jestArgs[@]}"