From db9686b55355b51af21e548f3795e97c499d6576 Mon Sep 17 00:00:00 2001 From: Mark Vieira Date: Tue, 4 Mar 2025 09:25:11 -0800 Subject: [PATCH] Add build artifact containing json file of all wire compatible versions (#123740) (cherry picked from commit e54037b7d0d2e66a2e6f50809e2efb199ab7a09a) # Conflicts: # build.gradle --- build.gradle | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/build.gradle b/build.gradle index 1d6788ad13e94..abecea6742682 100644 --- a/build.gradle +++ b/build.gradle @@ -222,6 +222,22 @@ tasks.register("verifyVersions") { } } +def generateUpgradeCompatibilityFile = tasks.register("generateUpgradeCompatibilityFile") { + def outputFile = project.layout.buildDirectory.file("rolling-upgrade-compatible-${VersionProperties.elasticsearch}.json") + def rollingUpgradeCompatibleVersions = buildParams.bwcVersions.wireCompatible - VersionProperties.elasticsearchVersion + inputs.property("rollingUpgradeCompatibleVersions", rollingUpgradeCompatibleVersions) + outputs.file(outputFile) + doLast { + def versionsString = rollingUpgradeCompatibleVersions.collect { "\"${it.toString()}\"" }.join(', ') + outputFile.get().asFile.write("""{"rolling_upgrade_compatible_versions" : [${versionsString}]}""") + } +} + +def upgradeCompatibilityZip = tasks.register("upgradeCompatibilityZip", Zip) { + archiveFile.set(project.layout.buildDirectory.file("rolling-upgrade-compatible-${VersionProperties.elasticsearch}.zip")) + from(generateUpgradeCompatibilityFile) +} + /* * When adding backcompat behavior that spans major versions, temporarily * disabling the backcompat tests is necessary. This flag controls @@ -490,6 +506,7 @@ tasks.register("buildReleaseArtifacts").configure { } .collect { GradleUtils.findByName(it.tasks, 'assemble') } .findAll { it != null } + dependsOn upgradeCompatibilityZip } tasks.register("spotlessApply").configure {