Added new job for Quorum Acceptance Tests (#2122)

* ci/cd: added new job for GoQ Acceptance Tests running against Besu in GoQuorum mode

Signed-off-by: Ricardo Silva <ricardo.silva@consensys.net>

* ci/cd: fixed missing workflow config

Signed-off-by: Ricardo Silva <ricardo.silva@consensys.net>

* fix: add missing setup_remote_docker

Signed-off-by: Ricardo Silva <ricardo.silva@consensys.net>

* gradle: moved configuration to run the GoQ AT to the gradle file and added capturer of artifacts for circleci

Signed-off-by: Ricardo Silva <ricardo.silva@consensys.net>

* tidy: remove unused executer

Signed-off-by: Ricardo Silva <ricardo.silva@consensys.net>

* fix: remove unused dependency

Signed-off-by: Ricardo Silva <ricardo.silva@consensys.net>

* refactor: moved tags to a separate variable

Signed-off-by: Ricardo Silva <ricardo.silva@consensys.net>

* fix: increase resource for at executor

Signed-off-by: Ricardo Silva <ricardo.silva@consensys.net>

* fix: ignore GoQ AT job to break pipeline

Signed-off-by: Ricardo Silva <ricardo.silva@consensys.net>

* feature: updated tags for the GoQ AT

Signed-off-by: Ricardo Silva <ricardo.silva@consensys.net>

* fix: formatting

Signed-off-by: Ricardo Silva <ricardo.silva@consensys.net>

* fix: remove istanbul tests

Signed-off-by: Ricardo Silva <ricardo.silva@consensys.net>

* doc: renaming to Quorum. remove todo.

Signed-off-by: Ricardo Silva <ricardo.silva@consensys.net>

* fix: ignore graphql tests

Signed-off-by: Ricardo Silva <ricardo.silva@consensys.net>

* feature: add RPC logs to acceptanceTestsQuorum
Signed-off-by: Ricardo Silva <ricardo.silva@consensys.net>

* fix: ignore eth-api-signed

Signed-off-by: Ricardo Silva <ricardo.silva@consensys.net>

* fix: ignore public estimate gas tests

Signed-off-by: Ricardo Silva <ricardo.silva@consensys.net>

* fix: remove randomness

Signed-off-by: Ricardo Silva <ricardo.silva@consensys.net>
pull/2167/head
Ricardo Silva 4 years ago committed by GitHub
parent 1c25b825b0
commit 166f6d724e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 35
      .circleci/config.yml
  2. 35
      build.gradle

@ -30,6 +30,11 @@ executors:
machine:
image: ubuntu-2004:202010-01
acceptance_tests_executor:
machine:
image: ubuntu-2004:202101-01
resource_class: xlarge
notify:
webhooks:
- url: $HUBOT_URL
@ -103,7 +108,7 @@ jobs:
- ./
- store_artifacts:
name: Distribution artifacts
path: build/distributions
path: build/distributions
destination: distributions
when: always
testWindows:
@ -208,6 +213,23 @@ jobs:
command: ./gradlew --no-daemon containerTests -i
- capture_test_results
acceptanceTestsQuorum:
parallelism: 1
executor: acceptance_tests_executor
steps:
- prepare
- attach_workspace:
at: ~/project
- run:
name: Quorum Acceptance Tests (failures ignored)
no_output_timeout: 40m
command: ./gradlew --no-daemon acceptanceTestsQuorum || true # ignore result of job for now, until all issues are fixed
- store_artifacts:
path: build/quorum-at
destination: quorum-at-artifacts
- store_test_results:
path: build/quorum-at/openjdk-latest/reports/xml-report
buildDocker:
executor: besu_executor_med
steps:
@ -281,17 +303,22 @@ workflows:
requires:
- assemble
context:
- besu-dockerhub-ro
- besu-dockerhub-ro
- integrationTests:
requires:
- assemble
context:
- besu-dockerhub-ro
- besu-dockerhub-ro
- acceptanceTests:
requires:
- assemble
context:
- besu-dockerhub-ro
- acceptanceTestsQuorum:
requires:
- buildDocker
context:
- besu-dockerhub-ro
- containerTests:
requires:
- assemble
@ -301,7 +328,7 @@ workflows:
requires:
- assemble
context:
- besu-dockerhub-ro
- besu-dockerhub-ro
- publish:
filters:
branches:

@ -652,6 +652,41 @@ task testDocker {
}
}
task acceptanceTestsQuorum {
dependsOn distDocker
/**
* Tags Description
*
* Basic tests for private and public tx: basic
* Start a Besu/EthSigner/Tessera network with IBFT2: networks/typical-besu::ibft2
*
* Not available features in Besu: privacy-enhancements-disabled, extension
* Not available RPC methods in Besu: async, storage-root, get-quorum-payload, personal-api-signed
*
* Ignored for now (privacy-polishing): graphql, eth-api-signed, (estimategas && public)
*
* LOGGING_LEVEL_COM_QUORUM_GAUGE=DEBUG -- enables HTTP JSON-RPC logging
*/
def tags = "(basic && !(estimategas && public) && !eth-api-signed && !privacy-enhancements-disabled && !graphql && !async && !extension && !storage-root && !get-quorum-payload && !personal-api-signed) || networks/typical-besu::ibft2"
doLast {
exec {
def variant = "openjdk-latest"
def variantDirectory = "${buildDir}/quorum-at/${variant}"
def dataDirectory = "${variantDirectory}/data"
def reportsDirectory = "${variantDirectory}/reports"
new File(dataDirectory).mkdirs()
new File(reportsDirectory).mkdirs()
def image = project.hasProperty('release.releaseVersion') ? "hyperledger/besu:" + project.property('release.releaseVersion') : "hyperledger/besu:${project.version}"
def dockerEnv = "--env LOGGING_LEVEL_COM_QUORUM_GAUGE=DEBUG --env TF_VAR_besu_docker_image='{name=\"${image}-${variant}\",local=true}'"
def dockerVolumes = "-v ${reportsDirectory}:/workspace/target/gauge/reports/ -v /var/run/docker.sock:/var/run/docker.sock -v ${dataDirectory}:${dataDirectory}"
executable "sh"
args "-c", "docker run ${dockerEnv} --rm --network host ${dockerVolumes} quorumengineering/acctests:latest test -PgaugeFailSafe -Pauto -Dtags=\"${tags}\" -Dauto.outputDir=${dataDirectory} -Dnetwork.forceDestroy=true -Dauto.jobid=${variant}"
}
}
}
task dockerUpload {
dependsOn distDocker
def dockerBuildVersion = project.hasProperty('release.releaseVersion') ? project.property('release.releaseVersion') : "${rootProject.version}"

Loading…
Cancel
Save