forked from beyondessential/tupaia
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcodeship-steps.yml
142 lines (133 loc) · 5.52 KB
/
codeship-steps.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
- name: Fetch environment variables
service: lastpass
command: './packages/devops/scripts/ci/setupEnvironmentVariables.sh'
- type: parallel
name: Validate and test
exclude: -e2e$
steps:
- type: parallel
name: Validate
service: validation
steps:
- name: Validate branch name
command: './packages/devops/scripts/ci/validateBranchName.sh'
- name: Validate tests
command: './packages/devops/scripts/ci/validateTests.sh'
- type: parallel
name: Test
service: testing
steps:
- name: Test admin-panel-server
command: './packages/devops/scripts/ci/testBackend.sh admin-panel-server'
- name: Test lesmis-server
command: './packages/devops/scripts/ci/testBackend.sh lesmis-server'
- name: Test meditrak-server
command: './packages/devops/scripts/ci/testBackend.sh meditrak-server'
- name: Test web-config-server
command: './packages/devops/scripts/ci/testBackend.sh web-config-server'
- name: Test psss-server
command: './packages/devops/scripts/ci/testBackend.sh psss-server'
- name: Test report-server
command: './packages/devops/scripts/ci/testBackend.sh report-server'
- name: Test entity-server
command: './packages/devops/scripts/ci/testBackend.sh entity-server'
- name: Test database
command: './packages/devops/scripts/ci/testBackend.sh database'
- name: Test data-api
command: './packages/devops/scripts/ci/testBackend.sh data-api'
- name: Test auth
command: './packages/devops/scripts/ci/testBackend.sh auth'
- name: Test indicators
command: './packages/devops/scripts/ci/testBackend.sh indicators'
- name: Test internal-dependencies
command: './packages/devops/scripts/ci/testInternalDependencies.sh'
- name: Test web-frontend
command: './packages/devops/scripts/ci/testFrontend.sh web-frontend'
- name: Check for deployment
service: deployment
command: './packages/devops/scripts/ci/checkDeploymentExists.sh'
- type: serial
name: Set up ssh key
service: deployment
exclude: -e2e$
steps:
- name: Reinstate SSH Private Key File
# Need to use 'sed' here to remove open/close quotes, see: https://github.com/docker/compose/issues/2854
# Note: this issue is fixed in more recent versions of docker-compose (1.26+) but codeship still uses an older version
command: /bin/bash -c "echo -e $PRIVATE_SSH_KEY | sed -e 's/^"//' -e 's/"$//' >> /root/.ssh/id_rsa"
- name: chmod id_rsa
command: chmod 600 /root/.ssh/id_rsa
- type: serial
name: Build front ends
service: builder
exclude: -e2e$
steps:
# front end builds are split into batches as they consume a lot of memory
- type: parallel
name: Build batch 1
steps:
- name: Build admin-panel
command: './packages/devops/scripts/ci/buildPackage.sh admin-panel'
- name: Build lesmis
command: './packages/devops/scripts/ci/buildPackage.sh lesmis'
- type: parallel
name: Build batch 2
steps:
- name: Build psss
command: './packages/devops/scripts/ci/buildPackage.sh psss'
- name: Build web-frontend
command: './packages/devops/scripts/ci/buildPackage.sh web-frontend'
- type: parallel
name: Build back ends
service: builder
exclude: -e2e$
steps:
- name: Build admin-panel-server
command: './packages/devops/scripts/ci/buildPackage.sh admin-panel-server'
- name: Build entity-server
command: './packages/devops/scripts/ci/buildPackage.sh entity-server'
- name: Build lesmis-server
command: './packages/devops/scripts/ci/buildPackage.sh lesmis-server'
- name: Build meditrak-server
command: './packages/devops/scripts/ci/buildPackage.sh meditrak-server'
- name: Build psss-server
command: './packages/devops/scripts/ci/buildPackage.sh psss-server'
- name: Build report-server
command: './packages/devops/scripts/ci/buildPackage.sh report-server'
- name: Build web-config-server
command: './packages/devops/scripts/ci/buildPackage.sh web-config-server'
- name: Push builds
service: deployment
exclude: -e2e$
command: './packages/devops/scripts/ci/pushBuilds.sh'
- type: serial
name: Deploy backends
exclude: -e2e$
service: deployment
steps:
- name: Deploy admin-panel-server
command: './packages/devops/scripts/ci/deployBackend.sh admin-panel-server'
- name: Deploy entity-server
command: './packages/devops/scripts/ci/deployBackend.sh entity-server'
- name: Deploy lesmis-server
command: './packages/devops/scripts/ci/deployBackend.sh lesmis-server'
- name: Deploy meditrak-server
command: './packages/devops/scripts/ci/deployBackend.sh meditrak-server'
- name: Deploy psss-server
command: './packages/devops/scripts/ci/deployBackend.sh psss-server'
- name: Deploy report-server
command: './packages/devops/scripts/ci/deployBackend.sh report-server'
- name: Deploy web-config-server
command: './packages/devops/scripts/ci/deployBackend.sh web-config-server'
# run migrations immediately after backend deployment has finished so there is minimal time for code/db mismatch
- name: Run db migrations
service: deployment
exclude: -e2e$
command: './packages/devops/scripts/ci/runMigrations.sh'
- type: parallel
name: E2E test
service: e2e
tag: -e2e$
steps:
- name: E2E test web-frontend
command: './packages/devops/scripts/ci/testE2e.sh web-frontend'