Skip to content

Commit 8a07ad3

Browse files
authored
build: use parallelization depending on CPU cores (#1148)
Refs #1147
1 parent f954835 commit 8a07ad3

File tree

18 files changed

+37
-13
lines changed

18 files changed

+37
-13
lines changed

.env

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
CPU_CORES=2

.github/workflows/build.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@ on:
99
pull_request:
1010
branches: [ main ]
1111

12+
env:
13+
CPU_CORES: 2
14+
1215
jobs:
1316
lint:
1417
runs-on: ubuntu-latest

.github/workflows/nightly-build.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@ on:
55
schedule:
66
- cron: '30 4 * * *'
77

8+
env:
9+
CPU_CORES: 2
10+
811
jobs:
912
nightly-build:
1013
runs-on: ubuntu-latest

.github/workflows/release.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ on:
44
branches:
55
- main
66

7+
env:
8+
CPU_CORES: 2
9+
710
jobs:
811
release:
912
name: Release

README.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,20 @@ Run the following commands to setup the repository for local development:
114114
115115
### npm scripts
116116

117+
Some npm scripts run in parallel. Default maximum parallelization is set `2`. This is due to the fact
118+
that our `CI` runs on GitHub Actions which uses GitHub hosted runners with [2-core CPUs](https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners#supported-runners-and-hardware-resources).
119+
If you have computer with more than 2 CPU cores, you can speed running npm scripts by
120+
creating an environment variable called `CPU_CORES` and assign it a number of your CPU cores.
121+
122+
Assuming 4 CPU cores are available:
123+
124+
```sh
125+
$ export CPU_CORES=4
126+
$ npm run build
127+
```
128+
129+
`build` scripts now runs much faster than before.
130+
117131
**Build artifacts**
118132

119133
```sh

packages/apidom-ast/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
"unpkg": "dist/apidom.ast.min.js",
1212
"types": "types/dist.d.ts",
1313
"scripts": {
14-
"build": "npm run clean && npm run typescript:declaration && npm run build:es && npm run build:cjs && npm run build:umd:browser",
14+
"build": "npm run clean && run-p --max-parallel ${CPU_CORES:-2} typescript:declaration build:es build:cjs build:umd:browser",
1515
"build:es": "cross-env BABEL_ENV=es babel src --out-dir es --extensions '.ts' --root-mode 'upward'",
1616
"build:cjs": "cross-env BABEL_ENV=cjs babel src --out-dir cjs --extensions '.ts' --root-mode 'upward'",
1717
"build:umd:browser": "cross-env BABEL_ENV=browser webpack --config config/webpack/browser.config.js --progress",

packages/apidom-core/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
"unpkg": "dist/apidom.browser.min.js",
1212
"types": "types/dist.d.ts",
1313
"scripts": {
14-
"build": "npm run clean && npm run typescript:declaration && npm run build:es && npm run build:cjs && npm run build:umd:browser",
14+
"build": "npm run clean && run-p --max-parallel ${CPU_CORES:-2} typescript:declaration build:es build:cjs build:umd:browser",
1515
"build:es": "cross-env BABEL_ENV=es babel src --out-dir es --extensions '.ts' --root-mode 'upward'",
1616
"build:cjs": "cross-env BABEL_ENV=cjs babel src --out-dir cjs --extensions '.ts' --root-mode 'upward'",
1717
"build:umd:browser": "cross-env BABEL_ENV=browser webpack --config config/webpack/browser.config.js --progress",

packages/apidom-ls/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
"unpkg": "dist/apidom-ls.browser.min.js",
2222
"types": "types/dist.d.ts",
2323
"scripts": {
24-
"build": "npm run clean && npm run typescript:declaration && npm run build:es && npm run build:cjs && npm run build:umd:browser",
24+
"build": "npm run clean && run-p --max-parallel ${CPU_CORES:-2} typescript:declaration build:es build:cjs build:umd:browser",
2525
"build:es": "cross-env BABEL_ENV=es babel src --out-dir es --extensions '.ts' --root-mode 'upward' && copyfiles -u 1 ./src/**/*.json es",
2626
"build:cjs": "cross-env BABEL_ENV=cjs babel src --out-dir cjs --extensions '.ts' --root-mode 'upward' && copyfiles -u 1 ./src/**/*.json cjs",
2727
"build:umd:browser": "cross-env BABEL_ENV=browser webpack --config config/webpack/browser.config.js",

packages/apidom-ns-asyncapi-2/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
"unpkg": "dist/apidom-ns-openapi3-1.browser.min.js",
1212
"types": "types/dist.d.ts",
1313
"scripts": {
14-
"build": "npm run clean && npm run typescript:declaration && npm run build:es && npm run build:cjs && npm run build:umd:browser",
14+
"build": "npm run clean && run-p --max-parallel ${CPU_CORES:-2} typescript:declaration build:es build:cjs build:umd:browser",
1515
"build:es": "cross-env BABEL_ENV=es babel src --out-dir es --extensions '.ts' --root-mode 'upward'",
1616
"build:cjs": "cross-env BABEL_ENV=cjs babel src --out-dir cjs --extensions '.ts' --root-mode 'upward'",
1717
"build:umd:browser": "cross-env BABEL_ENV=browser webpack --config config/webpack/browser.config.js --progress",

packages/apidom-ns-openapi-3-1/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
"unpkg": "dist/apidom-ns-openapi-3-1.browser.min.js",
1212
"types": "types/dist.d.ts",
1313
"scripts": {
14-
"build": "npm run clean && npm run typescript:declaration && npm run build:es && npm run build:cjs && npm run build:umd:browser",
14+
"build": "npm run clean && run-p --max-parallel ${CPU_CORES:-2} typescript:declaration build:es build:cjs build:umd:browser",
1515
"build:es": "cross-env BABEL_ENV=es babel src --out-dir es --extensions '.ts' --root-mode 'upward'",
1616
"build:cjs": "cross-env BABEL_ENV=cjs babel src --out-dir cjs --extensions '.ts' --root-mode 'upward'",
1717
"build:umd:browser": "cross-env BABEL_ENV=browser webpack --config config/webpack/browser.config.js --progress",

packages/apidom-parser-adapter-asyncapi-json-2/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
"unpkg": "dist/apidom-parser-apdater-asyncapi-json-2.browser.min.js",
1212
"types": "types/adapter.d.ts",
1313
"scripts": {
14-
"build": "npm run clean && npm run typescript:declaration && npm run build:es && npm run build:cjs && npm run build:umd:browser",
14+
"build": "npm run clean && run-p --max-parallel ${CPU_CORES:-2} typescript:declaration build:es build:cjs build:umd:browser",
1515
"build:es": "cross-env BABEL_ENV=es babel src --out-dir es --extensions '.ts' --root-mode 'upward'",
1616
"build:cjs": "cross-env BABEL_ENV=cjs babel src --out-dir cjs --extensions '.ts' --root-mode 'upward'",
1717
"build:umd:browser": "cross-env BABEL_ENV=browser webpack --config config/webpack/browser.config.js --progress",

packages/apidom-parser-adapter-asyncapi-yaml-2/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
"unpkg": "dist/apidom-parser-apdater-asyncapi-yaml-2.browser.min.js",
1212
"types": "types/adapter.d.ts",
1313
"scripts": {
14-
"build": "npm run clean && npm run typescript:declaration && npm run build:es && npm run build:cjs && npm run build:umd:browser",
14+
"build": "npm run clean && run-p --max-parallel ${CPU_CORES:-2} typescript:declaration build:es build:cjs build:umd:browser",
1515
"build:es": "cross-env BABEL_ENV=es babel src --out-dir es --extensions '.ts' --root-mode 'upward'",
1616
"build:cjs": "cross-env BABEL_ENV=cjs babel src --out-dir cjs --extensions '.ts' --root-mode 'upward'",
1717
"build:umd:browser": "cross-env BABEL_ENV=browser webpack --config config/webpack/browser.config.js --progress",

packages/apidom-parser-adapter-json/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
"unpkg": "dist/apidom-parser-apdater-json.browser.min.js",
1313
"types": "types/dist.d.ts",
1414
"scripts": {
15-
"build": "npm run clean && npm run typescript:declaration && npm run build:es && npm run build:cjs && npm run build:umd:browser",
15+
"build": "npm run clean && run-p --max-parallel ${CPU_CORES:-2} typescript:declaration build:es build:cjs build:umd:browser",
1616
"build:es": "npm run build:wasm && npm run build:wasm:copy && cross-env BABEL_ENV=es babel src --out-dir es --extensions '.ts' --root-mode 'upward'",
1717
"build:cjs": "npm run build:wasm && npm run build:wasm:copy && cross-env BABEL_ENV=cjs babel src --out-dir cjs --extensions '.ts' --root-mode 'upward'",
1818
"build:umd:browser": "npm run build:wasm && npm run build:wasm:copy && cross-env BABEL_ENV=browser webpack --config config/webpack/browser.config.js --progress",

packages/apidom-parser-adapter-openapi-json-3-1/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
"unpkg": "dist/apidom-parser-apdater-openapi-json-3-1.browser.min.js",
1212
"types": "types/adapter.d.ts",
1313
"scripts": {
14-
"build": "npm run clean && npm run typescript:declaration && npm run build:es && npm run build:cjs && npm run build:umd:browser",
14+
"build": "npm run clean && run-p --max-parallel ${CPU_CORES:-2} typescript:declaration build:es build:cjs build:umd:browser",
1515
"build:es": "cross-env BABEL_ENV=es babel src --out-dir es --extensions '.ts' --root-mode 'upward'",
1616
"build:cjs": "cross-env BABEL_ENV=cjs babel src --out-dir cjs --extensions '.ts' --root-mode 'upward'",
1717
"build:umd:browser": "cross-env BABEL_ENV=browser webpack --config config/webpack/browser.config.js --progress",

packages/apidom-parser-adapter-openapi-yaml-3-1/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
"unpkg": "dist/apidom-parser-apdater-openapi-yaml-3-1.browser.min.js",
1212
"types": "types/adapter.d.ts",
1313
"scripts": {
14-
"build": "npm run clean && npm run typescript:declaration && npm run build:es && npm run build:cjs && npm run build:umd:browser",
14+
"build": "npm run clean && run-p --max-parallel ${CPU_CORES:-2} typescript:declaration build:es build:cjs build:umd:browser",
1515
"build:es": "cross-env BABEL_ENV=es babel src --out-dir es --extensions '.ts' --root-mode 'upward'",
1616
"build:cjs": "cross-env BABEL_ENV=cjs babel src --out-dir cjs --extensions '.ts' --root-mode 'upward'",
1717
"build:umd:browser": "cross-env BABEL_ENV=browser webpack --config config/webpack/browser.config.js --progress",

packages/apidom-parser-adapter-yaml-1-2/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
"unpkg": "dist/apidom-parser-apdater-yaml-1-2.browser.min.js",
1313
"types": "types/dist.d.ts",
1414
"scripts": {
15-
"build": "npm run clean && npm run typescript:declaration && npm run build:es && npm run build:cjs && npm run build:umd:browser",
15+
"build": "npm run clean && run-p --max-parallel ${CPU_CORES:-2} typescript:declaration build:es build:cjs build:umd:browser",
1616
"build:es": "npm run build:wasm && npm run build:wasm:copy && cross-env BABEL_ENV=es babel src --out-dir es --extensions '.ts' --root-mode 'upward'",
1717
"build:cjs": "npm run build:wasm && npm run build:wasm:copy && cross-env BABEL_ENV=cjs babel src --out-dir cjs --extensions '.ts' --root-mode 'upward'",
1818
"build:umd:browser": "npm run build:wasm && npm run build:wasm:copy && cross-env BABEL_ENV=browser webpack --config config/webpack/browser.config.js --progress",

packages/apidom-parser/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
"unpkg": "dist/apidom-parser.browser.min.js",
1212
"types": "types/parser.d.ts",
1313
"scripts": {
14-
"build": "npm run clean && npm run typescript:declaration && npm run build:es && npm run build:cjs && npm run build:umd:browser",
14+
"build": "npm run clean && run-p --max-parallel ${CPU_CORES:-2} typescript:declaration build:es build:cjs build:umd:browser",
1515
"build:es": "cross-env BABEL_ENV=es babel src --out-dir es --extensions '.ts' --root-mode 'upward'",
1616
"build:cjs": "cross-env BABEL_ENV=cjs babel src --out-dir cjs --extensions '.ts' --root-mode 'upward'",
1717
"build:umd:browser": "cross-env BABEL_ENV=browser webpack --config config/webpack/browser.config.js --progress",

packages/apidom-reference/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
},
1717
"unpkg": "dist/apidom-reference.browser.min.js",
1818
"scripts": {
19-
"build": "npm run clean && npm run typescript:declaration && npm run build:es && npm run build:cjs && npm run build:umd:browser",
19+
"build": "npm run clean && run-p --max-parallel ${CPU_CORES:-2} typescript:declaration build:es build:cjs build:umd:browser",
2020
"build:es": "cross-env BABEL_ENV=es babel src --out-dir es --extensions '.ts' --root-mode 'upward'",
2121
"build:cjs": "cross-env BABEL_ENV=cjs babel src --out-dir cjs --extensions '.ts' --root-mode 'upward'",
2222
"build:umd:browser": "cross-env BABEL_ENV=browser webpack --config config/webpack/browser.config.js --progress",

0 commit comments

Comments
 (0)