gulpfile.vscode.js 17.6 KB
Newer Older
I
isidor 已提交
1 2 3 4 5 6 7 8
/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

var gulp = require('gulp');
var fs = require('fs');
var path = require('path');
J
Joao Moreno 已提交
9
var os = require('os');
I
isidor 已提交
10 11 12 13 14
var es = require('event-stream');
var azure = require('gulp-azure-storage');
var electron = require('gulp-atom-electron');
var symdest = require('gulp-symdest');
var rename = require('gulp-rename');
15
var replace = require('gulp-replace');
I
isidor 已提交
16 17 18
var filter = require('gulp-filter');
var json = require('gulp-json-editor');
var remote = require('gulp-remote-src');
19
var shell = require("gulp-shell");
I
isidor 已提交
20
var _ = require('underscore');
J
Joao Moreno 已提交
21
var packageJson = require('../package.json');
I
isidor 已提交
22 23 24 25
var util = require('./lib/util');
var buildfile = require('../src/buildfile');
var common = require('./gulpfile.common');
var root = path.dirname(__dirname);
J
Joao Moreno 已提交
26
var build = path.join(root, '.build');
J
Joao Moreno 已提交
27
var commit = util.getVersion(root);
I
isidor 已提交
28 29

var baseModules = [
B
Benjamin Pasero 已提交
30
	'applicationinsights', 'assert', 'child_process', 'chokidar', 'crypto', 'emmet',
I
isidor 已提交
31
	'events', 'fs', 'getmac', 'glob', 'graceful-fs', 'http', 'http-proxy-agent',
B
Benjamin Pasero 已提交
32
	'https', 'https-proxy-agent', 'iconv-lite', 'electron', 'net',
B
Benjamin Pasero 已提交
33
	'os', 'path', 'readline', 'sax', 'semver', 'stream', 'string_decoder', 'url',
J
Joao Moreno 已提交
34
	'vscode-textmate', 'winreg', 'yauzl', 'native-keymap', 'weak', 'zlib'
I
isidor 已提交
35 36 37 38 39 40 41 42 43 44 45 46 47
];

// Build

var vscodeEntryPoints = _.flatten([
	buildfile.entrypoint('vs/workbench/workbench.main'),
	buildfile.base,
	buildfile.editor,
	buildfile.languages,
	buildfile.vscode
]);

var vscodeResources = [
J
Joao Moreno 已提交
48
	'out-build/main.js',
J
Joao Moreno 已提交
49
	'out-build/cli.js',
I
isidor 已提交
50
	'out-build/bootstrap.js',
J
Joao Moreno 已提交
51
	'out-build/bootstrap-amd.js',
I
isidor 已提交
52 53 54 55
	'out-build/vs/**/*.{svg,png,cur}',
	'out-build/vs/base/node/{stdForkStart.js,terminateProcess.sh}',
	'out-build/vs/base/worker/workerMainCompatibility.html',
	'out-build/vs/base/worker/workerMain.{js,js.map}',
56
	'out-build/vs/base/browser/ui/octiconLabel/octicons/**',
I
isidor 已提交
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77
	'out-build/vs/languages/markdown/common/*.css',
	'out-build/vs/workbench/browser/media/*-theme.css',
	'out-build/vs/workbench/electron-browser/index.html',
	'out-build/vs/workbench/parts/debug/**/*.json',
	'out-build/vs/workbench/parts/execution/**/*.scpt',
	'out-build/vs/workbench/parts/git/**/*.html',
	'out-build/vs/workbench/parts/git/**/*.sh',
	'out-build/vs/workbench/parts/markdown/**/*.md',
	'out-build/vs/workbench/parts/tasks/**/*.json',
	'out-build/vs/workbench/services/files/**/*.exe',
	'out-build/vs/workbench/services/files/**/*.md',
	'!**/test/**'
];

var BUNDLED_FILE_HEADER = [
	'/*!--------------------------------------------------------',
	' * Copyright (C) Microsoft Corporation. All rights reserved.',
	' *--------------------------------------------------------*/'
].join('\n');

gulp.task('clean-optimized-vscode', util.rimraf('out-vscode'));
D
Dirk Baeumer 已提交
78
gulp.task('optimize-vscode', ['clean-optimized-vscode', 'compile-build', 'compile-build-extensions'], common.optimizeTask({
I
isidor 已提交
79 80 81 82 83 84 85 86 87
	entryPoints: vscodeEntryPoints,
	otherSources: [],
	resources: vscodeResources,
	loaderConfig: common.loaderConfig(baseModules),
	header: BUNDLED_FILE_HEADER,
	out: 'out-vscode'
}));

gulp.task('clean-minified-vscode', util.rimraf('out-vscode-min'));
J
Joao Moreno 已提交
88
gulp.task('minify-vscode', ['clean-minified-vscode', 'optimize-vscode'], common.minifyTask('out-vscode', true));
I
isidor 已提交
89 90

// Package
J
Joao Moreno 已提交
91
var product = require('../product.json');
I
isidor 已提交
92 93 94
var darwinCreditsTemplate = product.darwinCredits && _.template(fs.readFileSync(path.join(root, product.darwinCredits), 'utf8'));

var config = {
J
Joao Moreno 已提交
95
	version: packageJson.electronVersion,
I
isidor 已提交
96
	productAppName: product.nameLong,
J
Joao Moreno 已提交
97 98 99
	companyName: 'Microsoft Corporation',
	copyright: 'Copyright (C) 2015 Microsoft. All rights reserved',
	darwinIcon: 'resources/darwin/code.icns',
I
isidor 已提交
100
	darwinBundleIdentifier: product.darwinBundleIdentifier,
J
Joao Moreno 已提交
101 102 103 104 105 106 107 108
	darwinApplicationCategoryType: 'public.app-category.developer-tools',
	darwinBundleDocumentTypes: [{
		name: product.nameLong + ' document',
		role: 'Editor',
		ostypes: ["TEXT", "utxt", "TUTX", "****"],
		extensions: ["ascx", "asp", "aspx", "bash", "bash_login", "bash_logout", "bash_profile", "bashrc", "bat", "bowerrc", "c", "cc", "clj", "cljs", "cljx", "clojure", "cmd", "coffee", "config", "cpp", "cs", "cshtml", "csproj", "css", "csx", "ctp", "cxx", "dockerfile", "dot", "dtd", "editorconfig", "edn", "eyaml", "eyml", "fs", "fsi", "fsscript", "fsx", "gemspec", "gitattributes", "gitconfig", "gitignore", "go", "h", "handlebars", "hbs", "hh", "hpp", "htm", "html", "hxx", "ini", "jade", "jav", "java", "js", "jscsrc", "jshintrc", "jshtm", "json", "jsp", "less", "lua", "m", "makefile", "markdown", "md", "mdoc", "mdown", "mdtext", "mdtxt", "mdwn", "mkd", "mkdn", "ml", "mli", "nqp", "p6", "php", "phtml", "pl", "pl6", "pm", "pm6", "pod", "pp", "profile", "properties", "ps1", "psd1", "psgi", "psm1", "py", "r", "rb", "rhistory", "rprofile", "rs", "rt", "scss", "sh", "shtml", "sql", "svg", "svgz", "t", "ts", "txt", "vb", "wxi", "wxl", "wxs", "xaml", "xml", "yaml", "yml", "zsh"],
		iconFile: 'resources/darwin/code_file.icns'
	}],
I
isidor 已提交
109
	darwinCredits: darwinCreditsTemplate ? new Buffer(darwinCreditsTemplate({ commit: commit, date: new Date().toISOString() })) : void 0,
110
	linuxExecutableName: product.applicationName,
J
Joao Moreno 已提交
111
	winIcon: 'resources/win32/code.ico',
I
isidor 已提交
112 113 114 115 116
	token: process.env['GITHUB_TOKEN'] || void 0
};

gulp.task('electron', function () {
	// Force windows to use ia32
J
Joao Moreno 已提交
117
	var arch = process.env.VSCODE_ELECTRON_PLATFORM || (process.platform === 'win32' ? 'ia32' : process.arch);
J
Joao Moreno 已提交
118
	return electron.dest(path.join(build, 'electron'), _.extend({}, config, { arch: arch }));
I
isidor 已提交
119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162
});

function mixinProduct() {
	var product;
	var url = process.env['PRODUCT_JSON_URL'];

	if (url) {
		var opts = { base: '' };
		var username = process.env['PRODUCT_JSON_USERNAME'];
		var password = process.env['PRODUCT_JSON_PASSWORD'];

		if (username || password) {
			opts.auth = { username: username || '', password: password || '' };
		}

		product = remote(url, opts);
	} else {
		product = gulp.src(['product.json'], { base: '.' });
	}

	return product.pipe(json({
		commit: commit,
		date: new Date().toISOString()
	}));
}

