fix: move versioned folder check closer to the package task (#300685)

This commit is contained in:
Robo
2026-03-12 13:51:42 +09:00
committed by GitHub
parent ec9a529880
commit 85b156f976
2 changed files with 9 additions and 3 deletions

View File

@@ -43,8 +43,6 @@ const glob = promisify(globCallback);
const rcedit = promisify(rceditCallback);
const root = path.dirname(import.meta.dirname);
const commit = getVersion(root);
const useVersionedUpdate = process.platform === 'win32' && (product as typeof product & { win32VersionedUpdate?: boolean })?.win32VersionedUpdate;
const versionedResourcesFolder = useVersionedUpdate ? commit!.substring(0, 10) : '';
// Build
const vscodeEntryPoints = [
@@ -325,6 +323,7 @@ function packageTask(platform: string, arch: string, sourceFolderName: string, d
const task = () => {
const out = sourceFolderName;
const versionedResourcesFolder = util.getVersionedResourcesFolder(platform, commit!);
const checksums = computeChecksums(out, [
'vs/base/parts/sandbox/electron-browser/preload.js',
@@ -568,7 +567,7 @@ function packageTask(platform: string, arch: string, sourceFolderName: string, d
if (platform === 'win32') {
result = es.merge(result, gulp.src('resources/win32/bin/code.js', { base: 'resources/win32', allowEmpty: true }));
if (useVersionedUpdate) {
if (versionedResourcesFolder) {
result = es.merge(result, gulp.src('resources/win32/versioned/bin/code.cmd', { base: 'resources/win32/versioned' })
.pipe(replace('@@NAME@@', product.nameShort))
.pipe(replace('@@VERSIONFOLDER@@', versionedResourcesFolder))
@@ -646,6 +645,7 @@ function patchWin32DependenciesTask(destinationFolderName: string) {
const cwd = path.join(path.dirname(root), destinationFolderName);
return async () => {
const versionedResourcesFolder = util.getVersionedResourcesFolder('win32', commit!);
const deps = (await Promise.all([
glob('**/*.node', { cwd, ignore: 'extensions/node_modules/@parcel/watcher/**' }),
glob('**/rg.exe', { cwd }),

View File

@@ -381,6 +381,12 @@ export function getElectronVersion(): Record<string, string> {
return { electronVersion, msBuildId };
}
export function getVersionedResourcesFolder(platform: string, commit: string): string {
const productJson = JSON.parse(fs.readFileSync(path.join(root, 'product.json'), 'utf8'));
const useVersionedUpdate = platform === 'win32' && productJson.win32VersionedUpdate;
return useVersionedUpdate ? commit.substring(0, 10) : '';
}
export class VinylStat implements fs.Stats {
readonly dev: number;