diff --git a/.circleci/config.yml b/.circleci/config.yml index 6a48f22929..c044ed8508 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -240,7 +240,7 @@ jobs: - capture_test_results - capture_test_logs - acceptanceTestsNonMainnet: + acceptanceTestsCliqueBft: parallelism: 6 executor: xl_machine_executor steps: @@ -258,7 +258,51 @@ jobs: | circleci tests split --split-by=timings --timings-type=classname) # Format the arguments to "./gradlew test" GRADLE_ARGS=$(echo $CLASSNAMES | awk '{for (i=1; i<=NF; i++) print "--tests",$i}') - ./gradlew --no-daemon acceptanceTestNonMainnet $GRADLE_ARGS + ./gradlew --no-daemon acceptanceTestCliqueBft $GRADLE_ARGS + - capture_test_results + - capture_test_logs + + acceptanceTestsPrivacy: + parallelism: 6 + executor: xl_machine_executor + steps: + - prepare + - attach_workspace: + at: ~/project + - run: + name: AcceptanceTests (Non-Mainnet) + no_output_timeout: 20m + command: | + CLASSNAMES=$(circleci tests glob "acceptance-tests/tests/src/test/java/**/*.java" \ + | sed 's@.*/src/test/java/@@' \ + | sed 's@/@.@g' \ + | sed 's/.\{5\}$//' \ + | circleci tests split --split-by=timings --timings-type=classname) + # Format the arguments to "./gradlew test" + GRADLE_ARGS=$(echo $CLASSNAMES | awk '{for (i=1; i<=NF; i++) print "--tests",$i}') + ./gradlew --no-daemon acceptanceTestPrivacy $GRADLE_ARGS + - capture_test_results + - capture_test_logs + + acceptanceTestsPermissioning: + parallelism: 6 + executor: xl_machine_executor + steps: + - prepare + - attach_workspace: + at: ~/project + - run: + name: AcceptanceTests (Non-Mainnet) + no_output_timeout: 20m + command: | + CLASSNAMES=$(circleci tests glob "acceptance-tests/tests/src/test/java/**/*.java" \ + | sed 's@.*/src/test/java/@@' \ + | sed 's@/@.@g' \ + | sed 's/.\{5\}$//' \ + | circleci tests split --split-by=timings --timings-type=classname) + # Format the arguments to "./gradlew test" + GRADLE_ARGS=$(echo $CLASSNAMES | awk '{for (i=1; i<=NF; i++) print "--tests",$i}') + ./gradlew --no-daemon acceptanceTestPermissioning $GRADLE_ARGS - capture_test_results - capture_test_logs @@ -401,6 +445,15 @@ workflows: - acceptanceTests: requires: - assemble + - acceptanceTestsCliqueBft: + requires: + - assemble + - acceptanceTestsPrivacy: + requires: + - assemble + - acceptanceTestsPermissioning: + requires: + - assemble - buildDocker: requires: - assemble @@ -472,4 +525,3 @@ workflows: jobs: - assemble - dockerScan - - acceptanceTestsNonMainnet diff --git a/acceptance-tests/tests/build.gradle b/acceptance-tests/tests/build.gradle index d05636204a..8b23195361 100644 --- a/acceptance-tests/tests/build.gradle +++ b/acceptance-tests/tests/build.gradle @@ -155,11 +155,36 @@ task acceptanceTestMainnet(type: Test) { doFirst { mkdir "${buildDir}/jvmErrorLogs" } } -task acceptanceTestNonMainnet(type: Test) { +task acceptanceTestCliqueBft(type: Test) { inputs.property "integration.date", LocalTime.now() // so it runs at every invocation include '**/bft/**' include '**/clique/**' - include '**/permissioning/**' + + useJUnitPlatform {} + + dependsOn(rootProject.installDist) + setSystemProperties(test.getSystemProperties()) + systemProperty 'acctests.runBesuAsProcess', 'true' + systemProperty 'java.security.properties', "${buildDir}/resources/test/acceptanceTesting.security" + mustRunAfter rootProject.subprojects*.test + description = 'Runs Clique and BFT Besu acceptance tests.' + group = 'verification' + + jvmArgs "-XX:ErrorFile=${buildDir}/jvmErrorLogs/java_err_pid%p.log" + + testLogging { + exceptionFormat = 'full' + showStackTraces = true + showStandardStreams = Boolean.getBoolean('acctests.showStandardStreams') + showExceptions = true + showCauses = true + } + + doFirst { mkdir "${buildDir}/jvmErrorLogs" } +} + +task acceptanceTestPrivacy(type: Test) { + inputs.property "integration.date", LocalTime.now() // so it runs at every invocation include '**/privacy/**' useJUnitPlatform {} @@ -169,7 +194,34 @@ task acceptanceTestNonMainnet(type: Test) { systemProperty 'acctests.runBesuAsProcess', 'true' systemProperty 'java.security.properties', "${buildDir}/resources/test/acceptanceTesting.security" mustRunAfter rootProject.subprojects*.test - description = 'Runs NON-MAINNET Besu acceptance tests for permissioning and privacy (excluding mainnet features).' + description = 'Runs Privacy Besu acceptance tests.' + group = 'verification' + + jvmArgs "-XX:ErrorFile=${buildDir}/jvmErrorLogs/java_err_pid%p.log" + + testLogging { + exceptionFormat = 'full' + showStackTraces = true + showStandardStreams = Boolean.getBoolean('acctests.showStandardStreams') + showExceptions = true + showCauses = true + } + + doFirst { mkdir "${buildDir}/jvmErrorLogs" } +} + +task acceptanceTestPermissioning(type: Test) { + inputs.property "integration.date", LocalTime.now() // so it runs at every invocation + include '**/permissioning/**' + + useJUnitPlatform {} + + dependsOn(rootProject.installDist) + setSystemProperties(test.getSystemProperties()) + systemProperty 'acctests.runBesuAsProcess', 'true' + systemProperty 'java.security.properties', "${buildDir}/resources/test/acceptanceTesting.security" + mustRunAfter rootProject.subprojects*.test + description = 'Runs Permissioning Besu acceptance tests.' group = 'verification' jvmArgs "-XX:ErrorFile=${buildDir}/jvmErrorLogs/java_err_pid%p.log"