function packageTask(platform, arch, opts) {
	opts = opts || {};

	var destination = path.join(path.dirname(root), 'VSCode') + (platform ? '-' + platform : '') + (arch ? '-' + arch : '');
	platform = platform || process.platform;
	arch = platform === 'win32' ? 'ia32' : arch;

	return function () {
		var out = opts.minified ? 'out-vscode-min' : 'out-vscode';

		var src = gulp.src(out + '/**', { base: '.' })
			.pipe(rename(function (path) { path.dirname = path.dirname.replace(new RegExp('^' + out), 'out'); }))
			.pipe(util.setExecutableBit(['**/*.sh']));

		var extensions = gulp.src([
			'extensions/**',
			'!extensions/*/src/**',
			'!extensions/*/out/**/test/**',
163
			'!extensions/typescript/bin/**',
164 165 166 167 168
			'!extensions/vscode-api-tests/**',
			'!extensions/json/server/.vscode/**',
			'!extensions/json/server/src/**',
			'!extensions/json/server/out/**/test/**',
			'!extensions/json/server/test/**',
169
			'!extensions/json/server/typings/**'
I
isidor 已提交
170 171
		], { base: '.' });

J
Joao Moreno 已提交
172 173 174
		var sources = es.merge(src, extensions)
			.pipe(filter(['**', '!**/*.js.map']))
			.pipe(util.handleAzureJson({ platform: platform }));
I
isidor 已提交
175

J
Joao Moreno 已提交
176 177 178 179 180 181 182 183 184 185 186
		var version = packageJson.version;
		var quality = product.quality;

		if (quality && quality !== 'stable') {
			version += '-' + quality;
		}

		var packageJsonStream = gulp.src(['package.json'], { base: '.' }).pipe(json({
			name: product.nameShort,
			version: version
		}));
I
isidor 已提交
187 188 189 190

		var license = gulp.src(['Credits_*', 'LICENSE.txt', 'ThirdPartyNotices.txt'], { base: '.' });
		var api = gulp.src('src/vs/vscode.d.ts').pipe(rename('out/vs/vscode.d.ts'));

J
Joao Moreno 已提交
191
		var depsSrc = _.flatten(Object.keys(packageJson.dependencies).concat(Object.keys(packageJson.optionalDependencies))
J
Joao Moreno 已提交
192 193
			.map(function (d) { return ['node_modules/' + d + '/**', '!node_modules/' + d + '/**/{test,tests}/**']; })
		);
I
isidor 已提交
194 195 196

		var deps = gulp.src(depsSrc, { base: '.', dot: true })
			.pipe(util.cleanNodeModule('fsevents', ['binding.gyp', 'fsevents.cc', 'build/**', 'src/**', 'test/**'], true))
197
			.pipe(util.cleanNodeModule('oniguruma', ['binding.gyp', 'build/**', 'src/**', 'deps/**'], true))
198
			.pipe(util.cleanNodeModule('windows-mutex', ['binding.gyp', 'build/**', 'src/**'], true))
J
Joao Moreno 已提交
199 200
			.pipe(util.cleanNodeModule('native-keymap', ['binding.gyp', 'build/**', 'src/**', 'deps/**'], true))
			.pipe(util.cleanNodeModule('weak', ['binding.gyp', 'build/**', 'src/**'], true));
I
isidor 已提交
201 202 203

		var all = es.merge(
			api,
J
Joao Moreno 已提交
204
			packageJsonStream,
I
isidor 已提交
205 206 207
			mixinProduct(),
			license,
			sources,
J
Joao Moreno 已提交
208
			deps
J
Joao Moreno 已提交
209 210 211 212 213 214
		);

		if (platform === 'win32') {
			all = es.merge(all, gulp.src('resources/win32/code_file.ico', { base: '.' }));
		} else if (platform === 'linux') {
			all = es.merge(all, gulp.src('resources/linux/code.png', { base: '.' }));
J
Joao Moreno 已提交
215 216 217 218 219
		} else if (platform === 'darwin') {
			var shortcut = gulp.src('resources/darwin/bin/code.sh')
				.pipe(rename('bin/code'));

			all = es.merge(all, shortcut);
J
Joao Moreno 已提交
220
		}
I
isidor 已提交
221 222

		var result = all
J
Joao Moreno 已提交
223
			.pipe(util.skipDirectories())
I
isidor 已提交
224 225
			.pipe(util.fixWin32DirectoryPermissions())
			.pipe(electron(_.extend({}, config, { platform: platform, arch: arch })))
226
			.pipe(filter(['**', '!LICENSE', '!LICENSES.chromium.html', '!version']));
I
isidor 已提交
227 228

		if (platform === 'win32') {
J
typo  
João Moreno 已提交
229
			result = es.merge(result, gulp.src('resources/win32/bin/code.js', { base: 'resources/win32' }));
J
Joao Moreno 已提交
230

J
typo  
João Moreno 已提交
231
			result = es.merge(result, gulp.src('resources/win32/bin/code.cmd', { base: 'resources/win32' })
J
Joao Moreno 已提交
232
				.pipe(replace('@@NAME@@', product.nameShort))
J
Joao Moreno 已提交
233 234
				.pipe(rename(function (f) { f.basename = product.applicationName; })));

J
typo  
João Moreno 已提交
235
			result = es.merge(result, gulp.src('resources/win32/bin/code.sh', { base: 'resources/win32' })
J
Joao Moreno 已提交
236 237
				.pipe(replace('@@NAME@@', product.nameShort))
				.pipe(rename(function (f) { f.basename = product.applicationName; f.extname = ''; })));
I
isidor 已提交
238 239
		}

J
Joao Moreno 已提交
240
		return result.pipe(symdest(destination));
I
isidor 已提交
241 242 243
	};
}

