diff --git a/diff.js b/diff.js index 5287f256a3..00881ff540 100644 --- a/diff.js +++ b/diff.js @@ -110,6 +110,7 @@ function buildUpgradePackage(versionFrom, params) var fs = require('fs'); var sys = require('util'); var cp = require('child_process'); + var archiver = require('archiver'); var version = (require('./package.json') || {}).version; @@ -122,7 +123,11 @@ function buildUpgradePackage(versionFrom, params) var diffFilePath = currentPath + '/build/diff'; var diffBeforeUpgradeFilePath = currentPath + '/build/diffBeforeUpgrade'; - var upgradePath = currentPath + '/build/EspoCRM-upgrade-' + acceptedVersionName + '-to-' + version; + var folderName = 'EspoCRM-upgrade-' + acceptedVersionName + '-to-' + version; + + var upgradePath = currentPath + '/build/' + folderName; + + var zipPath = currentPath + '/build/' + folderName + '.zip'; var upgradeDataFolder = versionFrom + '-' + version; var isMinorVersion = false; @@ -160,6 +165,8 @@ function buildUpgradePackage(versionFrom, params) deleteDirRecursively(diffBeforeUpgradeFilePath); deleteDirRecursively(upgradePath); + if (fs.existsSync(zipPath)) fs.unlinkSync(zipPath); + execute('git rev-parse --abbrev-ref HEAD', function (branch) { branch = branch.trim(); if (branch !== 'master' && branch !== 'stable' && branch.indexOf('hotfix/') !== 0) { @@ -273,13 +280,21 @@ function buildUpgradePackage(versionFrom, params) if (fs.existsSync(diffFilePath)) { fs.unlinkSync(diffFilePath); } - if (fs.existsSync(diffFilePath)) { + if (fs.existsSync(diffBeforeUpgradeFilePath)) { fs.unlinkSync(diffBeforeUpgradeFilePath); } - - console.log("Upgrade package has been built: "+name+""); - - resolve(); + var zipOutput = fs.createWriteStream(zipPath); + var archive = archiver('zip'); + archive.on('error', function (err) { + throw err; + }); + zipOutput.on('close', function () { + console.log("Upgrade package has been built: "+name+""); + deleteDirRecursively(upgradePath); + resolve(); + }); + archive.directory(upgradePath, false).pipe(zipOutput); + archive.finalize(); }); }); diff --git a/package.json b/package.json index 75a1bc6f01..f3be170433 100644 --- a/package.json +++ b/package.json @@ -25,5 +25,8 @@ "js-yaml": "^3.13.1", "pofile": "~1.0.11", "tar": "^4.4.8" + }, + "dependencies": { + "archiver": "^3.1.1" } }