gulpfile.vscode.js 18.1 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
var util = require('./lib/util');
var buildfile = require('../src/buildfile');
var common = require('./gulpfile.common');
25
var nlsDev = require('vscode-nls-dev');
I
isidor 已提交
26
var root = path.dirname(__dirname);
J
Joao Moreno 已提交
27
var build = path.join(root, '.build');
J
Joao Moreno 已提交
28
var commit = util.getVersion(root);
I
isidor 已提交
29 30

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

// Build

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

var vscodeResources = [
J
Joao Moreno 已提交
49
	'out-build/main.js',
J
Joao Moreno 已提交
50
	'out-build/cli.js',
I
isidor 已提交
51
	'out-build/bootstrap.js',
J
Joao Moreno 已提交
52
	'out-build/bootstrap-amd.js',
I
isidor 已提交
53 54 55 56
	'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}',
57
	'out-build/vs/base/browser/ui/octiconLabel/octicons/**',
I
isidor 已提交
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
	'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'));
J
Joao Moreno 已提交
79
gulp.task('optimize-vscode', ['clean-optimized-vscode', 'compile-build', 'compile-extensions-build'], common.optimizeTask({
I
isidor 已提交
80 81 82 83 84 85 86 87 88
	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 已提交
89
gulp.task('minify-vscode', ['clean-minified-vscode', 'optimize-vscode'], common.minifyTask('out-vscode', true));
I
isidor 已提交
90 91

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

var config = {
J
Joao Moreno 已提交
96
	version: packageJson.electronVersion,
I
isidor 已提交
97
	productAppName: product.nameLong,
J
Joao Moreno 已提交
98 99 100
	companyName: 'Microsoft Corporation',
	copyright: 'Copyright (C) 2015 Microsoft. All rights reserved',
	darwinIcon: 'resources/darwin/code.icns',
I
isidor 已提交
101
	darwinBundleIdentifier: product.darwinBundleIdentifier,
J
Joao Moreno 已提交
102 103 104 105 106
	darwinApplicationCategoryType: 'public.app-category.developer-tools',
	darwinBundleDocumentTypes: [{
		name: product.nameLong + ' document',
		role: 'Editor',
		ostypes: ["TEXT", "utxt", "TUTX", "****"],
107
		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"],
J
Joao Moreno 已提交
108 109
		iconFile: 'resources/darwin/code_file.icns'
	}],
I
isidor 已提交
110
	darwinCredits: darwinCreditsTemplate ? new Buffer(darwinCreditsTemplate({ commit: commit, date: new Date().toISOString() })) : void 0,
111
	linuxExecutableName: product.applicationName,
J
Joao Moreno 已提交
112
	winIcon: 'resources/win32/code.ico',
I
isidor 已提交
113 114 115 116 117
	token: process.env['GITHUB_TOKEN'] || void 0
};

gulp.task('electron', function () {
	// Force windows to use ia32
J
Joao Moreno 已提交
118
	var arch = process.env.VSCODE_ELECTRON_PLATFORM || (process.platform === 'win32' ? 'ia32' : process.arch);
J
Joao Moreno 已提交
119
	return electron.dest(path.join(build, 'electron'), _.extend({}, config, { arch: arch }));
I
isidor 已提交
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
});

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()
	}));
}
145
var languages = ['chs', 'cht', 'jpn', 'kor', 'deu', 'fra', 'esn', 'rus', 'ita'];
I
isidor 已提交
146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164

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/**',
165
			'!extensions/typescript/bin/**',
166 167 168 169 170
			'!extensions/vscode-api-tests/**',
			'!extensions/json/server/.vscode/**',
			'!extensions/json/server/src/**',
			'!extensions/json/server/out/**/test/**',
			'!extensions/json/server/test/**',
171
			'!extensions/json/server/typings/**'
I
isidor 已提交
172 173
		], { base: '.' });

J
Joao Moreno 已提交
174
		var sources = es.merge(src, extensions)
175
			.pipe(nlsDev.createAdditionalLanguageFiles(languages, path.join(__dirname, '..', 'i18n')))
J
Joao Moreno 已提交
176 177
			.pipe(filter(['**', '!**/*.js.map']))
			.pipe(util.handleAzureJson({ platform: platform }));
I
isidor 已提交
178

J
Joao Moreno 已提交
179 180 181 182 183 184 185 186 187 188 189
		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 已提交
190 191 192 193

		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 已提交
