dce-dev-wizard
Version:
Wizard for managing development apps at Harvard DCE.
151 lines • 5.56 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var path_1 = __importDefault(require("path"));
var clear_1 = __importDefault(require("clear"));
// Import helpers
var showChooser_1 = __importDefault(require("../helpers/showChooser"));
var getDeploymentConfig_1 = __importDefault(require("../operations/getDeploymentConfig"));
var print_1 = __importDefault(require("../helpers/print"));
var exec_1 = __importDefault(require("../helpers/exec"));
var getPackageJSON_1 = __importDefault(require("../helpers/getPackageJSON"));
// Get current working directory
var currDir = (process.env.PWD || process.env.CWD);
/**
* Perform a deploy now
* @author Gabe Abrams
* @param deployment the currently selected deployment
*/
var deployNow = function (deployment) {
// Choose an operation
var tag = (0, showChooser_1.default)({
question: 'Have you changed the deploy config?',
options: [
{
description: 'Yes, I changed env vars, branch, and/or version',
tag: 'Y',
},
{
description: 'No, I just want to deploy with same config',
tag: 'N',
},
],
title: 'Ready to Deploy',
}).tag;
// Show loading indicator
(0, clear_1.default)();
console.log('Loading current info...\n');
var deployConfig = (0, getDeploymentConfig_1.default)(deployment);
// Get last part of the app image
var parts = deployConfig.appImage.split(':');
var branchOrVersion = parts[parts.length - 1];
// Check type
var isVersion = branchOrVersion.includes('.');
// Process branch name
var processedBranchName = branchOrVersion.replace('-', '/');
// Information
(0, clear_1.default)();
print_1.default.title('About to Deploy');
console.log('');
console.log('Information:');
console.log("Deploying to: ".concat(deployment.name));
console.log("Branch: ".concat(isVersion ? 'main branch' : processedBranchName));
console.log("Version: ".concat(isVersion ? branchOrVersion : '[Most Recent Build]'));
if (tag === 'Y') {
console.log('Operation: update deploy config then restart');
}
else {
console.log('Operation: restart with unmodified config');
}
console.log('');
// Ask for confirmation
var confirmOption = (0, showChooser_1.default)({
question: 'Ready to continue?',
options: [
{
description: 'Yes',
tag: 'Y',
},
{
description: 'No',
tag: 'N',
},
],
dontClear: true,
});
if (confirmOption.tag === 'N') {
// Cancel
(0, clear_1.default)();
print_1.default.title('Cancelled!');
console.log('');
print_1.default.enterToContinue();
return;
}
// Ask user if they waited for the action to build
var packageJSON = (0, getPackageJSON_1.default)(path_1.default.join(currDir, 'package.json'));
if (packageJSON.repository && packageJSON.repository.url) {
var actionsPanelURL = (packageJSON.repository.url
.replace('git+http', 'http')
.replace('.git', '/actions'));
// Print warning
(0, clear_1.default)();
print_1.default.title('Did you wait for the action to finish?');
console.log('');
console.log('Actions panel:');
console.log(actionsPanelURL);
console.log('');
print_1.default.enterToContinue();
}
// Redeploy
if (tag === 'Y') {
(0, clear_1.default)();
console.log('Loading diff...\n');
// Confirm diff
var diff = (0, exec_1.default)("./node_modules/.bin/caccl-deploy stack --profile ".concat(deployment.profile, " --app ").concat(deployment.app, " diff"));
console.log('');
print_1.default.title('Confirm Deploy Config Diff:');
console.log('');
console.log(diff);
// Ask user to confirm
var secondaryConfirmOption = (0, showChooser_1.default)({
question: 'Ready to continue?',
options: [
{
description: 'Yes',
tag: 'Y',
},
{
description: 'No',
tag: 'N',
},
],
dontClear: true,
});
if (secondaryConfirmOption.tag === 'N') {
// Cancel
(0, clear_1.default)();
print_1.default.title('Cancelled!');
console.log('');
print_1.default.enterToContinue();
return;
}
// Deploy (update config)
(0, exec_1.default)("./node_modules/.bin/caccl-deploy stack --profile ".concat(deployment.profile, " --app ").concat(deployment.app, " deploy -y"), true);
}
else {
// Restart
(0, clear_1.default)();
console.log('Restarting service...');
console.log('');
(0, exec_1.default)("./node_modules/.bin/caccl-deploy restart --profile ".concat(deployment.profile, " --app ").concat(deployment.app, " -y"), true);
}
// Confirmation
(0, clear_1.default)();
print_1.default.title('Deploy Successful');
console.log('');
print_1.default.enterToContinue();
};
exports.default = deployNow;
//# sourceMappingURL=deployNow.js.map