mirror of
https://github.com/microsoft/vscode.git
synced 2026-05-08 09:08:48 +01:00
print all stats at the end of the package task
This commit is contained in:
@@ -327,6 +327,12 @@ function packageTask(platform, arch, opts) {
|
||||
.pipe(rename('bin/' + product.applicationName)));
|
||||
}
|
||||
|
||||
// submit all stats that have been collected during
|
||||
// the build phase
|
||||
if (opts.stats) {
|
||||
result.on('end', () => require('./lib/stats').submitAllStats());
|
||||
}
|
||||
|
||||
return result.pipe(vfs.dest(destination));
|
||||
};
|
||||
}
|
||||
@@ -342,14 +348,14 @@ gulp.task('clean-vscode-linux-arm', util.rimraf(path.join(buildRoot, 'VSCode-lin
|
||||
|
||||
gulp.task('vscode-win32-ia32', ['optimize-vscode', 'clean-vscode-win32-ia32'], packageTask('win32', 'ia32'));
|
||||
gulp.task('vscode-win32-x64', ['optimize-vscode', 'clean-vscode-win32-x64'], packageTask('win32', 'x64'));
|
||||
gulp.task('vscode-darwin', ['optimize-vscode', 'clean-vscode-darwin'], packageTask('darwin'));
|
||||
gulp.task('vscode-darwin', ['optimize-vscode', 'clean-vscode-darwin'], packageTask('darwin', null, { stats: true }));
|
||||
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'));
|
||||
gulp.task('vscode-linux-arm', ['optimize-vscode', 'clean-vscode-linux-arm'], packageTask('linux', 'arm'));
|
||||
|
||||
gulp.task('vscode-win32-ia32-min', ['minify-vscode', 'clean-vscode-win32-ia32'], packageTask('win32', 'ia32', { minified: true }));
|
||||
gulp.task('vscode-win32-x64-min', ['minify-vscode', 'clean-vscode-win32-x64'], packageTask('win32', 'x64', { minified: true }));
|
||||
gulp.task('vscode-darwin-min', ['minify-vscode', 'clean-vscode-darwin'], packageTask('darwin', null, { minified: true }));
|
||||
gulp.task('vscode-darwin-min', ['minify-vscode', 'clean-vscode-darwin'], packageTask('darwin', null, { minified: true, stats: 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 }));
|
||||
gulp.task('vscode-linux-arm-min', ['minify-vscode', 'clean-vscode-linux-arm'], packageTask('linux', 'arm', { minified: true }));
|
||||
|
||||
@@ -115,7 +115,7 @@ function fromLocal(extensionPath, sourceMappingURLBase) {
|
||||
filesStream.pipe(result);
|
||||
}
|
||||
}).catch(function (err) { return result.emit('error', err); });
|
||||
return result.pipe(stats_1.createStatsStream(path.basename(extensionPath), true));
|
||||
return result.pipe(stats_1.createStatsStream(path.basename(extensionPath)));
|
||||
}
|
||||
exports.fromLocal = fromLocal;
|
||||
function error(err) {
|
||||
|
||||
@@ -132,7 +132,7 @@ export function fromLocal(extensionPath: string, sourceMappingURLBase?: string):
|
||||
|
||||
}).catch(err => result.emit('error', err));
|
||||
|
||||
return result.pipe(createStatsStream(path.basename(extensionPath), true));
|
||||
return result.pipe(createStatsStream(path.basename(extensionPath)));
|
||||
}
|
||||
|
||||
function error(err: any): Stream {
|
||||
|
||||
@@ -103,7 +103,7 @@ function toConcatStream(src, bundledFileHeader, sources, dest) {
|
||||
return es.readArray(treatedSources)
|
||||
.pipe(useSourcemaps ? util.loadSourcemaps() : es.through())
|
||||
.pipe(concat(dest))
|
||||
.pipe(stats_1.createStatsStream(dest, true));
|
||||
.pipe(stats_1.createStatsStream(dest));
|
||||
}
|
||||
function toBundleStream(src, bundledFileHeader, bundles) {
|
||||
return es.merge(bundles.map(function (bundle) {
|
||||
|
||||
@@ -123,7 +123,7 @@ function toConcatStream(src: string, bundledFileHeader: string, sources: bundle.
|
||||
return es.readArray(treatedSources)
|
||||
.pipe(useSourcemaps ? util.loadSourcemaps() : es.through())
|
||||
.pipe(concat(dest))
|
||||
.pipe(createStatsStream(dest, true));
|
||||
.pipe(createStatsStream(dest));
|
||||
}
|
||||
|
||||
function toBundleStream(src: string, bundledFileHeader: string, bundles: bundle.IConcatFile[]): NodeJS.ReadWriteStream {
|
||||
|
||||
+40
-2
@@ -12,8 +12,26 @@ var Entry = /** @class */ (function () {
|
||||
this.totalCount = totalCount;
|
||||
this.totalSize = totalSize;
|
||||
}
|
||||
Entry.prototype.toString = function () {
|
||||
return this.name + ": " + this.totalCount + " files with " + this.totalSize + " bytes";
|
||||
Entry.prototype.toString = function (pretty) {
|
||||
if (!pretty) {
|
||||
if (this.totalCount === 1) {
|
||||
return this.name + ": " + this.totalSize + " bytes";
|
||||
}
|
||||
else {
|
||||
return this.name + ": " + this.totalCount + " files with " + this.totalSize + " bytes";
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (this.totalCount === 1) {
|
||||
return "Stats for '" + util.colors.grey(this.name) + "': " + Math.round(this.totalSize / 1204) + "KB";
|
||||
}
|
||||
else {
|
||||
var count = this.totalCount < 100
|
||||
? util.colors.green(this.totalCount.toString())
|
||||
: util.colors.red(this.totalCount.toString());
|
||||
return "Stats for '" + util.colors.grey(this.name) + "': " + count + " files, " + Math.round(this.totalSize / 1204) + "KB";
|
||||
}
|
||||
}
|
||||
};
|
||||
return Entry;
|
||||
}());
|
||||
@@ -52,3 +70,23 @@ function createStatsStream(group, log) {
|
||||
});
|
||||
}
|
||||
exports.createStatsStream = createStatsStream;
|
||||
function submitAllStats() {
|
||||
var sorted = [];
|
||||
// move entries for single files to the
|
||||
// front
|
||||
_entries.forEach(function (value) {
|
||||
if (value.totalCount === 1) {
|
||||
sorted.unshift(value);
|
||||
}
|
||||
else {
|
||||
sorted.push(value);
|
||||
}
|
||||
});
|
||||
// todo@ramya/joh - send the data as telemetry event
|
||||
// so that it can be stored in the datawarehouse
|
||||
for (var _i = 0, sorted_1 = sorted; _i < sorted_1.length; _i++) {
|
||||
var entry = sorted_1[_i];
|
||||
console.log(entry.toString(true));
|
||||
}
|
||||
}
|
||||
exports.submitAllStats = submitAllStats;
|
||||
|
||||
+37
-2
@@ -12,8 +12,25 @@ import * as File from 'vinyl';
|
||||
class Entry {
|
||||
constructor(readonly name: string, public totalCount: number, public totalSize: number) { }
|
||||
|
||||
toString(): string {
|
||||
return `${this.name}: ${this.totalCount} files with ${this.totalSize} bytes`;
|
||||
toString(pretty?: boolean): string {
|
||||
if (!pretty) {
|
||||
if (this.totalCount === 1) {
|
||||
return `${this.name}: ${this.totalSize} bytes`;
|
||||
} else {
|
||||
return `${this.name}: ${this.totalCount} files with ${this.totalSize} bytes`;
|
||||
}
|
||||
} else {
|
||||
if (this.totalCount === 1) {
|
||||
return `Stats for '${util.colors.grey(this.name)}': ${Math.round(this.totalSize / 1204)}KB`;
|
||||
|
||||
} else {
|
||||
let count = this.totalCount < 100
|
||||
? util.colors.green(this.totalCount.toString())
|
||||
: util.colors.red(this.totalCount.toString());
|
||||
|
||||
return `Stats for '${util.colors.grey(this.name)}': ${count} files, ${Math.round(this.totalSize / 1204)}KB`;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -54,3 +71,21 @@ export function createStatsStream(group: string, log?: boolean): es.ThroughStrea
|
||||
this.emit('end');
|
||||
});
|
||||
}
|
||||
|
||||
export function submitAllStats(): void {
|
||||
let sorted: Entry[] = [];
|
||||
// move entries for single files to the
|
||||
// front
|
||||
_entries.forEach(value => {
|
||||
if (value.totalCount === 1) {
|
||||
sorted.unshift(value);
|
||||
} else {
|
||||
sorted.push(value);
|
||||
}
|
||||
});
|
||||
// todo@ramya/joh - send the data as telemetry event
|
||||
// so that it can be stored in the datawarehouse
|
||||
for (const entry of sorted) {
|
||||
console.log(entry.toString(true));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user