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

Move code of the icfy-analyze CircleCI task to a NPM script #39502

Merged
merged 2 commits into from
Feb 18, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 1 addition & 5 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -475,11 +475,7 @@ jobs:
environment:
NODE_ENV: 'production'
BROWSERSLIST_ENV: 'defaults'
command: |
set +o errexit
npm run preanalyze-bundles
node --max-old-space-size=4096 bin/icfy-analyze.js
mv client/stats.json client/chart.json "$CIRCLE_ARTIFACTS/icfy"
command: npm run analyze-icfy
- save_cache: *save-terser-cache
- save_cache: *save-babel-client-cache
- store-artifacts-and-test-results
Expand Down
17 changes: 9 additions & 8 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -59,8 +59,8 @@
"npm": "^6.12.1"
},
"scripts": {
"preanalyze-bundles": "cross-env-shell NODE_ENV=production CALYPSO_ENV=production EMIT_STATS=true PROGRESS=true npm run -s build-client-evergreen",
"analyze-bundles": "webpack-bundle-analyzer client/stats.json public/evergreen -h 127.0.0.1 -p 9898 -s gzip",
"analyze-bundles": "npm run build-client-stats && webpack-bundle-analyzer client/stats.json public/evergreen -h 127.0.0.1 -p 9898 -s gzip",
"analyze-icfy": "npm run build-client-stats && node --max-old-space-size=4096 bin/icfy-analyze.js && mv client/stats.json client/chart.json \"$CIRCLE_ARTIFACTS/icfy\"",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If there's an issue with cross-env-shell that results in a 0 exist status when we expect non-0, this type of chaining will fail to capture that, won't it?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, that's true. I discovered the cross-env issue only after migrating the icfy-analyze task to a NPM script and debugging it.

In other words, I don't expect this PR to solve any of the problems, but the refactoring still seems like a good idea to me 🙂

"autoprefixer": "postcss -u autoprefixer -r --no-map --config packages/calypso-build/postcss.config.js",
"postcss": "postcss -r --config packages/calypso-build/postcss.config.js",
"prebuild": "npm run install-if-deps-outdated",
Expand All @@ -72,15 +72,16 @@
"build-docker": "node bin/build-docker.js",
"build-static": "npx ncp static public",
"prebuild-server": "mkdirp build",
"build-server": "cross-env-shell BROWSERSLIST_ENV=server webpack --config client/webpack.config.node.js --display errors-only",
"build-server": "BROWSERSLIST_ENV=server webpack --config client/webpack.config.node.js --display errors-only",
"build-client": "npm run build-client-evergreen",
"build-client-do": "node ${NODE_ARGS:---max_old_space_size=8192} ./node_modules/webpack/bin/webpack.js --config client/webpack.config.js --display errors-only",
"build-client-fallback": "cross-env-shell BROWSERSLIST_ENV=defaults npm run build-client-do",
"build-client-fallback": "BROWSERSLIST_ENV=defaults npm run build-client-do",
"postbuild-client-fallback": "npm run validate-fallback-es5",
"build-client-evergreen": "cross-env-shell BROWSERSLIST_ENV=evergreen npm run build-client-do",
"build-client-evergreen": "BROWSERSLIST_ENV=evergreen npm run build-client-do",
"build-client-both": "CONCURRENT_BUILDS=2 concurrently -c cyan -n \"fallback ,evergreen\" \"npm run build-client-fallback\" \"npm run build-client-evergreen\"",
"build-client-if-prod": "node -e \"process.env.CALYPSO_ENV === 'production' && process.exit(1)\" || npm run build-client-both",
"build-client-if-desktop": "node -e \"(process.env.CALYPSO_ENV === 'desktop' || process.env.CALYPSO_ENV === 'desktop-development') && process.exit(1)\" || npm run build-client-fallback",
"build-client-stats": "NODE_ENV=production CALYPSO_ENV=production EMIT_STATS=true PROGRESS=true npm run build-client-evergreen",
"build-packages": "npx lerna run prepare --stream",
"build-packages:watch": "chokidar \"./packages/**\" -i \"./packages/*/dist/**\" -i \"**.css\" -i \"**.d.ts\" --debounce 1000 --throttle 10000 -c \"npm run build-packages\"",
"clean": "npm run clean:packages && npm run clean:build && npm run clean:public",
Expand All @@ -106,8 +107,8 @@
"poststart": "run-p -s start-build-if-web start-build-if-desktop build-packages:watch",
"reformat-files": "./node_modules/.bin/prettier --ignore-path .eslintignore --write \"**/*.{js,jsx,json,ts,tsx}\"",
"start-build-do": "node ${NODE_ARGS:---max_old_space_size=8192} build/bundle.js",
"start-build-fallback": "cross-env-shell BROWSERSLIST_ENV=defaults npm run start-build-do",
"start-build-evergreen": "cross-env-shell BROWSERSLIST_ENV=evergreen npm run start-build-do",
"start-build-fallback": "BROWSERSLIST_ENV=defaults npm run start-build-do",
"start-build-evergreen": "BROWSERSLIST_ENV=evergreen npm run start-build-do",
"start-build-if-desktop": "node -e \"(process.env.CALYPSO_ENV === 'desktop' || process.env.CALYPSO_ENV === 'desktop-development') && process.exit(1)\" || npm run start-build-fallback",
"start-build-if-web": "node -e \"(process.env.CALYPSO_ENV !== 'desktop' && process.env.CALYPSO_ENV !== 'desktop-development') && process.exit(1)\" || npm run start-build-evergreen",
"pretest": "npm run install-if-deps-outdated",
Expand All @@ -131,7 +132,7 @@
"typecheck": "tsc --noEmit",
"update-deps": "npx rimraf package-lock.json && npm run distclean && PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true npm i && replace --silent 'http://' 'https://' . --recursive --include='package-lock.json' && touch -m node_modules",
"validate-fallback-es5": "npx eslint --parser-options=ecmaVersion:5 --no-eslintrc --no-ignore ./public/fallback/*.js",
"prewhybundled": "cross-env-shell NODE_ENV=production CALYPSO_ENV=production EMIT_STATS=withreasons npm run -s build-client-evergreen",
"prewhybundled": "NODE_ENV=production CALYPSO_ENV=production EMIT_STATS=withreasons npm run -s build-client-evergreen",
"whybundled": "whybundled client/stats.json",
"composite-checkout-demo": "webpack-dev-server --config ./packages/composite-checkout/webpack.config.demo.js --mode development",
"components:storybook:start": "start-storybook -c packages/components/.storybook",
Expand Down