244
function getDebPackageArch(arch) {
J
Joao Moreno 已提交
245
	return { x64: 'amd64', ia32: 'i386' }[arch];
246 247
}

248 249 250 251
function getEpochTime() {
	return Math.floor(new Date().getTime() / 1000);
}

252 253 254
function prepareDebPackage(arch) {
	var binaryDir = '../VSCode-linux-' + arch;
	var debArch = getDebPackageArch(arch);
255
	var destination = '.build/linux/deb/' + debArch + '/vscode-' + debArch;
256
	var packageRevision = getEpochTime();
257 258

	return function () {
D
Daniel Imms 已提交
259
		var shortcut = gulp.src('resources/linux/bin/code.sh', { base: '.' })
260
			.pipe(replace('@@NAME@@', product.applicationName))
J
Joao Moreno 已提交
261
			.pipe(rename('usr/bin/' + product.applicationName));
262

D
Daniel Imms 已提交
263
		var desktop = gulp.src('resources/linux/code.desktop', { base: '.' })
J
Joao Moreno 已提交
264 265
			.pipe(replace('@@NAME_LONG@@', product.nameLong))
			.pipe(replace('@@NAME@@', product.applicationName))
D
Daniel Imms 已提交
266
			.pipe(rename('usr/share/applications/' + product.applicationName + '.desktop'));
267

D
Daniel Imms 已提交
268
		var icon = gulp.src('resources/linux/code.png', { base: '.' })
J
Joao Moreno 已提交
269
			.pipe(rename('usr/share/pixmaps/' + product.applicationName + '.png'));
270

J
Joao Moreno 已提交
271
		var code = gulp.src(binaryDir + '/**/*', { base: binaryDir })
272
			.pipe(rename(function (p) { p.dirname = 'usr/share/' + product.applicationName + '/' + p.dirname; }));
J
Joao Moreno 已提交
273 274 275 276 277 278 279

		var size = 0;
		var control = code.pipe(es.through(
			function (f) { size += f.isDirectory() ? 4096 : f.contents.length; },
			function () {
				var that = this;
				gulp.src('resources/linux/debian/control.template', { base: '.' })
J
Joao Moreno 已提交
280
					.pipe(replace('@@NAME@@', product.applicationName))
J
Joao Moreno 已提交
281 282 283
					.pipe(replace('@@VERSION@@', packageJson.version + '-' + packageRevision))
					.pipe(replace('@@ARCHITECTURE@@', debArch))
					.pipe(replace('@@INSTALLEDSIZE@@', Math.ceil(size / 1024)))
J
Joao Moreno 已提交
284
					.pipe(rename('DEBIAN/control'))
J
Joao Moreno 已提交
285
					.pipe(es.through(function (f) { that.emit('data', f); }, function () { that.emit('end'); }));
286 287
			}));

288 289 290 291 292
		var prerm = gulp.src('resources/linux/debian/prerm.template', { base: '.' })
			.pipe(replace('@@NAME@@', product.applicationName))
			.pipe(rename('DEBIAN/prerm'))

		var all = es.merge(control, prerm, desktop, icon, shortcut, code);
293 294 295 296 297 298 299 300 301 302

		// Register an apt repository if this is an official build
		if (product.updateUrl && product.quality) {
			var postinst = gulp.src('resources/linux/debian/postinst.template', { base: '.' })
				.pipe(replace('@@NAME@@', product.applicationName))
				.pipe(replace('@@UPDATEURL@@', product.updateUrl))
				.pipe(replace('@@QUALITY@@', product.quality))
				.pipe(replace('@@ARCHITECTURE@@', debArch))
				.pipe(rename('DEBIAN/postinst'))
			all = es.merge(all, postinst);
303 304 305 306 307
		} else {
			var postinst = gulp.src('resources/linux/debian/postinst.oss.template', { base: '.' })
				.pipe(replace('@@NAME@@', product.applicationName))
				.pipe(rename('DEBIAN/postinst'))
			all = es.merge(all, postinst);
308 309
		}

D
Daniel Imms 已提交
310
		return all.pipe(symdest(destination));
311 312 313 314
	};
}

