-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathcloudbuild.yaml
232 lines (222 loc) · 13.2 KB
/
cloudbuild.yaml
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
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
steps:
# Attempt to pull the image, continue even if it fails
- name: 'gcr.io/cloud-builders/docker'
entrypoint: 'sh'
args:
- '-c'
- |
docker pull europe-west2-docker.pkg.dev/bancor-api/carbon-multi/carbon-multi:latest || exit 0
id: 'pull_latest'
# Build the image with caching from the pulled image if it exists
- name: 'gcr.io/cloud-builders/docker'
entrypoint: 'sh'
args:
- '-c'
- |
if docker images europe-west2-docker.pkg.dev/bancor-api/carbon-multi/carbon-multi:latest; then
docker build \
--cache-from europe-west2-docker.pkg.dev/bancor-api/carbon-multi/carbon-multi:latest \
-t europe-west2-docker.pkg.dev/bancor-api/carbon-multi/carbon-multi:latest \
.
else
docker build \
-t europe-west2-docker.pkg.dev/bancor-api/carbon-multi/carbon-multi:latest \
.
fi
waitFor: ['pull_latest']
id: 'build_image'
# Tag the image
- name: 'gcr.io/cloud-builders/docker'
args:
[
'tag',
'europe-west2-docker.pkg.dev/bancor-api/carbon-multi/carbon-multi:latest',
'europe-west2-docker.pkg.dev/bancor-api/carbon-multi/carbon-multi:latest',
]
waitFor: ['build_image']
id: 'tag_image'
# Push the image to the registry
- name: 'gcr.io/cloud-builders/docker'
args: ['push', 'europe-west2-docker.pkg.dev/bancor-api/carbon-multi/carbon-multi:latest']
waitFor: ['tag_image']
id: 'push'
# Fetch the DATABASE_URL and CARBON_BACKEND_SQL_CERTIFICATION secrets using gcloud
- name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'
entrypoint: 'bash'
args:
- '-c'
- |
DATABASE_URL=$(gcloud secrets versions access latest --secret=CM_DATABASE_URL) && \
CARBON_BACKEND_SQL_CERTIFICATION=$(gcloud secrets versions access latest --secret=CARBON_BACKEND_SQL_CERTIFICATION) && \
echo "export DATABASE_URL='$$DATABASE_URL'" > /workspace/env.sh && \
echo "export CARBON_BACKEND_SQL_CERTIFICATION='$$CARBON_BACKEND_SQL_CERTIFICATION'" >> /workspace/env.sh
waitFor: ['push']
id: 'fetch_secrets'
# Run the migration using Docker before deploying
- name: 'gcr.io/cloud-builders/docker'
entrypoint: 'bash'
args:
- '-c'
- |
source /workspace/env.sh && \
docker run --rm \
-e DATABASE_URL="$$DATABASE_URL" \
-e CARBON_BACKEND_SQL_CERTIFICATION="$$CARBON_BACKEND_SQL_CERTIFICATION" \
-e NODE_ENV=production \
-e DATABASE_SSL_ENABLED=1 \
europe-west2-docker.pkg.dev/bancor-api/carbon-multi/carbon-multi:latest \
npm run migration:run
waitFor: ['fetch_secrets']
id: 'run_migrations'
# Deploy the harvester service
- name: 'gcr.io/cloud-builders/gcloud'
args:
[
'run',
'deploy',
'carbon-multi-harvester-2',
'--image=europe-west2-docker.pkg.dev/bancor-api/carbon-multi/carbon-multi:latest',
'--set-env-vars=REDIS_URL=redis://10.109.105.124:6379',
'--set-env-vars=SHOULD_HARVEST=1',
'--set-env-vars=SHOULD_POLL_QUOTES=1',
'--set-env-vars=POLL_QUOTES_INTERVAL=60000',
'--set-env-vars=DB_SYNC=0',
'--set-env-vars=SHOULD_POLL_HISTORIC_QUOTES=1',
'--set-env-vars=POLL_HISTORIC_QUOTES_INTERVAL=300000',
'--set-env-vars=SHOULD_UPDATE_ANALYTICS=1',
'--set-env-vars=DATABASE_SSL_ENABLED=1',
'--set-env-vars=TELEGRAM_CHAT_ID=-1002180246468',
'--set-env-vars=GOOGLE_CLOUD_PROJECT=bancor-api',
'--set-env-vars=API_URL=https://api.carbondefi.xyz',
'--set-env-vars=QUEUE_NAME=bancor-alerts',
'--set-env-vars=QUEUE_LOCATION=europe-west2',
'--set-env-vars=ETHEREUM_CARBON_THREAD_ID=2084557',
'--set-env-vars=ETHEREUM_FASTLANE_THREAD_ID=2084554',
'--set-env-vars=ETHEREUM_VORTEX_THREAD_ID=1312658',
'--set-env-vars=ETHEREUM_EXPLORER_URL=https://etherscan.io/tx/',
'--set-env-vars=ETHEREUM_CARBON_WALLET_URL=https://app.carbondefi.xyz/explore/wallet/',
'--set-env-vars=SEI_CARBON_THREAD_ID=2084542',
'--set-env-vars=SEI_FASTLANE_THREAD_ID=2084545',
'--set-env-vars=SEI_VORTEX_THREAD_ID=1312658',
'--set-env-vars=SEI_EXPLORER_URL=https://seitrace.com/tx/',
'--set-env-vars=SEI_CARBON_WALLET_URL=https://sei.carbondefi.xyz/explore/wallet/',
'--set-env-vars=CELO_CARBON_THREAD_ID=2084532',
'--set-env-vars=CELO_FASTLANE_THREAD_ID=2084537',
'--set-env-vars=CELO_VORTEX_THREAD_ID=1312658',
'--set-env-vars=CELO_EXPLORER_URL=https://celoscan.io/tx/',
'--set-env-vars=CELO_CARBON_WALLET_URL=https://celo.carbondefi.xyz/explore/wallet/',
'--set-env-vars=BLAST_CARBON_THREAD_ID=10000000',
'--set-env-vars=BLAST_FASTLANE_THREAD_ID=1494502',
'--set-env-vars=BLAST_VORTEX_THREAD_ID=1312658',
'--set-env-vars=BLAST_EXPLORER_URL=https://blastscan.io/tx/',
'--set-env-vars=BLAST_CARBON_WALLET_URL=https://blast.carbondefi.xyz/explore/wallet/',
'--set-env-vars=BASE_CARBON_THREAD_ID=2084551',
'--set-env-vars=BASE_FASTLANE_THREAD_ID=2084548',
'--set-env-vars=BASE_VORTEX_THREAD_ID=1312658',
'--set-env-vars=BASE_EXPLORER_URL=https://basescan.org/tx/',
'--set-env-vars=BASE_GRAPHENE_WALLET_URL=https://graphene.velocimeter.xyz/explore/wallet/',
'--set-env-vars=FANTOM_CARBON_THREAD_ID=1119007',
'--set-env-vars=FANTOM_FASTLANE_THREAD_ID=1118995',
'--set-env-vars=FANTOM_VORTEX_THREAD_ID=1312658',
'--set-env-vars=FANTOM_EXPLORER_URL=https://ftmscan.com/tx/',
'--set-env-vars=FANTOM_GRAPHENE_WALLET_URL=https://graphene.velocimeter.xyz/explore/wallet/',
'--set-env-vars=MANTLE_CARBON_THREAD_ID=1072141',
'--set-env-vars=MANTLE_FASTLANE_THREAD_ID=1072267',
'--set-env-vars=MANTLE_VORTEX_THREAD_ID=1312658',
'--set-env-vars=MANTLE_EXPLORER_URL=https://explorer.mantle.xyz/tx/',
'--set-env-vars=MANTLE_GRAPHENE_WALLET_URL=https://graphene.velocimeter.xyz/explore/wallet/',
'--set-env-vars=LINEA_FASTLANE_THREAD_ID=1066788',
'--set-env-vars=LINEA_VORTEX_THREAD_ID=1312658',
'--set-env-vars=LINEA_EXPLORER_URL=https://lineascan.build/tx/',
'--set-env-vars=LINEA_XFAI_WALLET_URL=https://strategies.xfai.com/explore/wallet/',
'--set-env-vars=ETHEREUM_BANCOR_PROTECTION_THREAD_ID=734918549',
'--set-env-vars=ETHEREUM_BANCOR_PROTECTION_TOKEN=1166810669:AAFNxJMarOATvkKrXEQj8iNF30erecG-q0M',
'--set-env-vars=SEND_NOTIFICATIONS=1',
'--set-secrets=COINGECKO_API_KEY=COINGECKO_API_KEY:latest,ETHEREUM_RPC_ENDPOINT=CM_ETHEREUM_RPC_ENDPOINT:latest,SEI_RPC_ENDPOINT=MC_SEI_RPC_ENDPOINT:latest,CELO_RPC_ENDPOINT=CM_CELO_RPC_ENDPOINT:latest,BLAST_RPC_ENDPOINT=MC_BLAST_RPC_ENDPOINT:latest,BASE_RPC_ENDPOINT=MC_BASE_RPC_ENDPOINT:latest,MANTLE_RPC_ENDPOINT=MC_MANTLE_RPC_ENDPOINT:latest,FANTOM_RPC_ENDPOINT=MC_FANTOM_RPC_ENDPOINT:latest,CARBON_BACKEND_SQL_CERTIFICATION=CARBON_BACKEND_SQL_CERTIFICATION:latest,DATABASE_URL=CM_DATABASE_URL:latest,COINMARKETCAP_API_KEY=COINMARKETCAP_API_KEY:latest,CODEX_API_KEY=CODEX_API_KEY:latest,ETHEREUM_TELEGRAM_BOT_TOKEN=ETHEREUM_TELEGRAM_BOT_TOKEN:latest,SEI_TELEGRAM_BOT_TOKEN=SEI_TELEGRAM_BOT_TOKEN:latest,CELO_TELEGRAM_BOT_TOKEN=CELO_TELEGRAM_BOT_TOKEN:latest,BLAST_TELEGRAM_BOT_TOKEN=BLAST_TELEGRAM_BOT_TOKEN:latest,BASE_TELEGRAM_BOT_TOKEN=BASE_TELEGRAM_BOT_TOKEN:latest,FANTOM_TELEGRAM_BOT_TOKEN=FANTOM_TELEGRAM_BOT_TOKEN:latest,MANTLE_TELEGRAM_BOT_TOKEN=MANTLE_TELEGRAM_BOT_TOKEN:latest,LINEA_RPC_ENDPOINT=MC_LINEA_RPC_ENDPOINT:latest,LINEA_TELEGRAM_BOT_TOKEN=LINEA_TELEGRAM_BOT_TOKEN:latest,BERACHAIN_RPC_ENDPOINT=MC_BERACHAIN_RPC_ENDPOINT:latest',
'--region=europe-west2',
'--project=bancor-api',
'--port=3000',
]
waitFor: ['run_migrations']
id: 'deploy_harvester'
# Deploy the endpoint service
- name: 'gcr.io/cloud-builders/gcloud'
args:
[
'run',
'deploy',
'carbon-multi-endpoint',
'--image=europe-west2-docker.pkg.dev/bancor-api/carbon-multi/carbon-multi:latest',
'--set-env-vars=REDIS_URL=redis://10.109.105.124:6379',
'--set-env-vars=SHOULD_HARVEST=0',
'--set-env-vars=SHOULD_POLL_QUOTES=0',
'--set-env-vars=POLL_QUOTES_INTERVAL=60000',
'--set-env-vars=DB_SYNC=0',
'--set-env-vars=SHOULD_POLL_HISTORIC_QUOTES=0',
'--set-env-vars=POLL_HISTORIC_QUOTES_INTERVAL=300000',
'--set-env-vars=SHOULD_UPDATE_ANALYTICS=0',
'--set-env-vars=DATABASE_SSL_ENABLED=1',
'--set-env-vars=TELEGRAM_CHAT_ID=-1002180246468',
'--set-env-vars=GOOGLE_CLOUD_PROJECT=bancor-api',
'--set-env-vars=API_URL=https://api.carbondefi.xyz',
'--set-env-vars=QUEUE_NAME=bancor-alerts',
'--set-env-vars=QUEUE_LOCATION=europe-west2',
'--set-env-vars=ETHEREUM_CARBON_THREAD_ID=2084557',
'--set-env-vars=ETHEREUM_FASTLANE_THREAD_ID=2084554',
'--set-env-vars=ETHEREUM_VORTEX_THREAD_ID=1312658',
'--set-env-vars=ETHEREUM_EXPLORER_URL=https://etherscan.io/tx/',
'--set-env-vars=ETHEREUM_CARBON_WALLET_URL=https://app.carbondefi.xyz/explore/wallet/',
'--set-env-vars=SEI_CARBON_THREAD_ID=2084542',
'--set-env-vars=SEI_FASTLANE_THREAD_ID=2084545',
'--set-env-vars=SEI_VORTEX_THREAD_ID=1312658',
'--set-env-vars=SEI_EXPLORER_URL=https://seitrace.com/tx/',
'--set-env-vars=SEI_CARBON_WALLET_URL=https://sei.carbondefi.xyz/explore/wallet/',
'--set-env-vars=CELO_CARBON_THREAD_ID=2084532',
'--set-env-vars=CELO_FASTLANE_THREAD_ID=2084537',
'--set-env-vars=CELO_VORTEX_THREAD_ID=1312658',
'--set-env-vars=CELO_EXPLORER_URL=https://celoscan.io/tx/',
'--set-env-vars=CELO_CARBON_WALLET_URL=https://celo.carbondefi.xyz/explore/wallet/',
'--set-env-vars=BLAST_CARBON_THREAD_ID=10000000',
'--set-env-vars=BLAST_FASTLANE_THREAD_ID=1494502',
'--set-env-vars=BLAST_VORTEX_THREAD_ID=1312658',
'--set-env-vars=BLAST_EXPLORER_URL=https://blastscan.io/tx/',
'--set-env-vars=BLAST_CARBON_WALLET_URL=https://blast.carbondefi.xyz/explore/wallet/',
'--set-env-vars=BASE_CARBON_THREAD_ID=2084551',
'--set-env-vars=BASE_FASTLANE_THREAD_ID=2084548',
'--set-env-vars=BASE_VORTEX_THREAD_ID=1312658',
'--set-env-vars=BASE_EXPLORER_URL=https://basescan.org/tx/',
'--set-env-vars=BASE_GRAPHENE_WALLET_URL=https://graphene.velocimeter.xyz/explore/wallet/',
'--set-env-vars=FANTOM_CARBON_THREAD_ID=1119007',
'--set-env-vars=FANTOM_FASTLANE_THREAD_ID=1118995',
'--set-env-vars=FANTOM_VORTEX_THREAD_ID=1312658',
'--set-env-vars=FANTOM_EXPLORER_URL=https://ftmscan.com/tx/',
'--set-env-vars=FANTOM_GRAPHENE_WALLET_URL=https://graphene.velocimeter.xyz/explore/wallet/',
'--set-env-vars=MANTLE_CARBON_THREAD_ID=1072141',
'--set-env-vars=MANTLE_FASTLANE_THREAD_ID=1072267',
'--set-env-vars=MANTLE_VORTEX_THREAD_ID=1312658',
'--set-env-vars=MANTLE_EXPLORER_URL=https://explorer.mantle.xyz/tx/',
'--set-env-vars=MANTLE_GRAPHENE_WALLET_URL=https://graphene.velocimeter.xyz/explore/wallet/',
'--set-env-vars=LINEA_FASTLANE_THREAD_ID=1066788',
'--set-env-vars=LINEA_VORTEX_THREAD_ID=1312658',
'--set-env-vars=LINEA_EXPLORER_URL=https://lineascan.build/tx/',
'--set-env-vars=LINEA_XFAI_WALLET_URL=https://strategies.xfai.com/explore/wallet/',
'--set-env-vars=ETHEREUM_BANCOR_PROTECTION_THREAD_ID=734918549',
'--set-env-vars=ETHEREUM_BANCOR_PROTECTION_TOKEN=1166810669:AAFNxJMarOATvkKrXEQj8iNF30erecG-q0M',
'--set-secrets=COINGECKO_API_KEY=COINGECKO_API_KEY:latest,ETHEREUM_RPC_ENDPOINT=CM_ETHEREUM_RPC_ENDPOINT:latest,SEI_RPC_ENDPOINT=MC_SEI_RPC_ENDPOINT:latest,CELO_RPC_ENDPOINT=CM_CELO_RPC_ENDPOINT:latest,BLAST_RPC_ENDPOINT=MC_BLAST_RPC_ENDPOINT:latest,BASE_RPC_ENDPOINT=MC_BASE_RPC_ENDPOINT:latest,MANTLE_RPC_ENDPOINT=MC_MANTLE_RPC_ENDPOINT:latest,FANTOM_RPC_ENDPOINT=MC_FANTOM_RPC_ENDPOINT:latest,CARBON_BACKEND_SQL_CERTIFICATION=CARBON_BACKEND_SQL_CERTIFICATION:latest,DATABASE_URL=CM_DATABASE_READONLY_URL:latest,COINMARKETCAP_API_KEY=COINMARKETCAP_API_KEY:latest,CODEX_API_KEY=CODEX_API_KEY:latest,ETHEREUM_TELEGRAM_BOT_TOKEN=ETHEREUM_TELEGRAM_BOT_TOKEN:latest,SEI_TELEGRAM_BOT_TOKEN=SEI_TELEGRAM_BOT_TOKEN:latest,CELO_TELEGRAM_BOT_TOKEN=CELO_TELEGRAM_BOT_TOKEN:latest,BLAST_TELEGRAM_BOT_TOKEN=BLAST_TELEGRAM_BOT_TOKEN:latest,BASE_TELEGRAM_BOT_TOKEN=BASE_TELEGRAM_BOT_TOKEN:latest,FANTOM_TELEGRAM_BOT_TOKEN=FANTOM_TELEGRAM_BOT_TOKEN:latest,MANTLE_TELEGRAM_BOT_TOKEN=MANTLE_TELEGRAM_BOT_TOKEN:latest,LINEA_RPC_ENDPOINT=MC_LINEA_RPC_ENDPOINT:latest,LINEA_TELEGRAM_BOT_TOKEN=LINEA_TELEGRAM_BOT_TOKEN:latest,BERACHAIN_RPC_ENDPOINT=MC_BERACHAIN_RPC_ENDPOINT:latest',
'--region=europe-west2',
'--project=bancor-api',
'--port=3000',
]
waitFor: ['deploy_harvester']
id: 'deploy_endpoint'
# Update the traffic
- name: 'gcr.io/cloud-builders/gcloud'
args: ['run', 'services', 'update-traffic', 'carbon-multi-harvester-2', '--to-latest', '--region', 'europe-west2']
waitFor: ['deploy_endpoint']
id: 'update_traffic'
images:
- 'europe-west2-docker.pkg.dev/bancor-api/carbon-multi/carbon-multi:latest'
options:
machineType: 'E2_HIGHCPU_8'
diskSizeGb: 200
logging: 'CLOUD_LOGGING_ONLY'