-
Notifications
You must be signed in to change notification settings - Fork 0
161 lines (139 loc) · 6.3 KB
/
deploy.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
name: Build & deploy the chain bridge to the cloud services
on:
push:
branches:
- master
env:
REGISTRY_TOKEN: ${{ secrets.REGISTRY_TOKEN }}
REGISTRY_ADDRESS: rg.fr-par.scw.cloud/lum-network
REGISTRY_ADDRESS_PROJECT: bridge
jobs:
bump-version-push-tag:
name: Bump version and push new tag
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@master
with:
fetch-depth: '0'
- name: Bump version and push new tag
id: bump_version
uses: anothrNick/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
WITH_V: true
- name: Print generated version
shell: bash
run: |
echo "${{ steps.bump_version.outputs.tag }}"
- name: Save new version number result into file
shell: bash
run: |
echo ${{ steps.bump_version.outputs.tag }} > new_version.txt
- name: Upload version number for further use
uses: actions/upload-artifact@v1
with:
name: new_version
path: new_version.txt
build:
name: Build the docker image and deploy over image registry
runs-on: ubuntu-latest
needs: bump-version-push-tag
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Download version number from bump-version-push-tag
uses: actions/download-artifact@v1
with:
name: new_version
- name: Create version number variable
id: vars
run: echo ::set-output name=version_tag_number::$(cat new_version/new_version.txt)
- name: Print generated version
shell: bash
run: |
echo "${{ steps.vars.outputs.version_tag_number }}"
- name: Build, tag and push the built image
run: |
docker login $REGISTRY_ADDRESS -u nologin -p $REGISTRY_TOKEN
docker build -t $REGISTRY_ADDRESS/$REGISTRY_ADDRESS_PROJECT-api:latest -t $REGISTRY_ADDRESS/$REGISTRY_ADDRESS_PROJECT-api:"${{ steps.vars.outputs.version_tag_number }}" -f tools/API.Dockerfile .
docker build -t $REGISTRY_ADDRESS/$REGISTRY_ADDRESS_PROJECT-sync-consumer:latest -t $REGISTRY_ADDRESS/$REGISTRY_ADDRESS_PROJECT-sync-consumer:"${{ steps.vars.outputs.version_tag_number }}" -f tools/SyncConsumer.Dockerfile .
docker build -t $REGISTRY_ADDRESS/$REGISTRY_ADDRESS_PROJECT-sync-scheduler:latest -t $REGISTRY_ADDRESS/$REGISTRY_ADDRESS_PROJECT-sync-scheduler:"${{ steps.vars.outputs.version_tag_number }}" -f tools/SyncScheduler.Dockerfile .
docker push $REGISTRY_ADDRESS/$REGISTRY_ADDRESS_PROJECT-api:${{ steps.vars.outputs.version_tag_number }}
docker push $REGISTRY_ADDRESS/$REGISTRY_ADDRESS_PROJECT-api:latest
docker push $REGISTRY_ADDRESS/$REGISTRY_ADDRESS_PROJECT-sync-consumer:${{ steps.vars.outputs.version_tag_number }}
docker push $REGISTRY_ADDRESS/$REGISTRY_ADDRESS_PROJECT-sync-consumer:latest
docker push $REGISTRY_ADDRESS/$REGISTRY_ADDRESS_PROJECT-sync-scheduler:${{ steps.vars.outputs.version_tag_number }}
docker push $REGISTRY_ADDRESS/$REGISTRY_ADDRESS_PROJECT-sync-scheduler:latest
deploy_testnet:
name: Upgrade the testnet CapRover services
runs-on: ubuntu-latest
needs: build
environment: testnet
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Download version number from bump-version-push-tag
uses: actions/download-artifact@v1
with:
name: new_version
- name: Create version number variable
id: vars
run: echo ::set-output name=version_tag_number::$(cat new_version/new_version.txt)
- name: Update API service
uses: floms/action-caprover@v1
with:
host: '${{ secrets.CAPROVER_HOST }}'
password: '${{ secrets.CAPROVER_PASSWORD }}'
app: 'explorer-testnet'
image: ${{env.REGISTRY_ADDRESS}}/${{env.REGISTRY_ADDRESS_PROJECT}}-api:${{ steps.vars.outputs.version_tag_number }}
- name: Update Sync Consumer service
uses: floms/action-caprover@v1
with:
host: '${{ secrets.CAPROVER_HOST }}'
password: '${{ secrets.CAPROVER_PASSWORD }}'
app: 'explorer-testnet-sync-consumer'
image: ${{env.REGISTRY_ADDRESS}}/${{env.REGISTRY_ADDRESS_PROJECT}}-sync-consumer:${{ steps.vars.outputs.version_tag_number }}
- name: Update Sync Scheduler service
uses: floms/action-caprover@v1
with:
host: '${{ secrets.CAPROVER_HOST }}'
password: '${{ secrets.CAPROVER_PASSWORD }}'
app: 'explorer-testnet-sync-scheduler'
image: ${{env.REGISTRY_ADDRESS}}/${{env.REGISTRY_ADDRESS_PROJECT}}-sync-scheduler:${{ steps.vars.outputs.version_tag_number }}
deploy_mainnet:
name: Upgrade the mainnet CapRover services
runs-on: ubuntu-latest
needs: build
environment: mainnet
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Download version number from bump-version-push-tag
uses: actions/download-artifact@v1
with:
name: new_version
- name: Create version number variable
id: vars
run: echo ::set-output name=version_tag_number::$(cat new_version/new_version.txt)
- name: Update API service
uses: floms/action-caprover@v1
with:
host: '${{ secrets.CAPROVER_HOST }}'
password: '${{ secrets.CAPROVER_PASSWORD }}'
app: 'explorer-mainnet'
image: ${{env.REGISTRY_ADDRESS}}/${{env.REGISTRY_ADDRESS_PROJECT}}-api:${{ steps.vars.outputs.version_tag_number }}
- name: Update Sync Consumer service
uses: floms/action-caprover@v1
with:
host: '${{ secrets.CAPROVER_HOST }}'
password: '${{ secrets.CAPROVER_PASSWORD }}'
app: 'explorer-mainnet-sync-consumer'
image: ${{env.REGISTRY_ADDRESS}}/${{env.REGISTRY_ADDRESS_PROJECT}}-sync-consumer:${{ steps.vars.outputs.version_tag_number }}
- name: Update Sync Scheduler service
uses: floms/action-caprover@v1
with:
host: '${{ secrets.CAPROVER_HOST }}'
password: '${{ secrets.CAPROVER_PASSWORD }}'
app: 'explorer-mainnet-sync-scheduler'
image: ${{env.REGISTRY_ADDRESS}}/${{env.REGISTRY_ADDRESS_PROJECT}}-sync-scheduler:${{ steps.vars.outputs.version_tag_number }}