Skip to content

Commit c1e7b57

Browse files
authored
Merge pull request #1230 from ConsenSys/cicd/more-acceptance-tests
feature: more acceptance tests executed, and also on the master branch
2 parents 19bff80 + 60fae93 commit c1e7b57

File tree

2 files changed

+119
-0
lines changed

2 files changed

+119
-0
lines changed

.github/workflows/build.yml

Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,120 @@ jobs:
4949
working-directory: ${{ env.WORKING_DIR }}
5050
run: |
5151
make test all
52+
docker-build:
53+
name: 'Build Docker image'
54+
runs-on: ubuntu-18.04
55+
steps:
56+
- name: 'Check out project files'
57+
uses: actions/checkout@v2
58+
- name: 'Build docker image'
59+
id: build
60+
run: |
61+
output_dir=${{ runner.temp }}/docker
62+
mkdir -p $output_dir
63+
docker build -t quorumengineering/quorum:pr .
64+
docker save quorumengineering/quorum:pr > quorum-pr.tar
65+
tar cfvz $output_dir/quorum-pr.tar.gz quorum-pr.tar
66+
echo "::set-output name=output_dir::$output_dir"
67+
- name: 'Upload workflow artifact - Docker image'
68+
uses: actions/upload-artifact@v1
69+
with:
70+
name: docker-image
71+
path: ${{ steps.build.outputs.output_dir }}
72+
acceptance-tests:
73+
name: Acceptance tests (${{ matrix.tag }})
74+
needs:
75+
- docker-build
76+
if: success()
77+
strategy:
78+
fail-fast: false
79+
matrix:
80+
# list of tag expression being executed in parallel
81+
# for PR, only selective tests are run.
82+
# More comprehensive suites are scheduled to run in master
83+
tag:
84+
- 'basic || basic-raft || (advanced && raft) || networks/typical::raft'
85+
- 'basic || basic-istanbul || (advanced && istanbul) || networks/typical::istanbul'
86+
- 'basic || basic-istanbul || (advanced && istanbul) || networks/typical::qbft'
87+
- 'gcmode && block-sync && networks/template::raft-3plus1'
88+
- 'gcmode && block-sync && networks/template::istanbul-3plus1'
89+
- 'gcmode && block-sync && networks/template::qbft-3plus1'
90+
- 'learner-peer-management || raftdnsenable && networks/template::raft-3plus1'
91+
- 'validator-management && networks/template::qbft-3plus1'
92+
- 'validator-management && networks/template::istanbul-3plus1'
93+
- 'qbft-transition-network && networks/template::qbft-4nodes-transition'
94+
- 'basic || basic-raft || (advanced && raft) || networks/plugins::raft'
95+
- 'basic || basic-istanbul || (advanced && istanbul) || networks/plugins::qbft'
96+
- 'basic || basic-istanbul || (advanced && istanbul) || networks/plugins::istanbul'
97+
- 'basic || basic-raft || (advanced && raft) || networks/plugins::raft-account-plugin-hashicorp-vault'
98+
- 'basic || basic-istanbul || (advanced && istanbul) || networks/plugins::qbft-account-plugin-hashicorp-vault'
99+
- 'basic || basic-istanbul || (advanced && istanbul) || networks/plugins::istanbul-account-plugin-hashicorp-vault'
100+
- 'basic-rpc-security || networks/plugins::raft-rpc-security'
101+
- 'basic-rpc-security || networks/plugins::qbft-rpc-security'
102+
- 'basic-rpc-security || networks/plugins::istanbul-rpc-security'
103+
- 'migration && networks/template::raft-4nodes'
104+
- 'migration && networks/template::istanbul-4nodes'
105+
- 'migration && networks/template::raft-4nodes-ancientdb'
106+
- 'migration && networks/template::istanbul-4nodes-ancientdb'
107+
- 'permissions-v1 && networks/template::raft-3plus1'
108+
- 'permissions-v2 && networks/template::raft-3plus1'
109+
- 'privacy-enhancements-upgrade || networks/template::raft-4nodes-pe'
110+
- 'privacy-enhancements-upgrade || networks/template::istanbul-4nodes-pe'
111+
- 'multitenancy && networks/plugins::raft-multitenancy'
112+
- 'basic || basic-raft || (advanced && raft) || networks/typical::raft-simple-mps'
113+
- 'basic || basic-istanbul || (advanced && istanbul) || networks/typical::qbft-simple-mps'
114+
- 'basic || basic-istanbul || (advanced && istanbul) || networks/typical::istanbul-simple-mps'
115+
- 'basic || networks/typical::raftmps'
116+
- 'basic || networks/typical::qbftmps'
117+
- 'basic || networks/typical::istanbulmps'
118+
- 'mps-upgrade-txtrace || networks/template::raft-4nodes-mps'
119+
- 'mps-upgrade-txtrace || networks/template::istanbul-4nodes-mps'
120+
- '(basic && !nosupport && !mps && !(spam && !raw) && !eth-api-signed && !privacy-enhancements-disabled && !graphql && !async && !extension && !storage-root && !personal-api-signed) || networks/typical-besu::ibft2'
121+
- '(basic && !nosupport && !mps && !(spam && !raw) && !eth-api-signed && !privacy-enhancements-disabled && !graphql && !async && !extension && !storage-root && !personal-api-signed) || networks/typical-hybrid::hybrid'
122+
privacy-enhancements:
123+
- 'false'
124+
include:
125+
- tag: '(basic && !privacy-enhancements-disabled) || privacy-enhancements || basic-raft || (advanced && raft) || networks/typical::raft'
126+
privacy-enhancements: 'true'
127+
- tag: '(basic && !privacy-enhancements-disabled) || privacy-enhancements || basic-istanbul || (advanced && istanbul) || networks/typical::istanbul'
128+
privacy-enhancements: 'true'
129+
runs-on: ubuntu-18.04
130+
steps:
131+
- name: 'Download workflow artifact - Docker image'
132+
uses: actions/download-artifact@v1
133+
with:
134+
name: docker-image
135+
- name: 'Load Docker image'
136+
id: setup
137+
run: |
138+
tar xfvz docker-image/quorum-pr.tar.gz
139+
docker load --input quorum-pr.tar
140+
docker_env_file="${{ runner.temp }}/env.list"
141+
echo "TF_VAR_quorum_docker_image={ name = \"quorumengineering/quorum:pr\", local = true }" >> $docker_env_file
142+
echo "TF_VAR_privacy_enhancements={block=0, enabled=${{ matrix.privacy-enhancements}}}" >> $docker_env_file
143+
echo "::set-output name=outputDir::${{ runner.temp }}"
144+
echo "::set-output name=dockerEnvFile::$docker_env_file"
145+
- name: 'Run acceptance tests'
146+
run: |
147+
cat ${{ steps.setup.outputs.dockerEnvFile }}
148+
docker run --rm \
149+
--network host \
150+
-v /var/run/docker.sock:/var/run/docker.sock \
151+
-v ${{ steps.setup.outputs.outputDir }}:${{ steps.setup.outputs.outputDir }} \
152+
--env-file ${{ steps.setup.outputs.dockerEnvFile }} \
153+
quorumengineering/acctests:latest test \
154+
-Pauto \
155+
-Dauto.outputDir=${{ steps.setup.outputs.outputDir }} \
156+
-Dtags="${{ matrix.tag }}"
157+
- name: 'Debug'
158+
run: |
159+
docker images
160+
docker ps -a
52161
publish-docker:
53162
name: Publish Docker Image
54163
needs:
55164
- build
165+
- acceptance-tests
56166
runs-on: ubuntu-18.04
57167
steps:
58168
- name: 'Checkout'

.github/workflows/pr.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,15 @@ jobs:
8787
tag:
8888
- 'basic || basic-raft || (advanced && raft) || networks/typical::raft'
8989
- 'basic || basic-istanbul || (advanced && istanbul && !block-heights) || networks/typical::istanbul'
90+
- 'basic || basic-istanbul || (advanced && istanbul && !block-heights) || networks/typical::qbft'
91+
- 'validator-management && networks/template::istanbul-3plus1'
92+
- 'validator-management && networks/template::qbft-3plus1'
93+
- 'multitenancy && networks/plugins::raft-multitenancy'
94+
- 'migration && networks/template::istanbul-4nodes'
95+
- 'migration && networks/template::raft-4nodes'
96+
- 'basic || networks/typical::raftmps'
97+
- 'basic || networks/typical::istanbulmps'
98+
- 'basic || networks/typical::qbftmps'
9099
runs-on: ubuntu-18.04
91100
steps:
92101
- name: 'Download workflow artifact - Docker image'

0 commit comments

Comments
 (0)