194
		var depsSrc = _.flatten(Object.keys(packageJson.dependencies).concat(Object.keys(packageJson.optionalDependencies))
J
Joao Moreno 已提交
195 196
			.map(function (d) { return ['node_modules/' + d + '/**', '!node_modules/' + d + '/**/{test,tests}/**']; })
		);
I
isidor 已提交
197 198 199

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

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

		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 已提交
218 219 220 221 222
		} 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 已提交
223
		}
I
isidor 已提交
224 225

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

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

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

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

J
Joao Moreno 已提交
243
		return result.pipe(symdest(destination));
I
isidor 已提交
244 245 246
	};
}

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

251 252 253 254
function getEpochTime() {
	return Math.floor(new Date().getTime() / 1000);
}

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

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

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

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

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

		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 已提交
283
					.pipe(replace('@@NAME@@', product.applicationName))
J
Joao Moreno 已提交
284 285 286
					.pipe(replace('@@VERSION@@', packageJson.version + '-' + packageRevision))
					.pipe(replace('@@ARCHITECTURE@@', debArch))
					.pipe(replace('@@INSTALLEDSIZE@@', Math.ceil(size / 1024)))
J
Joao Moreno 已提交
287
					.pipe(rename('DEBIAN/control'))
J
Joao Moreno 已提交
288
					.pipe(es.through(function (f) { that.emit('data', f); }, function () { that.emit('end'); }));
289 290
			}));

291 292 293 294 295
		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);
296 297 298 299 300 301 302 303 304 305

		// 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);
306 307 308 309 310
		} 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);
311 312
		}

D
Daniel Imms 已提交
313
		return all.pipe(symdest(destination));
314 315 316 317
	};
}

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

326 327 328 329 330 331 332 333
function getHomeDir() {
	if (typeof os.homedir === 'function') {
		return os.homedir();
	}
	return process.env[(process.platform == 'win32') ? 'USERPROFILE' : 'HOME'];
}

var rpmBuildPath = path.join(getHomeDir(), 'rpmbuild');
D
Daniel Imms 已提交
334

335 336 337 338
function getRpmPackageArch(arch) {
	return { x64: 'x86_64', ia32: 'i386' }[arch];
}

D
Daniel Imms 已提交
339 340
function prepareRpmPackage(arch) {
	var binaryDir = '../VSCode-linux-' + arch;
J
Joao Moreno 已提交
341
	var destination = rpmBuildPath;
D
Daniel Imms 已提交
342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371
	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));
	}
}

372 373
function buildRpmPackage(arch) {
	var rpmArch = getRpmPackageArch(arch);
D
Daniel Imms 已提交
374
	return shell.task([
375
		'fakeroot rpmbuild -bb ' + rpmBuildPath + '/SPECS/' + product.applicationName + '.spec --target=' + rpmArch,
D
Daniel Imms 已提交
376 377 378
	]);
}

I
isidor 已提交
379 380 381 382
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')));
383
gulp.task('clean-vscode-linux-arm', util.rimraf(path.join(path.dirname(root), 'VSCode-linux-arm')));
384 385
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 已提交
386 387
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 已提交
388
gulp.task('clean-rpmbuild', util.rimraf(rpmBuildPath));
I
isidor 已提交
389

390
gulp.task('vscode-win32', ['optimize-vscode', 'clean-vscode-win32'], packageTask('win32'));
J
oops  
Joao Moreno 已提交
391
gulp.task('vscode-darwin', ['optimize-vscode', 'clean-vscode-darwin'], packageTask('darwin'));
I
isidor 已提交
392 393
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'));
394
gulp.task('vscode-linux-arm', ['optimize-vscode', 'clean-vscode-linux-arm'], packageTask('linux', 'arm'));
I
isidor 已提交
395 396 397 398 399

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 }));
400
gulp.task('vscode-linux-arm-min', ['minify-vscode', 'clean-vscode-linux-arm'], packageTask('linux', 'arm', { minified: true }));
I
isidor 已提交
401

J
Joao Moreno 已提交
402 403
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'));
404 405 406
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 已提交
407 408
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'));
409 410
gulp.task('vscode-linux-ia32-build-rpm', ['vscode-linux-ia32-prepare-rpm'], buildRpmPackage('ia32'));
gulp.task('vscode-linux-x64-build-rpm', ['vscode-linux-x64-prepare-rpm'], buildRpmPackage('x64'));
D
Daniel Imms 已提交
411

I
isidor 已提交
412 413
// Sourcemaps

J
Joao Moreno 已提交
414
gulp.task('upload-vscode-sourcemaps', ['minify-vscode'], function () {
I
isidor 已提交
415 416 417 418 419 420 421
	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 + '/'
		}));
422
});