Run example check in parallel with 5 at most (#7275)

This commit is contained in:
Bjorn Lu 2023-06-02 21:14:44 +08:00 committed by GitHub
parent 96ae37eb09
commit 6721b1f699
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 17 additions and 5 deletions

View file

@ -5306,6 +5306,9 @@ importers:
kleur:
specifier: ^4.1.4
version: 4.1.5
p-limit:
specifier: ^4.0.0
version: 4.0.0
svelte:
specifier: ^3.48.0
version: 3.58.0

View file

@ -13,14 +13,15 @@
"esbuild": "^0.17.12",
"globby": "^12.2.0",
"kleur": "^4.1.4",
"p-limit": "^4.0.0",
"svelte": "^3.48.0",
"tar": "^6.1.11"
},
"devDependencies": {
"@octokit/action": "^3.18.1",
"del": "^7.0.0",
"execa": "^6.1.0",
"esbuild-plugin-copy": "^2.0.2",
"execa": "^6.1.0",
"tsconfig-resolver": "^3.0.1"
}
}

View file

@ -3,6 +3,7 @@
import { spawn } from 'child_process';
import { readdirSync, readFileSync, writeFileSync } from 'fs';
import * as path from 'path';
import pLimit from 'p-limit';
import { tsconfigResolverSync } from 'tsconfig-resolver';
function checkExamples() {
@ -11,9 +12,13 @@ function checkExamples() {
console.log(`Running astro check on ${examples.length} examples...`);
Promise.all(
examples.map(
(example) =>
// Run astro check in parallel with 5 at most
const checkPromises = [];
const limit = pLimit(5);
for (const example of examples) {
checkPromises.push(
limit(() =>
new Promise((resolve) => {
const originalConfig = prepareExample(example.name);
let data = '';
@ -36,8 +41,11 @@ function checkExamples() {
resolve(code);
});
})
)
)
).then((codes) => {
}
Promise.all(checkPromises).then((codes) => {
if (codes.some((code) => code !== 0)) {
process.exit(1);
}