Skip to content

Commit 2ca7147

Browse files
Merge pull request #233 from vulcanize/feature/cicd-improvements
Feature/cicd improvements
2 parents 51e8824 + ab9e73a commit 2ca7147

File tree

6 files changed

+223
-136
lines changed

6 files changed

+223
-136
lines changed

.github/workflows/checks.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,10 @@ jobs:
66
linter-check:
77
runs-on: ubuntu-latest
88
steps:
9-
- uses: actions/setup-go@v2
9+
- uses: actions/setup-go@v3
1010
with:
11-
go-version: '1.16.x'
11+
go-version: ">=1.18.0"
12+
check-latest: true
1213
- uses: actions/checkout@v2
1314
- name: Run linter
14-
run: go run build/ci.go lint
15+
run: go run build/ci.go lint

.github/workflows/on-pr.yml

Lines changed: 2 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -3,64 +3,5 @@ name: Build and test
33
on: [pull_request]
44

55
jobs:
6-
build:
7-
name: Run docker build
8-
runs-on: ubuntu-latest
9-
steps:
10-
- uses: actions/checkout@v2
11-
- name: Run docker build
12-
run: docker build -t vulcanize/go-ethereum .
13-
14-
geth-unit-test:
15-
name: Run geth unit test
16-
strategy:
17-
matrix:
18-
go-version: [ 1.16.x]
19-
platform: [ubuntu-latest]
20-
runs-on: ${{ matrix.platform }}
21-
env:
22-
GO111MODULE: on
23-
GOPATH: /tmp/go
24-
steps:
25-
- name: Create GOPATH
26-
run: mkdir -p /tmp/go
27-
28-
- name: Install Go
29-
uses: actions/setup-go@v2
30-
with:
31-
go-version: ${{ matrix.go-version }}
32-
33-
- name: Checkout code
34-
uses: actions/checkout@v2
35-
36-
- name: Run unit tests
37-
run: |
38-
make test
39-
40-
statediff-unit-test:
41-
name: Run state diff unit test
42-
env:
43-
GOPATH: /tmp/go
44-
strategy:
45-
matrix:
46-
go-version: [ 1.16.x]
47-
platform: [ubuntu-latest]
48-
runs-on: ${{ matrix.platform }}
49-
steps:
50-
- name: Create GOPATH
51-
run: mkdir -p /tmp/go
52-
53-
- name: Install Go
54-
uses: actions/setup-go@v2
55-
with:
56-
go-version: ${{ matrix.go-version }}
57-
58-
- name: Checkout code
59-
uses: actions/checkout@v2
60-
61-
- name: Start database
62-
run: docker-compose -f docker-compose.yml up -d ipld-eth-db
63-
64-
- name: Run unit tests
65-
run:
66-
make statedifftest
6+
run-tests:
7+
uses: ./.github/workflows/tests.yml

.github/workflows/publish.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,11 @@ on:
33
release:
44
types: [published]
55
jobs:
6+
run-tests:
7+
uses: ./.github/workflows/tests.yml
68
build:
79
name: Run docker build and publish
10+
needs: run-tests
811
runs-on: ubuntu-latest
912
steps:
1013
- uses: actions/checkout@v2

