diff --git a/build.gradle b/build.gradle index 00d1730a26cb2..e1b21d07a70f8 100644 --- a/build.gradle +++ b/build.gradle @@ -152,10 +152,28 @@ task verifyVersions { } } +/* + * When adding backcompat behavior that spans major versions, temporarily + * disabling the backcompat tests is necessary. This flag controls + * the enabled state of every bwc task. It should be set back to true + * after the backport of the backcompat code is complete. + */ +allprojects { + ext.bwc_tests_enabled = true +} + +task verifyBwcTestsEnabled { + doLast { + if (project.bwc_tests_enabled == false) { + throw new GradleException('Bwc tests are disabled. They must be re-enabled after completing backcompat behavior backporting.') + } + } +} + task branchConsistency { description 'Ensures this branch is internally consistent. For example, that versions constants match released versions.' group 'Verification' - dependsOn verifyVersions + dependsOn verifyVersions, verifyBwcTestsEnabled } subprojects { diff --git a/qa/full-cluster-restart/build.gradle b/qa/full-cluster-restart/build.gradle index 92378719573a9..6554962d4f70b 100644 --- a/qa/full-cluster-restart/build.gradle +++ b/qa/full-cluster-restart/build.gradle @@ -79,14 +79,18 @@ for (Version version : indexCompatVersions) { dependsOn = [upgradedClusterTest] } - bwcTest.dependsOn(versionBwcTest) + if (project.bwc_tests_enabled == false) { + bwcTest.dependsOn(versionBwcTest) + } } test.enabled = false // no unit tests for rolling upgrades, only the rest integration test // basic integ tests includes testing bwc against the most recent version task integTest { - dependsOn = ["v${indexCompatVersions[-1]}#bwcTest"] + if (project.bwc_tests_enabled) { + dependsOn = ["v${indexCompatVersions[-1]}#bwcTest"] + } } check.dependsOn(integTest) diff --git a/qa/mixed-cluster/build.gradle b/qa/mixed-cluster/build.gradle index a0f6b92e9e729..66185325931d8 100644 --- a/qa/mixed-cluster/build.gradle +++ b/qa/mixed-cluster/build.gradle @@ -51,14 +51,18 @@ for (Version version : wireCompatVersions) { dependsOn = [mixedClusterTest] } - bwcTest.dependsOn(versionBwcTest) + if (project.bwc_tests_enabled) { + bwcTest.dependsOn(versionBwcTest) + } } test.enabled = false // no unit tests for rolling upgrades, only the rest integration test // basic integ tests includes testing bwc against the most recent version task integTest { - dependsOn = ["v${wireCompatVersions[-1]}#bwcTest"] + if (project.bwc_tests_enabled) { + dependsOn = ["v${wireCompatVersions[-1]}#bwcTest"] + } } check.dependsOn(integTest) diff --git a/qa/rolling-upgrade/build.gradle b/qa/rolling-upgrade/build.gradle index 03cbf24bdcf26..b5f841601308e 100644 --- a/qa/rolling-upgrade/build.gradle +++ b/qa/rolling-upgrade/build.gradle @@ -95,17 +95,22 @@ for (Version version : wireCompatVersions) { } Task versionBwcTest = tasks.create(name: "${baseName}#bwcTest") { + enabled = project.bwc_tests_enabled dependsOn = [upgradedClusterTest] } - bwcTest.dependsOn(versionBwcTest) + if (project.bwc_tests_enabled) { + bwcTest.dependsOn(versionBwcTest) + } } test.enabled = false // no unit tests for rolling upgrades, only the rest integration test // basic integ tests includes testing bwc against the most recent version task integTest { - dependsOn = ["v${wireCompatVersions[-1]}#bwcTest"] + if (project.bwc_tests_enabled) { + dependsOn = ["v${wireCompatVersions[-1]}#bwcTest"] + } } check.dependsOn(integTest)