Skip to content

Commit 84bebd0

Browse files
committed
Final adoption (microsoft#67863)
1 parent c064781 commit 84bebd0

6 files changed

Lines changed: 164 additions & 117 deletions

File tree

build/gulpfile.editor.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -370,7 +370,12 @@ function createTscCompileTask(watch) {
370370
};
371371
}
372372

373-
gulp.task('monaco-typecheck-watch', createTscCompileTask(true));
374-
gulp.task('monaco-typecheck', createTscCompileTask(false));
373+
const monacoTypecheckWatchTask = createTscCompileTask(true);
374+
monacoTypecheckWatchTask.displayName = 'monaco-typecheck-watch';
375+
exports.monacoTypecheckWatchTask = monacoTypecheckWatchTask;
376+
377+
const monacoTypecheckTask = createTscCompileTask(false);
378+
monacoTypecheckTask.displayName = 'monaco-typecheck';
379+
exports.monacoTypecheckTask = monacoTypecheckTask;
375380

376381
//#endregion

build/gulpfile.extensions.js

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -141,10 +141,16 @@ const tasks = compilations.map(function (tsconfigFile) {
141141
};
142142
});
143143

144-
gulp.task('compile-extensions', util.task.parallel(...tasks.map(t => t.compileTask)));
145-
gulp.task('watch-extensions', util.task.parallel(...tasks.map(t => t.watchTask)));
144+
const compileExtensionsTask = util.task.parallel(...tasks.map(t => t.compileTask));
145+
compileExtensionsTask.displayName = 'compile-extensions';
146+
gulp.task(compileExtensionsTask.displayName, compileExtensionsTask);
147+
exports.compileExtensionsTask = compileExtensionsTask;
148+
149+
const watchExtensionsTask = util.task.parallel(...tasks.map(t => t.watchTask));
150+
watchExtensionsTask.displayName = 'watch-extensions';
151+
gulp.task(watchExtensionsTask.displayName, watchExtensionsTask);
152+
exports.watchExtensionsTask = watchExtensionsTask;
146153

147154
const compileExtensionsBuildTask = util.task.parallel(...tasks.map(t => t.compileBuildTask));
148155
compileExtensionsBuildTask.displayName = 'compile-extensions-build';
149-
150156
exports.compileExtensionsBuildTask = compileExtensionsBuildTask;

build/gulpfile.vscode.js

Lines changed: 91 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,6 @@ const optimizeVSCodeTask = util.task.series(
104104
})
105105
);
106106
optimizeVSCodeTask.displayName = 'optimize-vscode';
107-
gulp.task(optimizeVSCodeTask.displayName, optimizeVSCodeTask);
108107

109108

