Skip to content

Commit e61f375

Browse files
committed
Support downloading pre-built SNAPSHOT artifacts for BWC tests
Add a -Dbwc.useSnapshots=true flag that downloads pre-built SNAPSHOT artifacts from artifacts.opensearch.org for unreleased versions instead of checking out git branches and compiling from source. The default behavior is unchanged. Signed-off-by: Andrew Ross <andrross@amazon.com>
1 parent 2ea2500 commit e61f375

7 files changed

Lines changed: 21 additions & 5 deletions

File tree

buildSrc/src/main/java/org/opensearch/gradle/BwcVersions.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,18 @@ public UnreleasedVersionInfo unreleasedInfo(Version version) {
193193
return unreleased.get(version);
194194
}
195195

196+
/**
197+
* Returns the version string for use in distribution resolution. When {@code bwc.useSnapshots}
198+
* is set, unreleased versions get a "-SNAPSHOT" suffix so they resolve from the snapshot
199+
* artifact repository instead of being built from source.
200+
*/
201+
public String versionString(Version version) {
202+
if (Boolean.parseBoolean(System.getProperty("bwc.useSnapshots", "false")) && unreleased.containsKey(version)) {
203+
return version + "-SNAPSHOT";
204+
}
205+
return version.toString();
206+
}
207+
196208
public void forPreviousUnreleased(Consumer<UnreleasedVersionInfo> consumer) {
197209
List<UnreleasedVersionInfo> collect = getUnreleased().stream()
198210
.filter(version -> version.equals(currentVersion) == false)

buildSrc/src/main/java/org/opensearch/gradle/internal/InternalDistributionDownloadPlugin.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,10 @@ private void registerInternalDistributionResolutions(NamedDomainObjectContainer<
9898
}));
9999

100100
resolutions.register("bwc", distributionResolution -> distributionResolution.setResolver((project, distribution) -> {
101+
// When bwc.useSnapshots is set, skip local builds and download pre-built SNAPSHOT artifacts instead
102+
if (Boolean.parseBoolean(System.getProperty("bwc.useSnapshots", "false"))) {
103+
return null;
104+
}
101105
BwcVersions.UnreleasedVersionInfo unreleasedInfo = bwcVersions.unreleasedInfo(Version.fromString(distribution.getVersion()));
102106
if (unreleasedInfo != null) {
103107
if (distribution.getBundledJdk() == JavaPackageType.NONE) {

qa/full-cluster-restart/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ for (Version bwcVersion : BuildParams.bwcVersions.indexCompatible) {
4444

4545
testClusters {
4646
"${baseName}" {
47-
versions = [bwcVersion.toString(), project.version]
47+
versions = [BuildParams.bwcVersions.versionString(bwcVersion), project.version]
4848
numberOfNodes = 2
4949
// some tests rely on the translog not being flushed
5050
setting 'indices.memory.shard_inactive_time', '60m'

qa/mixed-cluster/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ for (Version bwcVersion : BuildParams.bwcVersions.wireCompatible) {
6161
the nodes has a different minor. */
6262
testClusters {
6363
"${baseName}" {
64-
versions = [bwcVersion.toString(), project.version]
64+
versions = [BuildParams.bwcVersions.versionString(bwcVersion), project.version]
6565
numberOfNodes = 4
6666

6767
setting 'path.repo', "${buildDir}/cluster/shared/repo/${baseName}"

qa/repository-multi-version/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ for (Version bwcVersion : BuildParams.bwcVersions.indexCompatible) {
5454
}
5555

5656
testClusters {
57-
"${oldClusterName}" clusterSettings(bwcVersion.toString())
57+
"${oldClusterName}" clusterSettings(BuildParams.bwcVersions.versionString(bwcVersion))
5858
"${newClusterName}" clusterSettings(project.version)
5959
}
6060

qa/rolling-upgrade/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ for (Version bwcVersion : BuildParams.bwcVersions.wireCompatible) {
5656

5757
testClusters {
5858
"${baseName}" {
59-
versions = [bwcVersionStr, project.version]
59+
versions = [BuildParams.bwcVersions.versionString(bwcVersion), project.version]
6060
numberOfNodes = 3
6161

6262
setting 'repositories.url.allowed_urls', 'http://snapshot.test*'

qa/verify-version-constants/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ for (Version bwcVersion : BuildParams.bwcVersions.indexCompatible) {
4242

4343
testClusters {
4444
"${baseName}" {
45-
version = bwcVersion.toString()
45+
version = BuildParams.bwcVersions.versionString(bwcVersion)
4646
setting 'http.content_type.required', 'true'
4747
}
4848
}

0 commit comments

Comments
 (0)