.github/workflows/tests.yml

Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,128 @@
1+
name: Tests for Geth that are used in multiple jobs.
2+
3+
on:
4+
workflow_call:
5+
6+
env:
7+
stack-orchestrator-ref: ${{ github.event.inputs.stack-orchestrator-ref || 'main'}}
8+
ipld-eth-db-ref: ${{ github.event.inputs.ipld-ethcl-db-ref || 'main' }}
9+
GOPATH: /tmp/go
10+
11+
jobs:
12+
build:
13+
name: Run docker build
14+
runs-on: ubuntu-latest
15+
steps:
16+
- uses: actions/checkout@v2
17+
- name: Run docker build
18+
run: docker build -t vulcanize/go-ethereum .
19+
20+
geth-unit-test:
21+
name: Run geth unit test
22+
runs-on: ubuntu-latest
23+
env:
24+
GO111MODULE: on
25+
steps:
26+
- name: Create GOPATH
27+
run: mkdir -p /tmp/go
28+
29+
- uses: actions/setup-go@v3
30+
with:
31+
go-version: ">=1.18.0"
32+
check-latest: true
33+
34+
- name: Checkout code
35+
uses: actions/checkout@v2
36+
37+
- name: Run unit tests
38+
run: |
39+
make test
40+
41+
statediff-unit-test:
42+
name: Run state diff unit test
43+
runs-on: ubuntu-latest
44+
steps:
45+
- name: Create GOPATH
46+
run: mkdir -p /tmp/go
47+
48+
- uses: actions/setup-go@v3
49+
with:
50+
go-version: ">=1.18.0"
51+
check-latest: true
52+
53+
- name: Checkout code
54+
uses: actions/checkout@v2
55+
56+
- name: Start database
57+
run: docker-compose -f docker-compose.yml up -d ipld-eth-db
58+
59+
- name: Run unit tests
60+
run: make statedifftest
61+
62+
private-network-test:
63+
name: Start Geth in a private network.
64+
runs-on: ubuntu-latest
65+
steps:
66+
- name: Create GOPATH
67+
run: mkdir -p /tmp/go
68+
69+
- uses: actions/setup-go@v3
70+
with:
71+
go-version: ">=1.18.0"
72+
check-latest: true
73+
74+
- name: Checkout code
75+
uses: actions/checkout@v3
76+
with:
77+
path: "./go-ethereum"
78+
79+
- uses: actions/checkout@v3
80+
with:
81+
ref: ${{ env.stack-orchestrator-ref }}
82+
path: "./stack-orchestrator/"
83+
repository: vulcanize/stack-orchestrator
84+
fetch-depth: 0
85+
86+
- uses: actions/checkout@v3
87+
with:
88+
ref: ${{ env.ipld-eth-db-ref }}
89+
repository: vulcanize/ipld-eth-db
90+
path: "./ipld-eth-db/"
91+
fetch-depth: 0
92+
93+
- name: Create config file
94+
run: |
95+
echo vulcanize_ipld_eth_db=$GITHUB_WORKSPACE/ipld-eth-db/ > $GITHUB_WORKSPACE/config.sh
96+
echo vulcanize_go_ethereum=$GITHUB_WORKSPACE/go-ethereum/ >> $GITHUB_WORKSPACE/config.sh
97+
echo db_write=true >> $GITHUB_WORKSPACE/config.sh
98+
cat $GITHUB_WORKSPACE/config.sh
99+
100+
- name: Compile Geth
101+
run: |
102+
cd $GITHUB_WORKSPACE/stack-orchestrator/helper-scripts
103+
./compile-geth.sh -e docker -p $GITHUB_WORKSPACE/config.sh
104+
cd -
105+
106+
- name: Run docker compose
107+
run: |
108+
docker-compose \
109+
-f "$GITHUB_WORKSPACE/stack-orchestrator/docker/local/docker-compose-db.yml" \
110+
-f "$GITHUB_WORKSPACE/stack-orchestrator/docker/local/docker-compose-go-ethereum.yml" \
111+
--env-file $GITHUB_WORKSPACE/config.sh \
112+
up -d --build
113+
114+
- name: Make sure the /root/transaction_info/STATEFUL_TEST_DEPLOYED_ADDRESS exists within a certain time frame.
115+
shell: bash
116+
run: |
117+
COUNT=0
118+
ATTEMPTS=10
119+
until $(docker compose -f "$GITHUB_WORKSPACE/stack-orchestrator/docker/local/docker-compose-go-ethereum.yml" cp go-ethereum:/root/transaction_info/STATEFUL_TEST_DEPLOYED_ADDRESS ./STATEFUL_TEST_DEPLOYED_ADDRESS) || [[ $COUNT -eq $ATTEMPTS ]]; do echo -e "$(( COUNT++ ))... \c"; sleep 10; done
120+
[[ $COUNT -eq $ATTEMPTS ]] && echo "Could not find the successful contract deployment" && (exit 1)
121+
cat ./STATEFUL_TEST_DEPLOYED_ADDRESS
122+
sleep 15;
123+
124+
- name: Create a new transaction.
125+
shell: bash
126+
run: |
127+
docker compose -f "$GITHUB_WORKSPACE/stack-orchestrator/docker/local/docker-compose-go-ethereum.yml" exec go-ethereum /bin/bash /root/transaction_info/NEW_TRANSACTION
128+
echo $?

0 commit comments

Comments
 (0)