function buildDebPackage(arch) {
315 316
	var debArch = getDebPackageArch(arch);
	return shell.task([
317
		'mkdir -p deb',
D
Daniel Imms 已提交
318
		'fakeroot dpkg-deb -b vscode-' + debArch + ' deb/vscode-' + debArch + '.deb',
319
		'dpkg-scanpackages deb /dev/null > Packages'
320
	], { cwd: '.build/linux/deb/' + debArch});
321 322
}

J
Joao Moreno 已提交
323 324
// TODO@Tyriar: we don't want any globals, why is this scoped to the user's homedir?
var rpmBuildPath = path.join(os.homedir(), 'rpmbuild');
D
Daniel Imms 已提交
325 326 327

function prepareRpmPackage(arch) {
	var binaryDir = '../VSCode-linux-' + arch;
J
Joao Moreno 已提交
328
	var destination = rpmBuildPath;
D
Daniel Imms 已提交
329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360
	var packageRevision = getEpochTime();

	return function () {
		var shortcut = gulp.src('resources/linux/bin/code.sh', { base: '.' })
			.pipe(replace('@@NAME@@', product.applicationName))
			.pipe(rename('BUILD/usr/bin/' + product.applicationName));

		var desktop = gulp.src('resources/linux/code.desktop', { base: '.' })
			.pipe(replace('@@NAME_LONG@@', product.nameLong))
			.pipe(replace('@@NAME@@', product.applicationName))
			.pipe(rename('BUILD/usr/share/applications/' + product.applicationName + '.desktop'));

		var icon = gulp.src('resources/linux/code.png', { base: '.' })
			.pipe(rename('BUILD/usr/share/pixmaps/' + product.applicationName + '.png'));

		var code = gulp.src(binaryDir + '/**/*', { base: binaryDir })
			.pipe(rename(function (p) { p.dirname = 'BUILD/usr/share/' + product.applicationName + '/' + p.dirname; }));

		var spec = gulp.src('resources/linux/rpm/code.spec.template', { base: '.' })
			.pipe(replace('@@NAME@@', product.applicationName))
			.pipe(replace('@@VERSION@@', packageJson.version))
			.pipe(replace('@@RELEASE@@', packageRevision))
			.pipe(rename('SPECS/' + product.applicationName + '.spec'));

		var all = es.merge(code, desktop, icon, shortcut, spec);

		return all.pipe(symdest(destination));
	}
}

function buildRpmPackage() {
	return shell.task([
J
Joao Moreno 已提交
361
		'fakeroot rpmbuild -ba ' + rpmBuildPath + '/SPECS/' + product.applicationName + '.spec',
D
Daniel Imms 已提交
362 363 364
	]);
}

