Skip to content

Commit fc64bc6

Browse files
committed
improve rebuilding and logging
1 parent 35e7d80 commit fc64bc6

File tree

5 files changed

+55
-38
lines changed

5 files changed

+55
-38
lines changed

cli/rebuild-build-single.js

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,12 +47,12 @@ function deleteFrameworkFiles(frameworkPath, filesToDelete) {
4747
* @param {string} framework
4848
* @param {boolean} useCi
4949
*/
50-
function rebuildFramework(framework, useCi) {
50+
export function rebuildFramework(framework, useCi) {
5151
const components = framework.split("/");
5252

5353
if (components.length !== 2) {
5454
console.log(`ERROR: invalid name ${framework}. It must contain exactly one /.`);
55-
process.exit(1);
55+
return false
5656
}
5757
console.log("Rebuilding framework", framework);
5858
const [keyed, name] = components;
@@ -68,6 +68,7 @@ function rebuildFramework(framework, useCi) {
6868
runCommand(installCmd, frameworkPath);
6969
const buildCmd = "npm run build-prod";
7070
runCommand(buildCmd, frameworkPath);
71+
return true;
7172
}
7273

7374
/**
@@ -79,12 +80,15 @@ export function rebuildFrameworks(frameworks, useCi) {
7980

8081
if (frameworks.length === 0) {
8182
console.log("ERROR: Missing arguments. Command: rebuild keyed/framework1 non-keyed/framework2 ...");
82-
process.exit(1);
83+
return false;
8384
}
8485

8586
for (const framework of frameworks) {
86-
rebuildFramework(framework, useCi);
87+
if (!rebuildFramework(framework, useCi)) {
88+
return false;
89+
}
8790
}
8891

8992
console.log("rebuild-build-single.js finished: Build finsished sucessfully!");
93+
return true;
9094
}

cli/rebuild-check-single.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,9 @@ export function rebuildCheckSingle({ frameworks }) {
4545
console.log("rebuild-check-single.js finished");
4646
console.log("All checks are fine!");
4747
console.log(`======> Please rerun the benchmark: npm run bench ${frameworkNames}`);
48+
return true;
4849
} catch (error) {
4950
console.log(`rebuild-check-single failed for ${frameworks.join(" ")}`);
50-
process.exit(-1);
51+
return false;
5152
}
5253
}

cli/rebuild-single-framework.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,12 @@ export function rebuildSingleFramework({ frameworks, ci }) {
3030
}
3131

3232
try {
33-
rebuildFrameworks(frameworks, ci);
34-
35-
rebuildCheckSingle({ frameworks });
33+
if (!rebuildFrameworks(frameworks, ci)) {
34+
process.exit(1);
35+
}
36+
if (!rebuildCheckSingle({ frameworks })) {
37+
process.exit(1);
38+
}
3639
} catch (error) {
3740
console.log("ERROR", error);
3841
console.log(`ERROR: Rebuilding ${frameworks} was not successful`);

cli/update-frameworks.js

Lines changed: 37 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ import semver from 'semver'
77

88
import { getFrameworks } from "./helpers/frameworks.js";
99
import { rebuildSingleFramework } from "./rebuild-single-framework.js";
10+
import { rebuildFramework } from "./rebuild-build-single.js";
11+
import { rebuildCheckSingle } from "./rebuild-check-single.js";
1012

1113
/**
1214
* @typedef {Object} Framework
@@ -25,7 +27,8 @@ function performUpdate(frameworkPath, frameworkName) {
2527
cwd: frameworkPath,
2628
stdio: "inherit",
2729
});
28-
rebuildSingleFramework({frameworks: [frameworkName], ci: false});
30+
rebuildFramework(frameworkName, false);
31+
rebuildCheckSingle({frameworks: [frameworkName]});
2932
return `Sucessfully updated ${frameworkPath}`;
3033
} catch (error) {
3134
console.error(`Failed to update ${frameworkPath}. Error Code ${error.status} and message: ${error.message}`);
@@ -167,38 +170,44 @@ export function updateFrameworks({ type, debug }) {
167170
continue;
168171
}
169172

170-
const packageJSON = JSON.parse(fs.readFileSync(packageJSONPath, "utf8"));
171-
const mainPackages = packageJSON?.["js-framework-benchmark"]?.frameworkVersionFromPackage;
173+
try {
172174

173-
if (!mainPackages) {
174-
manualChecks.push(`${type}/${name} has no frameworkVersionFromPackage`);
175-
continue;
176-
}
175+
const packageJSON = JSON.parse(fs.readFileSync(packageJSONPath, "utf8"));
176+
const mainPackages = packageJSON?.["js-framework-benchmark"]?.frameworkVersionFromPackage;
177177

178-
if (DEBUG) {
179-
console.log(`Checking ${type}/${name} ${mainPackages}`);
180-
}
178+
if (!mainPackages) {
179+
manualChecks.push(`${type}/${name} has no frameworkVersionFromPackage`);
180+
continue;
181+
}
181182

182-
const packages = mainPackages.split(":");
183-
const update = shouldUpdate(packageJSONLockPath, packages);
183+
if (DEBUG) {
184+
console.log(`Checking ${type}/${name} ${mainPackages}`);
185+
}
186+
187+
const packages = mainPackages.split(":");
188+
const update = shouldUpdate(packageJSONLockPath, packages);
189+
190+
if (update) {
191+
log.push(performUpdate(frameworkPath, type+"/"+name));
192+
} else {
193+
const isPackageObsolete = packages.map((element) => maybeObsolete(element));
194+
const anyPackageObsolete = isPackageObsolete.some((packageFramework) => packageFramework.isObsolete);
184195

185-
if (update) {
186-
log.push(performUpdate(frameworkPath, type+"/"+name));
187-
} else {
188-
const isPackageObsolete = packages.map((element) => maybeObsolete(element));
189-
const anyPackageObsolete = isPackageObsolete.some((packageFramework) => packageFramework.isObsolete);
190-
191-
if (anyPackageObsolete) {
192-
const formattedPackages = isPackageObsolete
193-
.map((result) => `${result.packageName}:${result.lastUpdate}`)
194-
.join(", ");
195-
196-
console.log(`Last npm update for ${type}/${name} - ${mainPackages} is older than a year: ${formattedPackages}`);
197-
log.push(`Retire ${type}/${name} - ${mainPackages} is older than a year`);
198-
}
199-
else if (DEBUG) {
200-
log.push(`Nothing to do for ${type}/${name}`);
196+
if (anyPackageObsolete) {
197+
const formattedPackages = isPackageObsolete
198+
.map((result) => `${result.packageName}:${result.lastUpdate}`)
199+
.join(", ");
200+
201+
console.log(`Last npm update for ${type}/${name} - ${mainPackages} is older than a year: ${formattedPackages}`);
202+
log.push(`Retire ${type}/${name} - ${mainPackages} is older than a year`);
203+
}
204+
else if (DEBUG) {
205+
log.push(`Nothing to do for ${type}/${name}`);
206+
}
201207
}
208+
} catch (error) {
209+
console.error(`Failed to check ${type}/${name}. Error Code ${error.status} and message: ${error.message}`);
210+
log.push(`Error checking ${type}/${name}`);
202211
}
203212
}
204213

server/src/frameworks/frameworksServices.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ class PackageJSONProvider {
2727
if (error instanceof Error && (error as NodeJS.ErrnoException).code === "ENOENT") {
2828
throw new Error(`Package.json not found for ${framework}.`);
2929
}
30-
console.error(error);
30+
console.error(`error in ${keyedDir}/${framework} ${error}`);
3131
}
3232
}
3333

@@ -40,7 +40,7 @@ class PackageJSONProvider {
4040
if (isErrorWithCode(error) && error.code === "ENOENT") {
4141
throw new Error(`Package-lock.json not found for ${framework}.`);
4242
}
43-
console.error(error);
43+
console.error(`error in ${keyedDir}/${framework} ${error}`);
4444
}
4545
}
4646
}

0 commit comments

Comments
 (0)