UNPKG

dce-dev-wizard

Version:

Wizard for managing development apps at Harvard DCE.

151 lines 5.56 kB
"use strict"; 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