-
Notifications
You must be signed in to change notification settings - Fork 5
166 lines (145 loc) · 5.16 KB
/
deploy_full_node_aws.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
name: Deploy full node on Aws
on:
workflow_dispatch:
inputs:
ref_for_zbc_development:
description: 'Branch, tag or commit SHA1 to zbc-development'
required: true
default: "main"
type: string
ref_to_evmos:
description: 'Branch, tag or commit SHA1 to checkout evmos'
required: true
default: "v9.1.0-zama"
type: string
ref_to_zbc_solidity:
description: 'Branch, tag or commit SHA1 to checkout zbc-solidity'
required: true
default: "feature/CI-testing"
type: string
evmos_node_tag:
description: 'Evmos node image tag (default: latest)'
default: 'latest'
type: string
required: false
validator_ip_address:
description: 'The ip of the validator to be synced on (default: 13.37.31.214)'
default: '13.37.31.214'
type: string
required: false
clean:
description: 'Clean docker related components (default: true, false only for first deployment)'
default: true
type: boolean
required: false
jobs:
clean_instance:
name: Clean docker related components
runs-on: zbc-testnet-fn
if: ${{ inputs.clean }}
steps:
- name: Stop docker compose
working-directory: ./zbc-development
run: |
docker compose -f docker-compose.fullnode.yml down
- name: Clean all docker related image, cache, container ...
working-directory: ./zbc-development
run: |
docker system prune -af
push_to_registry:
if: ${{ always() }}
needs: clean_instance
name: Deploy new version of zbc full node
runs-on: zbc-testnet-fn
env:
EVMOS_NODE_TAG: ${{ inputs.evmos_node_tag }}
steps:
- name: Echo user parameters
run: |
echo "ref_for_zbc_development: ${{ inputs.ref_for_zbc_development }}"
echo "ref_to_evmos: ${{ inputs.ref_to_evmos }}"
echo "ref_to_zbc_solidity: ${{ inputs.ref_to_zbc_solidity }}"
echo "evmos_node_tag: ${{ inputs.evmos_node_tag }}"
echo "clean: ${{ inputs.clean }}"
- name: Clean Workspace
uses: AutoModality/[email protected]
- name: Checkout
uses: actions/checkout@v3
with:
path: evmos
ref: ${{ inputs.ref_to_evmos }}
- name: Checkout zbc-dev
uses: actions/checkout@v3
with:
repository: zama-ai/zbc-development
token: ${{ secrets.CONCRETE_ACTIONS_TOKEN }}
path: zbc-development
ref: ${{ inputs.ref_for_zbc_development }}
- name: Checkout zbc-solidity
uses: actions/checkout@v3
with:
repository: zama-ai/zbc-solidity
token: ${{ secrets.CONCRETE_ACTIONS_TOKEN }}
path: zbc-solidity
ref: ${{ inputs.ref_to_zbc_solidity }}
- name: List files in the repository
run: |
ls ${{ github.workspace }}
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@67fbcbb121271f7775d2e7715933280b06314838
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: eu-west-3
- name: Download keys from S3
working-directory: ./zbc-development
env:
AWS_S3_BUCKET: zbc-testnet
run: |
aws s3 ls s3://${AWS_S3_BUCKET}
./prepare_volumes_full_node_ci.sh
- name: Prepare files for node setup
working-directory: ./zbc-development
run: |
mkdir -p node/evmos
cp ../evmos/private.ed25519 node/evmos
cp ../evmos/public.ed25519 node/evmos
touch vm.log
ls node/evmos
- name: List files in volumes
working-directory: ./zbc-development
run: |
ls volumes
- name: Login to GitHub Container Registry
uses: docker/login-action@49ed152c8eca782a232dede0303416e8f356c37b
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Prepare evmos node aka run setup.sh
working-directory: ./zbc-development
run: |
docker compose -f docker-compose.fullnode.yml run validator bash /config/setup.sh
- name: Check running node owner and change it
working-directory: ./zbc-development
run: |
ls -all .
sudo chown -R $USER:$USER running_node/
- name: Download genesis and node_id
working-directory: ./zbc-development
env:
AWS_S3_BUCKET: zbc-testnet
run: |
aws s3 ls s3://${AWS_S3_BUCKET}/
./download_genesis.sh ${{ inputs.validator_ip_address }}
- name: Prepare test (called demo)
working-directory: ./zbc-development
run: |
./prepare_demo_full_node_ci.sh
- name: Check running docker
run: |
docker ps
- name: Start full node
working-directory: ./zbc-development
run: |
docker compose -f docker-compose.fullnode.yml -f docker-compose.fullnode.override.yml up --detach