From 703e73a121b4deec3b89d940eb722c7b87ef61f8 Mon Sep 17 00:00:00 2001 From: Ryan Ernst Date: Wed, 14 Jun 2017 13:56:11 -0700 Subject: [PATCH 1/2] Build: Add master flag for disabling bwc tests This commit adds a gradle project, set inside the root build.gradle, which controls all our bwc tests. This allows for seamless (ie no errant CI failures) backporting of behavior. --- build.gradle | 20 +++++++++++++++++++- qa/full-cluster-restart/build.gradle | 7 ++++++- qa/mixed-cluster/build.gradle | 7 ++++++- qa/rolling-upgrade/build.gradle | 8 +++++++- 4 files changed, 38 insertions(+), 4 deletions(-) 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..a9a20e3e72319 100644 --- a/qa/full-cluster-restart/build.gradle +++ b/qa/full-cluster-restart/build.gradle @@ -30,6 +30,9 @@ task bwcTest { } for (Version version : indexCompatVersions) { + if (project.bwc_tests_enabled == false) { + continue + } String baseName = "v${version}" Task oldClusterTest = tasks.create(name: "${baseName}#oldClusterTest", type: RestIntegTestTask) { @@ -86,7 +89,9 @@ test.enabled = false // no unit tests for rolling upgrades, only the rest integr // 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..c7ab5ab08242c 100644 --- a/qa/mixed-cluster/build.gradle +++ b/qa/mixed-cluster/build.gradle @@ -30,6 +30,9 @@ task bwcTest { } for (Version version : wireCompatVersions) { + if (project.bwc_tests_enabled == false) { + continue + } String baseName = "v${version}" Task mixedClusterTest = tasks.create(name: "${baseName}#mixedClusterTest", type: RestIntegTestTask) { @@ -58,7 +61,9 @@ test.enabled = false // no unit tests for rolling upgrades, only the rest integr // 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..f704bc14662a9 100644 --- a/qa/rolling-upgrade/build.gradle +++ b/qa/rolling-upgrade/build.gradle @@ -30,6 +30,9 @@ task bwcTest { } for (Version version : wireCompatVersions) { + if (project.bwc_tests_enabled == false) { + continue + } String baseName = "v${version}" Task oldClusterTest = tasks.create(name: "${baseName}#oldClusterTest", type: RestIntegTestTask) { @@ -95,6 +98,7 @@ for (Version version : wireCompatVersions) { } Task versionBwcTest = tasks.create(name: "${baseName}#bwcTest") { + enabled = project.bwc_tests_enabled dependsOn = [upgradedClusterTest] } @@ -105,7 +109,9 @@ test.enabled = false // no unit tests for rolling upgrades, only the rest integr // 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) From 294db0366055be32feb60dcf98a8a1df68ca313f Mon Sep 17 00:00:00 2001 From: Ryan Ernst Date: Wed, 14 Jun 2017 15:18:39 -0700 Subject: [PATCH 2/2] keep tasks, just disable adding to wrapper task --- qa/full-cluster-restart/build.gradle | 7 +++---- qa/mixed-cluster/build.gradle | 7 +++---- qa/rolling-upgrade/build.gradle | 7 +++---- 3 files changed, 9 insertions(+), 12 deletions(-) diff --git a/qa/full-cluster-restart/build.gradle b/qa/full-cluster-restart/build.gradle index a9a20e3e72319..6554962d4f70b 100644 --- a/qa/full-cluster-restart/build.gradle +++ b/qa/full-cluster-restart/build.gradle @@ -30,9 +30,6 @@ task bwcTest { } for (Version version : indexCompatVersions) { - if (project.bwc_tests_enabled == false) { - continue - } String baseName = "v${version}" Task oldClusterTest = tasks.create(name: "${baseName}#oldClusterTest", type: RestIntegTestTask) { @@ -82,7 +79,9 @@ 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 diff --git a/qa/mixed-cluster/build.gradle b/qa/mixed-cluster/build.gradle index c7ab5ab08242c..66185325931d8 100644 --- a/qa/mixed-cluster/build.gradle +++ b/qa/mixed-cluster/build.gradle @@ -30,9 +30,6 @@ task bwcTest { } for (Version version : wireCompatVersions) { - if (project.bwc_tests_enabled == false) { - continue - } String baseName = "v${version}" Task mixedClusterTest = tasks.create(name: "${baseName}#mixedClusterTest", type: RestIntegTestTask) { @@ -54,7 +51,9 @@ 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 diff --git a/qa/rolling-upgrade/build.gradle b/qa/rolling-upgrade/build.gradle index f704bc14662a9..b5f841601308e 100644 --- a/qa/rolling-upgrade/build.gradle +++ b/qa/rolling-upgrade/build.gradle @@ -30,9 +30,6 @@ task bwcTest { } for (Version version : wireCompatVersions) { - if (project.bwc_tests_enabled == false) { - continue - } String baseName = "v${version}" Task oldClusterTest = tasks.create(name: "${baseName}#oldClusterTest", type: RestIntegTestTask) { @@ -102,7 +99,9 @@ for (Version version : wireCompatVersions) { 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