@process-engine/ci_tools
Version:
CI tools for process-engine.io
51 lines • 2.82 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.isRedundantRunTriggeredBySystemUserPush = exports.isRetryRunForPartiallySuccessfulBuild = exports.getPartiallySuccessfulBuildVersion = void 0;
const package_version_1 = require("./package_version");
const git_helpers_1 = require("./git_helpers");
const git_1 = require("../git/git");
const increment_version_1 = require("./increment_version");
async function getPartiallySuccessfulBuildVersion(mode) {
return getSuspectedPartiallySuccessfulBuildVersion(mode);
}
exports.getPartiallySuccessfulBuildVersion = getPartiallySuccessfulBuildVersion;
async function isRetryRunForPartiallySuccessfulBuild(mode) {
const latestVersion = await getSuspectedPartiallySuccessfulBuildVersion(mode);
if (latestVersion == null) {
return false;
}
const latestVersionTag = (0, git_helpers_1.getVersionTag)(latestVersion);
const latestVersionTagAlreadyExists = (0, git_1.isExistingTag)(latestVersionTag);
return latestVersionTagAlreadyExists && currentCommitIsCommitBeforeTag(latestVersionTag);
}
exports.isRetryRunForPartiallySuccessfulBuild = isRetryRunForPartiallySuccessfulBuild;
async function isRedundantRunTriggeredBySystemUserPush(mode) {
const currentVersionTag = await (0, package_version_1.getPackageVersionTag)(mode);
const nextVersion = await (0, git_helpers_1.getNextVersion)(mode);
const nextVersionTag = (0, git_helpers_1.getVersionTag)(nextVersion);
const currentVersionReleaseChannel = getReleaseChannelFromTagOrVersion(currentVersionTag);
const nextVersionReleaseChannel = getReleaseChannelFromTagOrVersion(nextVersionTag);
const isSameReleaseChannel = currentVersionReleaseChannel === nextVersionReleaseChannel;
const result = isSameReleaseChannel && currentCommitIsTag(currentVersionTag);
return result;
}
exports.isRedundantRunTriggeredBySystemUserPush = isRedundantRunTriggeredBySystemUserPush;
async function getSuspectedPartiallySuccessfulBuildVersion(mode) {
const packageVersion = await (0, package_version_1.getPackageVersion)(mode);
const branchName = (0, git_1.getGitBranch)();
const gitTagList = (0, git_1.getGitTagList)();
const latestVersion = (0, increment_version_1.getExpectedLatestVersion)(packageVersion, branchName, gitTagList);
return latestVersion;
}
function currentCommitIsCommitBeforeTag(tag) {
return currentCommitIsTag(`${tag}^`);
}
function currentCommitIsTag(tag) {
const isParentCommit = (0, git_1.getGitCommitSha1)('HEAD') === (0, git_1.getGitCommitSha1)(tag);
return isParentCommit;
}
function getReleaseChannelFromTagOrVersion(tagNameOrVersion) {
const matched = tagNameOrVersion.match(/^v?\d+\.\d+\.\d+-([^.]+)/);
return matched == null ? null : matched[0];
}
//# sourceMappingURL=retry_run.js.map