Build server prototype (integration with GitHub / NuGet / etc)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
micro-build-server/BuildServer/compress-old-reports.ts

37 lines
982 B

"use strict";
const fs = require("fs");
const path = require("path");
const zlib = require("zlib");
const glob = require("glob");
const async = require("async");
const settings = require("./settings");
const streamsNumber = 100;
glob("**\\report.json", { "cwd": settings.releasepath }, (globErr, files) => {
if (globErr) {
return console.log(globErr);
}
return async.parallelLimit(files.map((file) => (callback) => {
const originalPath = path.join(settings.releasepath, file);
const newPath = `${originalPath}.gz`;
console.log(file);
fs.createReadStream(originalPath)
.pipe(zlib.createGzip())
.pipe(fs.createWriteStream(newPath))
.on("error", callback)
.on("finish", () => {
fs.unlink(originalPath, callback);
});
}), streamsNumber, (err) => {
if (err) {
console.log(err);
}
console.log("Done");
});
});