eae5d8c807
These conflicts will be resolved in the following commits. We do it this way so that PR review is possible.
68 lines
2.1 KiB
TypeScript
68 lines
2.1 KiB
TypeScript
/*---------------------------------------------------------------------------------------------
|
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
*--------------------------------------------------------------------------------------------*/
|
|
|
|
'use strict';
|
|
|
|
import * as path from 'path';
|
|
import * as es from 'event-stream';
|
|
import * as Vinyl from 'vinyl';
|
|
import * as vfs from 'vinyl-fs';
|
|
import * as util from '../lib/util';
|
|
// @ts-ignore
|
|
import * as deps from '../lib/dependencies';
|
|
const azure = require('gulp-azure-storage');
|
|
|
|
const root = path.dirname(path.dirname(__dirname));
|
|
const commit = util.getVersion(root);
|
|
|
|
// optionally allow to pass in explicit base/maps to upload
|
|
const [, , base, maps] = process.argv;
|
|
|
|
function src(base: string, maps = `${base}/**/*.map`) {
|
|
return vfs.src(maps, { base })
|
|
.pipe(es.mapSync((f: Vinyl) => {
|
|
f.path = `${f.base}/core/${f.relative}`;
|
|
return f;
|
|
}));
|
|
}
|
|
|
|
function main() {
|
|
const sources = [];
|
|
|
|
// vscode client maps (default)
|
|
if (!base) {
|
|
const vs = src('out-vscode-min'); // client source-maps only
|
|
sources.push(vs);
|
|
|
|
const productionDependencies: { name: string, path: string, version: string }[] = deps.getProductionDependencies(root);
|
|
const productionDependenciesSrc = productionDependencies.map(d => path.relative(root, d.path)).map(d => `./${d}/**/*.map`);
|
|
const nodeModules = vfs.src(productionDependenciesSrc, { base: '.' })
|
|
.pipe(util.cleanNodeModules(path.join(root, 'build', '.moduleignore')));
|
|
sources.push(nodeModules);
|
|
|
|
const extensionsOut = vfs.src(['.build/extensions/**/*.js.map', '!**/node_modules/**'], { base: '.build' });
|
|
sources.push(extensionsOut);
|
|
}
|
|
|
|
// specific client base/maps
|
|
else {
|
|
sources.push(src(base, maps));
|
|
}
|
|
|
|
return es.merge(...sources)
|
|
.pipe(es.through(function (data: Vinyl) {
|
|
console.log('Uploading Sourcemap', data.relative); // debug
|
|
this.emit('data', data);
|
|
}))
|
|
.pipe(azure.upload({
|
|
account: process.env.AZURE_STORAGE_ACCOUNT,
|
|
key: process.env.AZURE_STORAGE_ACCESS_KEY,
|
|
container: 'sourcemaps',
|
|
prefix: commit + '/'
|
|
}));
|
|
}
|
|
|
|
main();
|