@tinymce/beehive-flow
Version:
A CLI tool implementing the beehive flow git branching process
35 lines • 1.87 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.prepare = void 0;
const tslib_1 = require("tslib");
const Git = tslib_1.__importStar(require("../utils/Git"));
const BranchLogic_1 = require("../core/BranchLogic");
const AdvanceVersion = tslib_1.__importStar(require("../core/AdvanceVersion"));
const PromiseUtils = tslib_1.__importStar(require("../utils/PromiseUtils"));
const Messages_1 = require("../core/Messages");
const updateMainBranch = async (mainBranch, git, branchDetails) => {
console.log(`Updating ${mainBranch} branch`);
await git.checkout(mainBranch);
const rootModule = branchDetails.rootModule;
await AdvanceVersion.advanceMinor(branchDetails.version, rootModule.packageJson, rootModule.packageJsonFile, git);
};
const prepare = async (args) => {
(0, Messages_1.printHeaderMessage)(args);
const gitUrl = await Git.resolveGitUrl(args.gitUrl, args.workingDir);
const { dir, git } = await Git.cloneInTempFolder(gitUrl, args.temp);
const mainBranch = await Git.checkoutMainBranch(git);
const branchDetails = await (0, BranchLogic_1.getBranchDetails)(dir);
if (branchDetails.branchState !== "releaseCandidate" /* BranchState.ReleaseCandidate */) {
return PromiseUtils.fail('main branch should have an rc version when running this command');
}
const releaseBranchName = (0, BranchLogic_1.getReleaseBranchName)(branchDetails.version);
await Git.branchShouldNotExist(git, releaseBranchName);
// Create the release branch
await (0, BranchLogic_1.createReleaseBranch)(releaseBranchName, git, dir);
await Git.pushUnlessDryRun(dir, git, args.dryRun);
// Update the main branch
await updateMainBranch(mainBranch, git, branchDetails);
await Git.pushUnlessDryRun(dir, git, args.dryRun);
};
exports.prepare = prepare;
//# sourceMappingURL=Prepare.js.map