110109
const optimizeIndexJSTask = util.task.series(
@@ -492,30 +491,40 @@ const apiHostname = process.env.TRANSIFEX_API_URL;
492491
const apiName = process.env.TRANSIFEX_API_NAME;
493492
const apiToken = process.env.TRANSIFEX_API_TOKEN;
494493

495-
gulp.task('vscode-translations-push', ['optimize-vscode'], function () {
496-
const pathToMetadata = './out-vscode/nls.metadata.json';
497-
const pathToExtensions = './extensions/*';
498-
const pathToSetup = 'build/win32/**/{Default.isl,messages.en.isl}';
499-
500-
return es.merge(
501-
gulp.src(pathToMetadata).pipe(i18n.createXlfFilesForCoreBundle()),
502-
gulp.src(pathToSetup).pipe(i18n.createXlfFilesForIsl()),
503-
gulp.src(pathToExtensions).pipe(i18n.createXlfFilesForExtensions())
504-
).pipe(i18n.findObsoleteResources(apiHostname, apiName, apiToken)
505-
).pipe(i18n.pushXlfFiles(apiHostname, apiName, apiToken));
506-
});
507-
508-
gulp.task('vscode-translations-export', ['optimize-vscode'], function () {
509-
const pathToMetadata = './out-vscode/nls.metadata.json';
510-
const pathToExtensions = './extensions/*';
511-
const pathToSetup = 'build/win32/**/{Default.isl,messages.en.isl}';
494+
gulp.task('vscode-translations-push',
495+
util.task.series(
496+
optimizeVSCodeTask,
497+
function () {
498+
const pathToMetadata = './out-vscode/nls.metadata.json';
499+
const pathToExtensions = './extensions/*';
500+
const pathToSetup = 'build/win32/**/{Default.isl,messages.en.isl}';
501+
502+
return es.merge(
503+
gulp.src(pathToMetadata).pipe(i18n.createXlfFilesForCoreBundle()),
504+
gulp.src(pathToSetup).pipe(i18n.createXlfFilesForIsl()),
505+
gulp.src(pathToExtensions).pipe(i18n.createXlfFilesForExtensions())
506+
).pipe(i18n.findObsoleteResources(apiHostname, apiName, apiToken)
507+
).pipe(i18n.pushXlfFiles(apiHostname, apiName, apiToken));
508+
}
509+
)
510+
);
512511

513-
return es.merge(
514-
gulp.src(pathToMetadata).pipe(i18n.createXlfFilesForCoreBundle()),
515-
gulp.src(pathToSetup).pipe(i18n.createXlfFilesForIsl()),
516-
gulp.src(pathToExtensions).pipe(i18n.createXlfFilesForExtensions())
517-
).pipe(vfs.dest('../vscode-translations-export'));
518-
});
512+
gulp.task('vscode-translations-export',
513+
util.task.series(
514+
optimizeVSCodeTask,
515+
function () {
516+
const pathToMetadata = './out-vscode/nls.metadata.json';
517+
const pathToExtensions = './extensions/*';
518+
const pathToSetup = 'build/win32/**/{Default.isl,messages.en.isl}';
519+
520+
return es.merge(
521+
gulp.src(pathToMetadata).pipe(i18n.createXlfFilesForCoreBundle()),
522+
gulp.src(pathToSetup).pipe(i18n.createXlfFilesForIsl()),
523+
gulp.src(pathToExtensions).pipe(i18n.createXlfFilesForExtensions())
524+
).pipe(vfs.dest('../vscode-translations-export'));
525+
}
526+
)
527+
);
519528

520529
gulp.task('vscode-translations-pull', function () {
521530
return es.merge([...i18n.defaultLanguages, ...i18n.extraLanguages].map(language => {
@@ -565,57 +574,8 @@ gulp.task('upload-vscode-sourcemaps', () => {
565574
}));
566575
});
567576

568-
const allConfigDetailsPath = path.join(os.tmpdir(), 'configuration.json');
569-
gulp.task('upload-vscode-configuration', ['generate-vscode-configuration'], () => {
570-
if (!shouldSetupSettingsSearch()) {
571-
const branch = process.env.BUILD_SOURCEBRANCH;
572-
console.log(`Only runs on master and release branches, not ${branch}`);
573-
return;
574-
}
575-
576-
if (!fs.existsSync(allConfigDetailsPath)) {
577-
throw new Error(`configuration file at ${allConfigDetailsPath} does not exist`);
578-
}
579-
580-
const settingsSearchBuildId = getSettingsSearchBuildId(packageJson);
581-
if (!settingsSearchBuildId) {
582-
throw new Error('Failed to compute build number');
583-
}
584-
585-
return gulp.src(allConfigDetailsPath)
586-
.pipe(azure.upload({
587-
account: process.env.AZURE_STORAGE_ACCOUNT,
588-
key: process.env.AZURE_STORAGE_ACCESS_KEY,
589-
container: 'configuration',
590-
prefix: `${settingsSearchBuildId}/${commit}/`
591-
}));
592-
});
593-
594-
function shouldSetupSettingsSearch() {
595-
const branch = process.env.BUILD_SOURCEBRANCH;
596-
return branch && (/\/master$/.test(branch) || branch.indexOf('/release/') >= 0);
597-
}
598-
599-
function getSettingsSearchBuildId(packageJson) {
600-
try {
601-
const branch = process.env.BUILD_SOURCEBRANCH;
602-
const branchId = branch.indexOf('/release/') >= 0 ? 0 :
603-
/\/master$/.test(branch) ? 1 :
604-
2; // Some unexpected branch
605-
606-
const out = cp.execSync(`git rev-list HEAD --count`);
607-
const count = parseInt(out.toString());
608-
609-
// <version number><commit count><branchId (avoid unlikely conflicts)>
610-
// 1.25.1, 1,234,567 commits, master = 1250112345671
611-
return util.versionStringToNumber(packageJson.version) * 1e8 + count * 10 + branchId;
612-
} catch (e) {
613-
throw new Error('Could not determine build number: ' + e.toString());
614-
}
615-
}
616-
617577
// This task is only run for the MacOS build
618-
gulp.task('generate-vscode-configuration', () => {
578+
const generateVSCodeConfigurationTask = () => {
619579
return new Promise((resolve, reject) => {
620580
const buildDir = process.env['AGENT_BUILDDIRECTORY'];
621581
if (!buildDir) {
@@ -650,4 +610,60 @@ gulp.task('generate-vscode-configuration', () => {
650610
reject(err);
651611
});
652612
});
653-
});
613+
};
614+
generateVSCodeConfigurationTask.displayName = 'generate-vscode-configuration';
615+
616+
const allConfigDetailsPath = path.join(os.tmpdir(), 'configuration.json');
617+
gulp.task('upload-vscode-configuration',
618+
util.task.series(
619+
generateVSCodeConfigurationTask,
620+
() => {
621+
if (!shouldSetupSettingsSearch()) {
622+
const branch = process.env.BUILD_SOURCEBRANCH;
623+
console.log(`Only runs on master and release branches, not ${branch}`);
624+
return;
625+
}
626+
627+
if (!fs.existsSync(allConfigDetailsPath)) {
628+
throw new Error(`configuration file at ${allConfigDetailsPath} does not exist`);
629+
}
630+
631+
const settingsSearchBuildId = getSettingsSearchBuildId(packageJson);
632+
if (!settingsSearchBuildId) {
633+
throw new Error('Failed to compute build number');
634+
}
635+
636+
return gulp.src(allConfigDetailsPath)
637+
.pipe(azure.upload({
638+
account: process.env.AZURE_STORAGE_ACCOUNT,
639+
key: process.env.AZURE_STORAGE_ACCESS_KEY,
640+
container: 'configuration',
641+
prefix: `${settingsSearchBuildId}/${commit}/`
642+
}));
643+
}
644+
)
645+
);
646+
647+
function shouldSetupSettingsSearch() {
648+
const branch = process.env.BUILD_SOURCEBRANCH;
649+
return branch && (/\/master$/.test(branch) || branch.indexOf('/release/') >= 0);
650+
}
651+
652+
function getSettingsSearchBuildId(packageJson) {
653+
try {
654+
const branch = process.env.BUILD_SOURCEBRANCH;
655+
const branchId = branch.indexOf('/release/') >= 0 ? 0 :
656+
/\/master$/.test(branch) ? 1 :
657+
2; // Some unexpected branch
658+
659+
const out = cp.execSync(`git rev-list HEAD --count`);
660+
const count = parseInt(out.toString());
661+
662+
// <version number><commit count><branchId (avoid unlikely conflicts)>
663+
// 1.25.1, 1,234,567 commits, master = 1250112345671
664+
return util.versionStringToNumber(packageJson.version) * 1e8 + count * 10 + branchId;
665+
} catch (e) {
666+
throw new Error('Could not determine build number: ' + e.toString());
667+
}
668+
}
669+

build/gulpfile.vscode.linux.js

Lines changed: 39 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -229,29 +229,42 @@ function buildSnapPackage(arch) {
229229
return shell.task(`cd ${snapBuildPath} && snapcraft build`);
230230
}
231231

232-
gulp.task('vscode-linux-ia32-prepare-deb', util.task.series(util.rimraf('.build/linux/deb/i386'), prepareDebPackage('ia32')));
233-
gulp.task('vscode-linux-x64-prepare-deb', util.task.series(util.rimraf('.build/linux/deb/amd64'), prepareDebPackage('x64')));
234-
gulp.task('vscode-linux-arm-prepare-deb', util.task.series(util.rimraf('.build/linux/deb/armhf'), prepareDebPackage('arm')));
235-
gulp.task('vscode-linux-arm64-prepare-deb', util.task.series(util.rimraf('.build/linux/deb/arm64'), prepareDebPackage('arm64')));
236-
gulp.task('vscode-linux-ia32-build-deb', ['vscode-linux-ia32-prepare-deb'], buildDebPackage('ia32'));
237-
gulp.task('vscode-linux-x64-build-deb', ['vscode-linux-x64-prepare-deb'], buildDebPackage('x64'));
238-
gulp.task('vscode-linux-arm-build-deb', ['vscode-linux-arm-prepare-deb'], buildDebPackage('arm'));
239-
gulp.task('vscode-linux-arm64-build-deb', ['vscode-linux-arm64-prepare-deb'], buildDebPackage('arm64'));
240-
241-
gulp.task('vscode-linux-ia32-prepare-rpm', util.task.series(util.rimraf('.build/linux/rpm/i386'), prepareRpmPackage('ia32')));
242-
gulp.task('vscode-linux-x64-prepare-rpm', util.task.series(util.rimraf('.build/linux/rpm/x86_64'), prepareRpmPackage('x64')));
243-
gulp.task('vscode-linux-arm-prepare-rpm', util.task.series(util.rimraf('.build/linux/rpm/armhf'), prepareRpmPackage('arm')));
244-
gulp.task('vscode-linux-arm64-prepare-rpm', util.task.series(util.rimraf('.build/linux/rpm/arm64'), prepareRpmPackage('arm64')));
245-
gulp.task('vscode-linux-ia32-build-rpm', ['vscode-linux-ia32-prepare-rpm'], buildRpmPackage('ia32'));
246-
gulp.task('vscode-linux-x64-build-rpm', ['vscode-linux-x64-prepare-rpm'], buildRpmPackage('x64'));
247-
gulp.task('vscode-linux-arm-build-rpm', ['vscode-linux-arm-prepare-rpm'], buildRpmPackage('arm'));
248-
gulp.task('vscode-linux-arm64-build-rpm', ['vscode-linux-arm64-prepare-rpm'], buildRpmPackage('arm64'));
249-
250-
gulp.task('vscode-linux-ia32-prepare-snap', util.task.series(util.rimraf('.build/linux/snap/x64'), prepareSnapPackage('ia32')));
251-
gulp.task('vscode-linux-x64-prepare-snap', util.task.series(util.rimraf('.build/linux/snap/x64'), prepareSnapPackage('x64')));
252-
gulp.task('vscode-linux-arm-prepare-snap', util.task.series(util.rimraf('.build/linux/snap/x64'), prepareSnapPackage('arm')));
253-
gulp.task('vscode-linux-arm64-prepare-snap', util.task.series(util.rimraf('.build/linux/snap/x64'), prepareSnapPackage('arm64')));
254-
gulp.task('vscode-linux-ia32-build-snap', ['vscode-linux-ia32-prepare-snap'], buildSnapPackage('ia32'));
255-
gulp.task('vscode-linux-x64-build-snap', ['vscode-linux-x64-prepare-snap'], buildSnapPackage('x64'));
256-
gulp.task('vscode-linux-arm-build-snap', ['vscode-linux-arm-prepare-snap'], buildSnapPackage('arm'));
257-
gulp.task('vscode-linux-arm64-build-snap', ['vscode-linux-arm64-prepare-snap'], buildSnapPackage('arm64'));
232+
const BUILD_TARGETS = [
233+
{ arch: 'ia32' },
234+
{ arch: 'x64' },
235+
{ arch: 'arm' },
236+
{ arch: 'arm64' },
237+
];
238+
239+
BUILD_TARGETS.forEach((buildTarget) => {
240+
const arch = buildTarget.arch;
241+
242+
{
243+
const debArch = getDebPackageArch(arch);
244+
const prepareDebTask = util.task.series(util.rimraf(`.build/linux/deb/${debArch}`), prepareDebPackage(arch));
245+
prepareDebTask.displayName = `vscode-linux-${arch}-prepare-deb`;
246+
// gulp.task(prepareDebTask.displayName, prepareDebTask);
247+
const buildDebTask = util.task.series(prepareDebTask, buildDebPackage(arch));
248+
buildDebTask.displayName = `vscode-linux-${arch}-build-deb`;
249+
gulp.task(buildDebTask.displayName, buildDebTask);
250+
}
251+
252+
{
253+
const rpmArch = getRpmPackageArch(arch);
254+
const prepareRpmTask = util.task.series(util.rimraf(`.build/linux/rpm/${rpmArch}`), prepareRpmPackage(arch));
255+
prepareRpmTask.displayName = `vscode-linux-${arch}-prepare-rpm`;
256+
// gulp.task(prepareRpmTask.displayName, prepareRpmTask);
257+
const buildRpmTask = util.task.series(prepareRpmTask, buildRpmPackage(arch));
258+
buildRpmTask.displayName = `vscode-linux-${arch}-build-rpm`;
259+
gulp.task(buildRpmTask.displayName, buildRpmTask);
260+
}
261+
262+
{
263+
const prepareSnapTask = util.task.series(util.rimraf(`.build/linux/snap/${arch}`), prepareSnapPackage(arch));
264+
prepareSnapTask.displayName = `vscode-linux-${arch}-prepare-snap`;
265+
gulp.task(prepareSnapTask.displayName, prepareSnapTask);
266+
const buildSnapTask = util.task.series(prepareSnapTask, buildSnapPackage(arch));
267+
buildSnapTask.displayName = `vscode-linux-${arch}-build-snap`;
268+
gulp.task(buildSnapTask.displayName, buildSnapTask);
269+
}
270+
});

build/gulpfile.vscode.win32.js

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -134,15 +134,12 @@ function copyInnoUpdater(arch) {
134134
};
135135
}
136136

137-
gulp.task('vscode-win32-ia32-copy-inno-updater', copyInnoUpdater('ia32'));
138-
gulp.task('vscode-win32-x64-copy-inno-updater', copyInnoUpdater('x64'));
139-
140137
function patchInnoUpdater(arch) {
141138
return cb => {
142139
const icon = path.join(repoPath, 'resources', 'win32', 'code.ico');
143140
rcedit(path.join(buildPath(arch), 'tools', 'inno_updater.exe'), { icon }, cb);
144141
};
145142
}
146143

147-
gulp.task('vscode-win32-ia32-inno-updater', ['vscode-win32-ia32-copy-inno-updater'], patchInnoUpdater('ia32'));
148-
gulp.task('vscode-win32-x64-inno-updater', ['vscode-win32-x64-copy-inno-updater'], patchInnoUpdater('x64'));
144+
gulp.task('vscode-win32-ia32-inno-updater', util.task.series(copyInnoUpdater('ia32'), patchInnoUpdater('ia32')));
145+
gulp.task('vscode-win32-x64-inno-updater', util.task.series(copyInnoUpdater('x64'), patchInnoUpdater('x64')));

gulpfile.js

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,27 @@ const gulp = require('gulp');
1212
const util = require('./build/lib/util');
1313
const path = require('path');
1414
const compilation = require('./build/lib/compilation');
15+
const { monacoTypecheckTask/* , monacoTypecheckWatchTask */ } = require('./build/gulpfile.editor');
16+
const { compileExtensionsTask, watchExtensionsTask } = require('./build/gulpfile.extensions');
1517

1618
// Fast compile for development time
17-
gulp.task('compile-client', util.task.series(util.rimraf('out'), compilation.compileTask('src', 'out', false)));
18-
gulp.task('watch-client', util.task.series(util.rimraf('out'), compilation.watchTask('out', false)));
19+
const compileClientTask = util.task.series(util.rimraf('out'), compilation.compileTask('src', 'out', false));
20+
compileClientTask.displayName = 'compile-client';
21+
gulp.task(compileClientTask.displayName, compileClientTask);
1922

20-
// Default
21-
gulp.task('default', ['compile']);
23+
const watchClientTask = util.task.series(util.rimraf('out'), compilation.watchTask('out', false));
24+
watchClientTask.displayName = 'watch-client';
25+
gulp.task(watchClientTask.displayName, watchClientTask);
2226

2327
// All
24-
gulp.task('compile', ['monaco-typecheck', 'compile-client', 'compile-extensions']);
25-
gulp.task('watch', [/* 'monaco-typecheck-watch', */ 'watch-client', 'watch-extensions']);
28+
const compileTask = util.task.parallel(monacoTypecheckTask, compileClientTask, compileExtensionsTask);
29+
compileTask.displayName = 'compile';
30+
gulp.task(compileTask.displayName, compileTask);
31+
32+
gulp.task('watch', util.task.parallel(/* monacoTypecheckWatchTask, */ watchClientTask, watchExtensionsTask));
33+
34+
// Default
35+
gulp.task('default', compileTask);
2636

2737
process.on('unhandledRejection', (reason, p) => {
2838
console.log('Unhandled Rejection at: Promise', p, 'reason:', reason);

0 commit comments

Comments
 (0)