I
isidor 已提交
365 366 367 368
gulp.task('clean-vscode-win32', util.rimraf(path.join(path.dirname(root), 'VSCode-win32')));
gulp.task('clean-vscode-darwin', util.rimraf(path.join(path.dirname(root), 'VSCode-darwin')));
gulp.task('clean-vscode-linux-ia32', util.rimraf(path.join(path.dirname(root), 'VSCode-linux-ia32')));
gulp.task('clean-vscode-linux-x64', util.rimraf(path.join(path.dirname(root), 'VSCode-linux-x64')));
369
gulp.task('clean-vscode-linux-arm', util.rimraf(path.join(path.dirname(root), 'VSCode-linux-arm')));
370 371
gulp.task('clean-vscode-linux-ia32-deb', util.rimraf('.build/linux/deb/i386'));
gulp.task('clean-vscode-linux-x64-deb', util.rimraf('.build/linux/deb/amd64'));
D
Daniel Imms 已提交
372 373
gulp.task('clean-vscode-linux-ia32-rpm', util.rimraf('.build/linux/rpm/i386'));
gulp.task('clean-vscode-linux-x64-rpm', util.rimraf('.build/linux/rpm/x86_64'));
J
Joao Moreno 已提交
374
gulp.task('clean-rpmbuild', util.rimraf(rpmBuildPath));
I
isidor 已提交
375

376
gulp.task('vscode-win32', ['optimize-vscode', 'clean-vscode-win32'], packageTask('win32'));
J
oops  
Joao Moreno 已提交
377
gulp.task('vscode-darwin', ['optimize-vscode', 'clean-vscode-darwin'], packageTask('darwin'));
I
isidor 已提交
378 379
gulp.task('vscode-linux-ia32', ['optimize-vscode', 'clean-vscode-linux-ia32'], packageTask('linux', 'ia32'));
gulp.task('vscode-linux-x64', ['optimize-vscode', 'clean-vscode-linux-x64'], packageTask('linux', 'x64'));
380
gulp.task('vscode-linux-arm', ['optimize-vscode', 'clean-vscode-linux-arm'], packageTask('linux', 'arm'));
I
isidor 已提交
381 382 383 384 385

gulp.task('vscode-win32-min', ['minify-vscode', 'clean-vscode-win32'], packageTask('win32', null, { minified: true }));
gulp.task('vscode-darwin-min', ['minify-vscode', 'clean-vscode-darwin'], packageTask('darwin', null, { minified: true }));
gulp.task('vscode-linux-ia32-min', ['minify-vscode', 'clean-vscode-linux-ia32'], packageTask('linux', 'ia32', { minified: true }));
gulp.task('vscode-linux-x64-min', ['minify-vscode', 'clean-vscode-linux-x64'], packageTask('linux', 'x64', { minified: true }));
386
gulp.task('vscode-linux-arm-min', ['minify-vscode', 'clean-vscode-linux-arm'], packageTask('linux', 'arm', { minified: true }));
I
isidor 已提交
387

J
Joao Moreno 已提交
388 389
gulp.task('vscode-linux-ia32-prepare-deb', ['clean-vscode-linux-ia32-deb', 'vscode-linux-ia32-min'], prepareDebPackage('ia32'));
gulp.task('vscode-linux-x64-prepare-deb', ['clean-vscode-linux-x64-deb', 'vscode-linux-x64-min'], prepareDebPackage('x64'));
390 391 392
gulp.task('vscode-linux-ia32-build-deb', ['vscode-linux-ia32-prepare-deb'], buildDebPackage('ia32'));
gulp.task('vscode-linux-x64-build-deb', ['vscode-linux-x64-prepare-deb'], buildDebPackage('x64'));

D
Daniel Imms 已提交
393 394 395 396 397
gulp.task('vscode-linux-ia32-prepare-rpm', ['clean-rpmbuild', 'clean-vscode-linux-ia32-rpm', 'vscode-linux-ia32-min'], prepareRpmPackage('ia32'));
gulp.task('vscode-linux-x64-prepare-rpm', ['clean-rpmbuild', 'clean-vscode-linux-x64-rpm', 'vscode-linux-x64-min'], prepareRpmPackage('x64'));
gulp.task('vscode-linux-ia32-build-rpm', ['vscode-linux-ia32-prepare-rpm'], buildRpmPackage());
gulp.task('vscode-linux-x64-build-rpm', ['vscode-linux-x64-prepare-rpm'], buildRpmPackage());

I
isidor 已提交
398 399
// Sourcemaps

J
Joao Moreno 已提交
400
gulp.task('upload-vscode-sourcemaps', ['minify-vscode'], function () {
I
isidor 已提交
401 402 403 404 405 406 407
	return gulp.src('out-vscode-min/**/*.map')
		.pipe(azure.upload({
			account: process.env.AZURE_STORAGE_ACCOUNT,
			key: process.env.AZURE_STORAGE_ACCESS_KEY,
			container: 'sourcemaps',
			prefix: commit + '/'
		}));
408
});