This repository has been archived by the owner on May 28, 2021. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 38
151 lines (136 loc) · 3.92 KB
/
cd-staging.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
name: CD Staging
on:
push:
branches:
- staging
jobs:
build:
env:
DOCKER_USER: ${{ secrets.DOCKER_USER }}
DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- run: make pull-latest
- run: make all
- run: make build-report
- run: docker login -u $DOCKER_USER -p $DOCKER_PASSWORD
- run: make push
test-ssh:
env:
STAGING_DOMAINNAME: staging.indra.connext.network
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: test connection to staging
uses: ./ops/ssh-action/
with:
HOST: ubuntu@${{ env.STAGING_DOMAINNAME }}
SSH_KEY: ${{ secrets.SSH_KEY }}
CMD: 'echo Successfully connected to $STAGING_DOMAINNAME: `hostname`;'
test-utils:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- run: make utils
- run: make test-utils
test-store:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- run: make store
- run: make test-store
test-contracts:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- run: make contracts
- run: make test-contracts
test-cf:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- run: make cf-core
- run: make test-cf
test-watcher:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- run: make watcher
- run: make test-watcher
test-node:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- run: make node
- run: make test-node
test-tps:
runs-on: ubuntu-latest
needs: [build]
steps:
- uses: actions/checkout@v1
- run: make pull
- run: make start-prod
- run: make dls
- run: make test-tps-prod
- name: Print logs
if: failure()
run: docker service logs --tail 200 indra_node && docker service logs --tail 200 indra_proxy
test-integration:
runs-on: ubuntu-latest
needs: [build]
steps:
- uses: actions/checkout@v1
- run: make pull
- run: make start-prod
- run: make dls
- run: make test-integration-prod
- name: Print logs
if: failure()
run: docker service logs --tail 200 indra_node && docker service logs --tail 200 indra_proxy
test-backwards-compatibility:
runs-on: ubuntu-latest
needs: [build]
steps:
- uses: actions/checkout@v1
- run: make pull
- run: make start-prod
- run: make dls
- run: make test-backwards-compatibility
- name: Print logs
if: failure()
run: docker service logs --tail 200 indra_node && docker service logs --tail 200 indra_proxy
test-daicard:
runs-on: ubuntu-16.04
needs: [build]
steps:
- uses: actions/checkout@v1
- run: make pull
- run: make start-prod
- run: make start-daicard
- run: make dls
- run: make test-daicard
- name: Print logs
if: failure()
run: docker service logs --tail 200 indra_node && docker service logs --tail 200 indra_proxy
deploy-staging:
env:
STAGING_DOMAINNAME: staging.indra.connext.network
needs: [test-utils, test-store, test-contracts, test-cf, test-watcher, test-node, test-ssh, test-integration, test-daicard]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: deploy to staging
uses: ./ops/ssh-action/
with:
HOST: ubuntu@${{ env.STAGING_DOMAINNAME }}
SSH_KEY: ${{ secrets.SSH_KEY }}
CMD: '
git checkout --force staging;
git reset --hard $GITHUB_SHA;
export INDRA_ENV="prod";
export INDRA_DOMAINNAME="$STAGING_DOMAINNAME";
make restart-prod;
docker container prune -f;
docker image ls -q | xargs docker image rm -f || true;
'