func newRelease()

in cmd/release/internal/release.go [69:121]


func newRelease(inputBranch string, inputEnvironment ReleaseEnvironment, overrideNumber *int) (Release, error) {
	inputBranch = strings.TrimSpace(inputBranch)
	if len(inputBranch) == 0 {
		return Release{}, errors.New("branch cannot be an empty string")
	}
	var err error

	release := Release{
		branch:      inputBranch,
		environment: inputEnvironment,
	}

	release.KubeGitVersionFilePath = FormatKubeGitVersionFilePath(&release)

	if overrideNumber != nil {
		release.number, release.previousNumber = convertToNumberAndPrevNumber(*overrideNumber)
	} else {
		release.previousNumber, err = determinePreviousReleaseNumber(&release)
		if err != nil {
			return Release{}, fmt.Errorf("error determining previous number: %v", err)
		}
		release.number, err = determineReleaseNumber(&release)
		if err != nil {
			return Release{}, fmt.Errorf("error determining number: %v", err)
		}
	}

	release.DocsDirectoryPath = formatReleaseDocsDirectory(release.branch, release.number)
	release.ProductionReleasePath = formatEnvironmentReleasePath(release.branch, Production)
	release.DevelopmentReleasePath = formatEnvironmentReleasePath(release.branch, Development)

	branchEKS := release.branch + "-eks"
	release.BranchEKSNumber = fmt.Sprintf("%s-%s", branchEKS, release.number)
	release.BranchEKSPreviousNumber = fmt.Sprintf("%s-%s", branchEKS, release.previousNumber)
	release.BranchWithDot = strings.Replace(release.branch, "-", ".", 1)
	release.BranchWithDotNumber = fmt.Sprintf("%s-%s", release.BranchWithDot, release.number)
	release.EKSBranchNumber = fmt.Sprintf("eks-%s-%s", release.branch, release.number)
	release.EKSBranchPreviousNumber = fmt.Sprintf("eks-%s-%s", release.branch, release.previousNumber)
	release.K8sBranchEKS = "kubernetes-" + branchEKS
	release.K8sBranchEKSNumber = fmt.Sprintf("%s-%s", release.K8sBranchEKS, release.number)
	release.K8sBranchEKSPreviousNumber = fmt.Sprintf("%s-%s", release.K8sBranchEKS, release.previousNumber)
	release.VBranchEKSNumber = "v" + release.BranchEKSNumber
	release.VBranchEKSPreviousNumber = "v" + release.BranchEKSPreviousNumber
	release.VBranchWithDotNumber = "v" + release.BranchWithDotNumber

	release.ManifestURL = formatReleaseManifestURL(release.branch, release.BranchEKSNumber)
	release.PreviousManifestURL = formatReleaseManifestURL(release.branch, release.BranchEKSPreviousNumber)

	releaseJson, _ := json.MarshalIndent(release, "", "\t")
	log.Printf("populated release with:%v", string(releaseJson))

	return release, nil
}