UNPKG

@process-engine/ci_tools

Version:
51 lines 2.82 kB
"use strict"; 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