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.
|
|
|
"use strict";
|
|
|
|
|
|
|
|
const fs = require('fs');
|
|
|
|
const path = require('path');
|
|
|
|
const Archiver = require('archiver');
|
|
|
|
|
|
|
|
module.exports = (params, processor) => ({
|
|
|
|
process: () => {
|
|
|
|
const sourceDirectoryPath = path.normalize(processor.context.exported + "/" + (params.directory || ""));
|
|
|
|
const targetArchivePath = path.normalize(processor.context.release + "/" + params.archive);
|
|
|
|
|
|
|
|
processor.onInfo("Compressing '" + params.directory + "' to " + params.archive);
|
|
|
|
|
|
|
|
const output = fs.createWriteStream(targetArchivePath);
|
|
|
|
const archive = new Archiver("zip");
|
|
|
|
|
|
|
|
output.on("close", () => processor.done());
|
|
|
|
|
|
|
|
archive.on("error", (err) => processor.onError("Error while compressing: " + err));
|
|
|
|
archive.pipe(output);
|
|
|
|
archive.directory(sourceDirectoryPath, false);
|
|
|
|
archive.finalize();
|
|
|
|
}
|
|
|
|
});
|