Skip to content

Commit c9f33d4

Browse files
committed
Rebuild runtime artifacts for local test runs
1 parent 98a73d7 commit c9f33d4

File tree

2 files changed

+35
-2
lines changed

2 files changed

+35
-2
lines changed

scripts/run-tests-ios.js

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ const metadataGeneratorBuildStepScript = path.join(
4949
"bin",
5050
"build-step-metadata-generator.py"
5151
);
52+
const nativeScriptSourceRoot = path.join(__dirname, "../NativeScript");
5253

5354
const nativeScriptXCFramework = path.join(__dirname, "../dist", "NativeScript.xcframework");
5455
const tkLiveSyncXCFramework = path.join(__dirname, "../dist", "TKLiveSync.xcframework");
@@ -499,11 +500,21 @@ function buildTKLiveSyncSimulatorXCFramework() {
499500
}
500501

501502
function ensureIOSSimulatorArtifacts() {
503+
const sourceInputs = [
504+
nativeScriptSourceRoot,
505+
path.join(__dirname, "../build_nativescript.sh")
506+
];
507+
const sourceMtime = sourceInputs.reduce(
508+
(latest, inputPath) => Math.max(latest, getPathStats(inputPath).maxMtimeMs),
509+
0
510+
);
511+
const artifactMtime = getPathStats(nativeScriptXCFramework).maxMtimeMs;
502512
const hasNativeScriptSimulator = hasSimulatorSlice(nativeScriptXCFramework);
503513
const hasTKLiveSyncSimulator = hasSimulatorSlice(tkLiveSyncXCFramework);
514+
const needsNativeScriptRebuild = artifactMtime === 0 || artifactMtime < sourceMtime;
504515

505-
if (!hasNativeScriptSimulator) {
506-
console.log("NativeScript simulator artifacts missing in dist/NativeScript.xcframework; running build:ios-sim...");
516+
if (!hasNativeScriptSimulator || needsNativeScriptRebuild) {
517+
console.log("NativeScript simulator artifacts are missing or stale; running build:ios-sim...");
507518
runAndRequireSuccess("npm", ["run", "build:ios-sim"]);
508519
}
509520

scripts/run-tests-macos.js

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ const derivedDataPath = path.join(__dirname, "../build", "derived-data", "macos-
2525
const testRunnerAppSourcePath = path.join(__dirname, "../TestRunner", "app");
2626
const nativeScriptXCFramework = path.join(__dirname, "../dist", "NativeScript.xcframework");
2727
const tkLiveSyncXCFramework = path.join(__dirname, "../dist", "TKLiveSync.xcframework");
28+
const nativeScriptSourceRoot = path.join(__dirname, "../NativeScript");
2829
const metadataGeneratorRoot = path.join(__dirname, "../metadata-generator");
2930
const metadataGeneratorBinary = path.join(
3031
metadataGeneratorRoot,
@@ -461,6 +462,26 @@ function ensureMetadataGeneratorBuilt() {
461462
runBuildAndRequireSuccess("npm", ["run", "build-metagen"], commandTimeoutMs);
462463
}
463464

465+
function ensureMacOSRuntimeArtifactsBuilt() {
466+
const sourceInputs = [
467+
nativeScriptSourceRoot,
468+
path.join(__dirname, "../build_nativescript.sh")
469+
];
470+
471+
const sourceMtime = sourceInputs.reduce(
472+
(latest, inputPath) => Math.max(latest, getPathStats(inputPath).maxMtimeMs),
473+
0
474+
);
475+
const artifactMtime = getPathStats(nativeScriptXCFramework).maxMtimeMs;
476+
477+
if (artifactMtime > 0 && artifactMtime >= sourceMtime) {
478+
return;
479+
}
480+
481+
console.log("NativeScript macOS artifacts are missing or stale; running build:macos...");
482+
runBuildAndRequireSuccess("npm", ["run", "build:macos"], commandTimeoutMs);
483+
}
484+
464485
function buildTestRunnerApp() {
465486
const appBundlePath = path.join(
466487
derivedDataPath,
@@ -477,6 +498,7 @@ function buildTestRunnerApp() {
477498
}
478499

479500
ensureMetadataGeneratorBuilt();
501+
ensureMacOSRuntimeArtifactsBuilt();
480502

481503
const nativeFingerprint = createBuildFingerprint(macosBuildInputs);
482504
const existingBuildState = readBuildState();

0 commit comments

Comments
 (0)