diff --git a/release-notes-fetcher/fetch.go b/release-notes-fetcher/fetch.go index 780c4739..b51bd629 100644 --- a/release-notes-fetcher/fetch.go +++ b/release-notes-fetcher/fetch.go @@ -21,6 +21,7 @@ const MainRepoName = "camunda-platform" const ZeebeRepoName = "camunda" const TasklistRepoName = "tasklist" const IdentityRepoName = "identity" +const OptimizeRepoName = "camunda-optimize" const ReleaseNotesTemplateFileName = "release-notes-template.txt" type CamundaPlatformRelease struct { @@ -29,6 +30,7 @@ type CamundaPlatformRelease struct { OperateReleaseNotes string TasklistReleaseNotes string IdentityReleaseNotes string + OptimizeReleaseNotes string } type camundaAppVersions struct { @@ -36,6 +38,7 @@ type camundaAppVersions struct { Operate string Tasklist string Identity string + Optimize string } func GetChangelogReleaseContents(ctx context.Context, @@ -107,12 +110,14 @@ Camunda application in this release generation: - Operate: %s - Tasklist: %s - Zeebe: %s +- Optimize: %s ` return fmt.Sprintf(releaseOverview, cav.Identity, cav.Operate, cav.Tasklist, cav.Zeebe, + cav.Optimize, ) } @@ -124,11 +129,21 @@ func main() { ) camundaReleaseVersion := getEnv("CAMUNDA_RELEASE_NAME", os.Getenv("GITHUB_REF_NAME")) + camundaReleaseSemver, err := semver.NewVersion(camundaReleaseVersion) + optimizeMonoRepoVersion, optimizeMonoErr := semver.NewVersion("8.6.0") + + // For Optimize <= 8.6.0, tags are using the 3.x.x versioning + optimizeReleaseVersion := camundaReleaseVersion + if camundaReleaseSemver.LessThan(optimizeMonoRepoVersion) { + optimizeReleaseVersion = fmt.Sprintf("%d.%d.%d", camundaReleaseSemver.Major()-5, camundaReleaseSemver.Minor()+8, camundaReleaseSemver.Patch()) + } + camundaAppVersions := camundaAppVersions{ Identity: getEnv("IDENTITY_GITREF", camundaReleaseVersion), Operate: getEnv("OPERATE_GITREF", camundaReleaseVersion), Tasklist: getEnv("TASKLIST_GITREF", camundaReleaseVersion), Zeebe: getEnv("ZEEBE_GITREF", camundaReleaseVersion), + Optimize: getEnv("OPTIMIZE_GITREF", optimizeReleaseVersion), } ctx := context.TODO() @@ -146,6 +161,7 @@ func main() { log.Debug().Msg("Tasklist Github ref = " + camundaAppVersions.Tasklist) log.Debug().Msg("Operate Github ref = " + camundaAppVersions.Operate) log.Debug().Msg("Identity Github ref = " + camundaAppVersions.Identity) + log.Debug().Msg("Optimize Github ref = " + camundaAppVersions.Optimize) zeebeReleaseNotes := GetLatestReleaseContents( ctx, @@ -189,6 +205,39 @@ func main() { ) } + if optimizeMonoErr != nil { + log.Error().Stack().Err(optimizeMonoErr).Msg("Error parsing 8.6.0 version:") + return + } + + optimizeCurrentVersion, err := semver.NewVersion(camundaAppVersions.Optimize) + if err != nil { + log.Error().Stack().Err(err).Msg("Error parsing optimize version:") + return + } + + var OptimizeRepoTag = "" + var OptimizeRepoName = "" + optimizeSingleAppVersion, _ := semver.NewVersion("8.7.0-alpha1") + if optimizeCurrentVersion.LessThan(optimizeMonoRepoVersion) { + OptimizeRepoName = "camunda-optimize" + OptimizeRepoTag = camundaAppVersions.Optimize + } else if optimizeCurrentVersion.LessThan(optimizeSingleAppVersion) { + OptimizeRepoName = "camunda" + OptimizeRepoTag = camundaAppVersions.Optimize + "-optimize" + } + + optimizeReleaseNotesContents := "" + if optimizeCurrentVersion.LessThan(optimizeSingleAppVersion) { + optimizeReleaseNotesContents = GetLatestReleaseContents( + ctx, + RepoOwner, + OptimizeRepoName, + camundaRepoService, + OptimizeRepoTag, + ) + } + var tasklistReleaseNotesContents = "" tasklistSingleAppVersion, _ := semver.NewVersion("8.6.0-alpha1") tasklistCurrentVersion, err := semver.NewVersion(camundaAppVersions.Tasklist) @@ -232,6 +281,7 @@ func main() { OperateReleaseNotes: operateReleaseNotesContents, TasklistReleaseNotes: tasklistReleaseNotesContents, IdentityReleaseNotes: identityReleaseNotesContents, + OptimizeReleaseNotes: optimizeReleaseNotesContents, } err = temp.Execute(os.Stdout, platformRelease) diff --git a/release-notes-fetcher/release-notes-template.txt b/release-notes-fetcher/release-notes-template.txt index dfb99e61..ce1e49f8 100644 --- a/release-notes-fetcher/release-notes-template.txt +++ b/release-notes-fetcher/release-notes-template.txt @@ -12,3 +12,6 @@ # Zeebe {{ .ZeebeReleaseNotes }} + +# Optimize +{{ .OptimizeReleaseNotes }}