print all stats at the end of the package task

This commit is contained in:
Johannes Rieken
2018-09-03 11:51:26 +02:00
parent 165bb1aa63
commit 07141d4e6b
7 changed files with 89 additions and 10 deletions
+8 -2
View File
@@ -327,6 +327,12 @@ function packageTask(platform, arch, opts) {
.pipe(rename('bin/' + product.applicationName))); .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)); 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-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-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-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-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-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-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-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-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-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 })); gulp.task('vscode-linux-arm-min', ['minify-vscode', 'clean-vscode-linux-arm'], packageTask('linux', 'arm', { minified: true }));
+1 -1
View File
@@ -115,7 +115,7 @@ function fromLocal(extensionPath, sourceMappingURLBase) {
filesStream.pipe(result); filesStream.pipe(result);
} }
}).catch(function (err) { return result.emit('error', err); }); }).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; exports.fromLocal = fromLocal;
function error(err) { function error(err) {
+1 -1
View File
@@ -132,7 +132,7 @@ export function fromLocal(extensionPath: string, sourceMappingURLBase?: string):
}).catch(err => result.emit('error', err)); }).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 { function error(err: any): Stream {
+1 -1
View File
@@ -103,7 +103,7 @@ function toConcatStream(src, bundledFileHeader, sources, dest) {
return es.readArray(treatedSources) return es.readArray(treatedSources)
.pipe(useSourcemaps ? util.loadSourcemaps() : es.through()) .pipe(useSourcemaps ? util.loadSourcemaps() : es.through())
.pipe(concat(dest)) .pipe(concat(dest))
.pipe(stats_1.createStatsStream(dest, true)); .pipe(stats_1.createStatsStream(dest));
} }
function toBundleStream(src, bundledFileHeader, bundles) { function toBundleStream(src, bundledFileHeader, bundles) {
return es.merge(bundles.map(function (bundle) { return es.merge(bundles.map(function (bundle) {
+1 -1
View File
@@ -123,7 +123,7 @@ function toConcatStream(src: string, bundledFileHeader: string, sources: bundle.
return es.readArray(treatedSources) return es.readArray(treatedSources)
.pipe(useSourcemaps ? util.loadSourcemaps() : es.through()) .pipe(useSourcemaps ? util.loadSourcemaps() : es.through())
.pipe(concat(dest)) .pipe(concat(dest))
.pipe(createStatsStream(dest, true)); .pipe(createStatsStream(dest));
} }
function toBundleStream(src: string, bundledFileHeader: string, bundles: bundle.IConcatFile[]): NodeJS.ReadWriteStream { function toBundleStream(src: string, bundledFileHeader: string, bundles: bundle.IConcatFile[]): NodeJS.ReadWriteStream {
+40 -2
View File
@@ -12,8 +12,26 @@ var Entry = /** @class */ (function () {
this.totalCount = totalCount; this.totalCount = totalCount;
this.totalSize = totalSize; this.totalSize = totalSize;
} }
Entry.prototype.toString = function () { Entry.prototype.toString = function (pretty) {
return this.name + ": " + this.totalCount + " files with " + this.totalSize + " bytes"; 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; return Entry;
}()); }());
@@ -52,3 +70,23 @@ function createStatsStream(group, log) {
}); });
} }
exports.createStatsStream = createStatsStream; 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
View File
@@ -12,8 +12,25 @@ import * as File from 'vinyl';
class Entry { class Entry {
constructor(readonly name: string, public totalCount: number, public totalSize: number) { } constructor(readonly name: string, public totalCount: number, public totalSize: number) { }
toString(): string { toString(pretty?: boolean): string {
return `${this.name}: ${this.totalCount} files with ${this.totalSize} bytes`; 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'); 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));
}
}