From efc27d693f325814ef8d502844ea31a431d8a84e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20de=20la=20Pe=C3=B1a?= Date: Thu, 14 Oct 2021 12:23:46 +0100 Subject: [PATCH] Save CircleCI resources with optional test jobs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit patch by Andrés de la Peña; reviewed by Ekaterina Dimitrova and Berenguer Blasi for CASSANDRA-16882 --- .circleci/config-2_1.yml | 267 +++++++++++++++++++++++------------ .circleci/config.yml | 102 +++++++++++-- .circleci/config.yml.HIGHRES | 102 +++++++++++-- .circleci/config.yml.LOWRES | 102 +++++++++++-- .circleci/config.yml.MIDRES | 102 +++++++++++-- 5 files changed, 537 insertions(+), 138 deletions(-) diff --git a/.circleci/config-2_1.yml b/.circleci/config-2_1.yml index c5e2583a10..70348fb36d 100644 --- a/.circleci/config-2_1.yml +++ b/.circleci/config-2_1.yml @@ -122,104 +122,183 @@ j8_seq_executor: &j8_seq_executor parallelism: 1 # sequential, single container tests: no parallelism benefits with_dtests_jobs: &with_dtest_jobs - jobs: - - build - # Java 8 unit tests will be run automatically - - j8_unit_tests: - requires: - - build - - j8_jvm_dtests: - requires: - - build - # specialized unit tests (all run on request using Java 8) - - start_utests_long: - type: approval - requires: - - build - - utests_long: - requires: - - start_utests_long - - start_utests_compression: - type: approval - requires: - - build - - utests_compression: - requires: - - start_utests_compression - - start_j8_dtest_jars_build: - type: approval - - j8_dtest_jars_build: - requires: - - build - - start_j8_dtest_jars_build - - start_jvm_upgrade_dtest: - type: approval - - j8_jvm_upgrade_dtests: - requires: - - start_jvm_upgrade_dtest - - j8_dtest_jars_build - # Java 8 dtests (on request) - - start_j8_dtests: - type: approval - requires: - - build - - j8_dtests-with-vnodes: - requires: - - start_j8_dtests - - j8_dtests-no-vnodes: - requires: - - start_j8_dtests - # Java 8 upgrade tests - - start_upgrade_tests: - type: approval - requires: - - build - - j8_upgradetests-no-vnodes: - requires: - - start_upgrade_tests - # Java 8 repeated utest (on request) - - start_j8_repeated_utest: - type: approval - - j8_repeated_utest: - requires: - - start_j8_repeated_utest - - build - # Java 8 repeated dtest (on request) - - start_j8_repeated_dtest: - type: approval - - j8_repeated_dtest: - requires: - - start_j8_repeated_dtest - - build - # Repeated Python upgrade dtest (on request) - - start_repeated_upgrade_dtest: - type: approval - - repeated_upgrade_dtest: - requires: - - start_repeated_upgrade_dtest - - build - # Repeated JVM upgrade dtest (on request) - - start_repeated_jvm_upgrade_dtest: - type: approval - - repeated_jvm_upgrade_dtest: - requires: - - start_repeated_jvm_upgrade_dtest - - j8_dtest_jars_build + jobs: + - start_build: + type: approval + - build: + requires: + - start_build + # Java 8 unit tests + - start_j8_unit_tests: + type: approval + - j8_unit_tests: + requires: + - start_j8_unit_tests + - build + - start_j8_jvm_dtests: + type: approval + - j8_jvm_dtests: + requires: + - start_j8_jvm_dtests + - build + # specialized unit tests (all run using Java 8) + - start_utests_long: + type: approval + - utests_long: + requires: + - start_utests_long + - build + - start_utests_compression: + type: approval + - utests_compression: + requires: + - start_utests_compression + - build + - start_j8_dtest_jars_build: + type: approval + - j8_dtest_jars_build: + requires: + - start_j8_dtest_jars_build + - build + - start_jvm_upgrade_dtest: + type: approval + - j8_jvm_upgrade_dtests: + requires: + - start_jvm_upgrade_dtest + - j8_dtest_jars_build + # Java 8 dtests + - start_j8_dtests: + type: approval + - j8_dtests-with-vnodes: + requires: + - start_j8_dtests + - build + - j8_dtests-no-vnodes: + requires: + - start_j8_dtests + - build + # Java 8 upgrade tests + - start_upgrade_tests: + type: approval + - j8_upgradetests-no-vnodes: + requires: + - start_upgrade_tests + - build + # Java 8 repeated utest + - start_j8_repeated_utest: + type: approval + - j8_repeated_utest: + requires: + - start_j8_repeated_utest + - build + # Java 8 repeated dtest + - start_j8_repeated_dtest: + type: approval + - j8_repeated_dtest: + requires: + - start_j8_repeated_dtest + - build + # Repeated Python upgrade dtest + - start_repeated_upgrade_dtest: + type: approval + - repeated_upgrade_dtest: + requires: + - start_repeated_upgrade_dtest + - build + # Repeated JVM upgrade dtest + - start_repeated_jvm_upgrade_dtest: + type: approval + - repeated_jvm_upgrade_dtest: + requires: + - start_repeated_jvm_upgrade_dtest + - j8_dtest_jars_build -with_dtest_jobs_only: &with_dtest_jobs_only - jobs: - - build - - j8_dtests-with-vnodes: - requires: - - build - - j8_dtests-no-vnodes: - requires: - - build +pre-commit_jobs: &pre-commit_jobs + jobs: + - start_pre-commit_tests: + type: approval + - build: + requires: + - start_pre-commit_tests + # Java 8 unit tests will be run automatically + - j8_unit_tests: + requires: + - build + - j8_jvm_dtests: + requires: + - build + # specialized unit tests (all run on request using Java 8) + - start_utests_long: + type: approval + - utests_long: + requires: + - start_utests_long + - build + - start_utests_compression: + type: approval + - utests_compression: + requires: + - start_utests_compression + - build + - start_j8_dtest_jars_build: + type: approval + - j8_dtest_jars_build: + requires: + - start_j8_dtest_jars_build + - build + - start_jvm_upgrade_dtest: + type: approval + - j8_jvm_upgrade_dtests: + requires: + - start_jvm_upgrade_dtest + - j8_dtest_jars_build + # Java 8 dtests + - j8_dtests-with-vnodes: + requires: + - build + - j8_dtests-no-vnodes: + requires: + - build + # Java 8 upgrade tests (on request) + - start_upgrade_tests: + type: approval + - j8_upgradetests-no-vnodes: + requires: + - start_upgrade_tests + - build + # Java 8 repeated utest (on request) + - start_j8_repeated_utest: + type: approval + - j8_repeated_utest: + requires: + - start_j8_repeated_utest + - build + # Java 8 repeated dtest (on request) + - start_j8_repeated_dtest: + type: approval + - j8_repeated_dtest: + requires: + - start_j8_repeated_dtest + - build + # Repeated Python upgrade dtest (on request) + - start_repeated_upgrade_dtest: + type: approval + - repeated_upgrade_dtest: + requires: + - start_repeated_upgrade_dtest + - build + # Repeated JVM upgrade dtest (on request) + - start_repeated_jvm_upgrade_dtest: + type: approval + - repeated_jvm_upgrade_dtest: + requires: + - start_repeated_jvm_upgrade_dtest + - j8_dtest_jars_build workflows: version: 2 - build_and_run_tests: *with_dtest_jobs - #build_and_run_tests: *with_dtest_jobs_only + separate_tests: *with_dtest_jobs + pre-commit_tests: *pre-commit_jobs executors: java8-executor: diff --git a/.circleci/config.yml b/.circleci/config.yml index d22f8e9416..92c0a590e8 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -1556,35 +1556,43 @@ jobs: - JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64 workflows: version: 2 - build_and_run_tests: + separate_tests: jobs: - - build + - start_build: + type: approval + - build: + requires: + - start_build + - start_j8_unit_tests: + type: approval - j8_unit_tests: requires: + - start_j8_unit_tests - build + - start_j8_jvm_dtests: + type: approval - j8_jvm_dtests: requires: + - start_j8_jvm_dtests - build - start_utests_long: type: approval - requires: - - build - utests_long: requires: - start_utests_long + - build - start_utests_compression: type: approval - requires: - - build - utests_compression: requires: - start_utests_compression + - build - start_j8_dtest_jars_build: type: approval - j8_dtest_jars_build: requires: - - build - start_j8_dtest_jars_build + - build - start_jvm_upgrade_dtest: type: approval - j8_jvm_upgrade_dtests: @@ -1593,21 +1601,93 @@ workflows: - j8_dtest_jars_build - start_j8_dtests: type: approval - requires: - - build - j8_dtests-with-vnodes: requires: - start_j8_dtests + - build - j8_dtests-no-vnodes: requires: - start_j8_dtests + - build - start_upgrade_tests: type: approval - requires: - - build - j8_upgradetests-no-vnodes: requires: - start_upgrade_tests + - build + - start_j8_repeated_utest: + type: approval + - j8_repeated_utest: + requires: + - start_j8_repeated_utest + - build + - start_j8_repeated_dtest: + type: approval + - j8_repeated_dtest: + requires: + - start_j8_repeated_dtest + - build + - start_repeated_upgrade_dtest: + type: approval + - repeated_upgrade_dtest: + requires: + - start_repeated_upgrade_dtest + - build + - start_repeated_jvm_upgrade_dtest: + type: approval + - repeated_jvm_upgrade_dtest: + requires: + - start_repeated_jvm_upgrade_dtest + - j8_dtest_jars_build + pre-commit_tests: + jobs: + - start_pre-commit_tests: + type: approval + - build: + requires: + - start_pre-commit_tests + - j8_unit_tests: + requires: + - build + - j8_jvm_dtests: + requires: + - build + - start_utests_long: + type: approval + - utests_long: + requires: + - start_utests_long + - build + - start_utests_compression: + type: approval + - utests_compression: + requires: + - start_utests_compression + - build + - start_j8_dtest_jars_build: + type: approval + - j8_dtest_jars_build: + requires: + - start_j8_dtest_jars_build + - build + - start_jvm_upgrade_dtest: + type: approval + - j8_jvm_upgrade_dtests: + requires: + - start_jvm_upgrade_dtest + - j8_dtest_jars_build + - j8_dtests-with-vnodes: + requires: + - build + - j8_dtests-no-vnodes: + requires: + - build + - start_upgrade_tests: + type: approval + - j8_upgradetests-no-vnodes: + requires: + - start_upgrade_tests + - build - start_j8_repeated_utest: type: approval - j8_repeated_utest: diff --git a/.circleci/config.yml.HIGHRES b/.circleci/config.yml.HIGHRES index d7396c7bab..4702215a38 100644 --- a/.circleci/config.yml.HIGHRES +++ b/.circleci/config.yml.HIGHRES @@ -1556,35 +1556,43 @@ jobs: - JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64 workflows: version: 2 - build_and_run_tests: + separate_tests: jobs: - - build + - start_build: + type: approval + - build: + requires: + - start_build + - start_j8_unit_tests: + type: approval - j8_unit_tests: requires: + - start_j8_unit_tests - build + - start_j8_jvm_dtests: + type: approval - j8_jvm_dtests: requires: + - start_j8_jvm_dtests - build - start_utests_long: type: approval - requires: - - build - utests_long: requires: - start_utests_long + - build - start_utests_compression: type: approval - requires: - - build - utests_compression: requires: - start_utests_compression + - build - start_j8_dtest_jars_build: type: approval - j8_dtest_jars_build: requires: - - build - start_j8_dtest_jars_build + - build - start_jvm_upgrade_dtest: type: approval - j8_jvm_upgrade_dtests: @@ -1593,21 +1601,93 @@ workflows: - j8_dtest_jars_build - start_j8_dtests: type: approval - requires: - - build - j8_dtests-with-vnodes: requires: - start_j8_dtests + - build - j8_dtests-no-vnodes: requires: - start_j8_dtests + - build - start_upgrade_tests: type: approval - requires: - - build - j8_upgradetests-no-vnodes: requires: - start_upgrade_tests + - build + - start_j8_repeated_utest: + type: approval + - j8_repeated_utest: + requires: + - start_j8_repeated_utest + - build + - start_j8_repeated_dtest: + type: approval + - j8_repeated_dtest: + requires: + - start_j8_repeated_dtest + - build + - start_repeated_upgrade_dtest: + type: approval + - repeated_upgrade_dtest: + requires: + - start_repeated_upgrade_dtest + - build + - start_repeated_jvm_upgrade_dtest: + type: approval + - repeated_jvm_upgrade_dtest: + requires: + - start_repeated_jvm_upgrade_dtest + - j8_dtest_jars_build + pre-commit_tests: + jobs: + - start_pre-commit_tests: + type: approval + - build: + requires: + - start_pre-commit_tests + - j8_unit_tests: + requires: + - build + - j8_jvm_dtests: + requires: + - build + - start_utests_long: + type: approval + - utests_long: + requires: + - start_utests_long + - build + - start_utests_compression: + type: approval + - utests_compression: + requires: + - start_utests_compression + - build + - start_j8_dtest_jars_build: + type: approval + - j8_dtest_jars_build: + requires: + - start_j8_dtest_jars_build + - build + - start_jvm_upgrade_dtest: + type: approval + - j8_jvm_upgrade_dtests: + requires: + - start_jvm_upgrade_dtest + - j8_dtest_jars_build + - j8_dtests-with-vnodes: + requires: + - build + - j8_dtests-no-vnodes: + requires: + - build + - start_upgrade_tests: + type: approval + - j8_upgradetests-no-vnodes: + requires: + - start_upgrade_tests + - build - start_j8_repeated_utest: type: approval - j8_repeated_utest: diff --git a/.circleci/config.yml.LOWRES b/.circleci/config.yml.LOWRES index d22f8e9416..92c0a590e8 100644 --- a/.circleci/config.yml.LOWRES +++ b/.circleci/config.yml.LOWRES @@ -1556,35 +1556,43 @@ jobs: - JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64 workflows: version: 2 - build_and_run_tests: + separate_tests: jobs: - - build + - start_build: + type: approval + - build: + requires: + - start_build + - start_j8_unit_tests: + type: approval - j8_unit_tests: requires: + - start_j8_unit_tests - build + - start_j8_jvm_dtests: + type: approval - j8_jvm_dtests: requires: + - start_j8_jvm_dtests - build - start_utests_long: type: approval - requires: - - build - utests_long: requires: - start_utests_long + - build - start_utests_compression: type: approval - requires: - - build - utests_compression: requires: - start_utests_compression + - build - start_j8_dtest_jars_build: type: approval - j8_dtest_jars_build: requires: - - build - start_j8_dtest_jars_build + - build - start_jvm_upgrade_dtest: type: approval - j8_jvm_upgrade_dtests: @@ -1593,21 +1601,93 @@ workflows: - j8_dtest_jars_build - start_j8_dtests: type: approval - requires: - - build - j8_dtests-with-vnodes: requires: - start_j8_dtests + - build - j8_dtests-no-vnodes: requires: - start_j8_dtests + - build - start_upgrade_tests: type: approval - requires: - - build - j8_upgradetests-no-vnodes: requires: - start_upgrade_tests + - build + - start_j8_repeated_utest: + type: approval + - j8_repeated_utest: + requires: + - start_j8_repeated_utest + - build + - start_j8_repeated_dtest: + type: approval + - j8_repeated_dtest: + requires: + - start_j8_repeated_dtest + - build + - start_repeated_upgrade_dtest: + type: approval + - repeated_upgrade_dtest: + requires: + - start_repeated_upgrade_dtest + - build + - start_repeated_jvm_upgrade_dtest: + type: approval + - repeated_jvm_upgrade_dtest: + requires: + - start_repeated_jvm_upgrade_dtest + - j8_dtest_jars_build + pre-commit_tests: + jobs: + - start_pre-commit_tests: + type: approval + - build: + requires: + - start_pre-commit_tests + - j8_unit_tests: + requires: + - build + - j8_jvm_dtests: + requires: + - build + - start_utests_long: + type: approval + - utests_long: + requires: + - start_utests_long + - build + - start_utests_compression: + type: approval + - utests_compression: + requires: + - start_utests_compression + - build + - start_j8_dtest_jars_build: + type: approval + - j8_dtest_jars_build: + requires: + - start_j8_dtest_jars_build + - build + - start_jvm_upgrade_dtest: + type: approval + - j8_jvm_upgrade_dtests: + requires: + - start_jvm_upgrade_dtest + - j8_dtest_jars_build + - j8_dtests-with-vnodes: + requires: + - build + - j8_dtests-no-vnodes: + requires: + - build + - start_upgrade_tests: + type: approval + - j8_upgradetests-no-vnodes: + requires: + - start_upgrade_tests + - build - start_j8_repeated_utest: type: approval - j8_repeated_utest: diff --git a/.circleci/config.yml.MIDRES b/.circleci/config.yml.MIDRES index 1222997100..6865856b98 100644 --- a/.circleci/config.yml.MIDRES +++ b/.circleci/config.yml.MIDRES @@ -1556,35 +1556,43 @@ jobs: - JDK_HOME: /usr/lib/jvm/java-8-openjdk-amd64 workflows: version: 2 - build_and_run_tests: + separate_tests: jobs: - - build + - start_build: + type: approval + - build: + requires: + - start_build + - start_j8_unit_tests: + type: approval - j8_unit_tests: requires: + - start_j8_unit_tests - build + - start_j8_jvm_dtests: + type: approval - j8_jvm_dtests: requires: + - start_j8_jvm_dtests - build - start_utests_long: type: approval - requires: - - build - utests_long: requires: - start_utests_long + - build - start_utests_compression: type: approval - requires: - - build - utests_compression: requires: - start_utests_compression + - build - start_j8_dtest_jars_build: type: approval - j8_dtest_jars_build: requires: - - build - start_j8_dtest_jars_build + - build - start_jvm_upgrade_dtest: type: approval - j8_jvm_upgrade_dtests: @@ -1593,21 +1601,93 @@ workflows: - j8_dtest_jars_build - start_j8_dtests: type: approval - requires: - - build - j8_dtests-with-vnodes: requires: - start_j8_dtests + - build - j8_dtests-no-vnodes: requires: - start_j8_dtests + - build - start_upgrade_tests: type: approval - requires: - - build - j8_upgradetests-no-vnodes: requires: - start_upgrade_tests + - build + - start_j8_repeated_utest: + type: approval + - j8_repeated_utest: + requires: + - start_j8_repeated_utest + - build + - start_j8_repeated_dtest: + type: approval + - j8_repeated_dtest: + requires: + - start_j8_repeated_dtest + - build + - start_repeated_upgrade_dtest: + type: approval + - repeated_upgrade_dtest: + requires: + - start_repeated_upgrade_dtest + - build + - start_repeated_jvm_upgrade_dtest: + type: approval + - repeated_jvm_upgrade_dtest: + requires: + - start_repeated_jvm_upgrade_dtest + - j8_dtest_jars_build + pre-commit_tests: + jobs: + - start_pre-commit_tests: + type: approval + - build: + requires: + - start_pre-commit_tests + - j8_unit_tests: + requires: + - build + - j8_jvm_dtests: + requires: + - build + - start_utests_long: + type: approval + - utests_long: + requires: + - start_utests_long + - build + - start_utests_compression: + type: approval + - utests_compression: + requires: + - start_utests_compression + - build + - start_j8_dtest_jars_build: + type: approval + - j8_dtest_jars_build: + requires: + - start_j8_dtest_jars_build + - build + - start_jvm_upgrade_dtest: + type: approval + - j8_jvm_upgrade_dtests: + requires: + - start_jvm_upgrade_dtest + - j8_dtest_jars_build + - j8_dtests-with-vnodes: + requires: + - build + - j8_dtests-no-vnodes: + requires: + - build + - start_upgrade_tests: + type: approval + - j8_upgradetests-no-vnodes: + requires: + - start_upgrade_tests + - build - start_j8_repeated_utest: type: approval - j8_repeated_utest: