Merge pull request #294631 from microsoft/joh/successive-shrimp

Fix date reading logic in build scripts to handle missing files gracefully
This commit is contained in:
Johannes Rieken
2026-02-12 11:04:10 +01:00
committed by GitHub
3 changed files with 11 additions and 3 deletions

View File

@@ -321,7 +321,7 @@ function packageTask(type: string, platform: string, arch: string, sourceFolderN
let productJsonContents = '';
const productJsonStream = gulp.src(['product.json'], { base: '.' })
.pipe(jsonEditor({ commit, date: readISODate('out-build'), version }))
.pipe(jsonEditor({ commit, date: readISODate(sourceFolderName), version }))
.pipe(es.through(function (file) {
productJsonContents = file.contents.toString();
this.emit('data', file);

View File

@@ -371,7 +371,7 @@ function packageTask(platform: string, arch: string, sourceFolderName: string, d
let productJsonContents: string;
const productJsonStream = gulp.src(['product.json'], { base: '.' })
.pipe(jsonEditor({ commit, date: readISODate('out-build'), checksums, version }))
.pipe(jsonEditor({ commit, date: readISODate(out), checksums, version }))
.pipe(es.through(function (file) {
productJsonContents = file.contents.toString();
this.emit('data', file);

View File

@@ -29,5 +29,13 @@ export function writeISODate(outDir: string) {
export function readISODate(outDir: string): string {
const outDirectory = path.join(root, outDir);
return fs.readFileSync(path.join(outDirectory, 'date'), 'utf8');
try {
return fs.readFileSync(path.join(outDirectory, 'date'), 'utf8');
} catch {
// Fallback to out-build (old build writes date there, esbuild writes to bundle output dir)
if (outDir !== 'out-build') {
return fs.readFileSync(path.join(root, 'out-build', 'date'), 'utf8');
}
throw new Error(`Could not find date file in ${outDir}`);
}
}