forked from skilld-labs/skilld-docker-container
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.gitlab-ci.yml
213 lines (193 loc) · 5.38 KB
/
.gitlab-ci.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
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
# Variables to add in Gitalb UI : Settings > CI/CI
# - REVIEW_DOMAIN // Mandatory, should equal to DNS of available runner server with docker + docker-compose
# - SONAR_HOST // Optional
# - SONAR_TOKEN // Optional
# Tags defines which runner to use (expected shell runner)
.ra_tags_branches: &ra_tags_branches
tags:
- review-apps-4
only:
- branches
image: skilldlabs/php:72
variables:
GIT_DEPTH: "3"
before_script:
- date
- pwd
stages:
- sniffers
- deploy
- tests
- reports
sniffers:clang:
stage: sniffers
script:
- make clang
sniffers:compose:
stage: sniffers
script:
- composer -vvv -V
- time composer validate --profile --strict
sniffers:phpcs:
stage: sniffers
image: skilldlabs/docker-phpcs-drupal
script:
- ls -lah
- docker -v
- make phpcs
<<: *ra_tags_branches
sniffers:sonarqube:
stage: sniffers
image: skilldlabs/sonar-scanner:3.3
script:
- sonar-scanner
-Dsonar.projectKey=$CI_PROJECT_PATH_SLUG
-Dsonar.projectName=$CI_PROJECT_NAME
-Dsonar.host.url=${SONAR_HOST}
-Dsonar.login=${SONAR_TOKEN}
-Dsonar.projectBaseDir=.
-Dsonar.sources=.
-Dsonar.inclusions=settings/**,web/modules/custom/**,web/profiles/sdd/**,web/themes/custom/**
only:
- master
allow_failure: true
.job_deploy_commit_template: &job_deploy_commit
stage: deploy
before_script:
- date; pwd; ls -lahq;
- echo "Clean-up build dir ${BUILD_DIR}"
# Always down previous environment.
- (if [ -d ${BUILD_DIR} ]; then date; cd ${BUILD_DIR}; pwd; make clean; cd -; rm -rf ${BUILD_DIR}; fi)
script:
- echo "Removed previous review app ${CI_ENVIRONMENT_URL} from ${BUILD_DIR}."
dependencies:
- sniffers:phpcs
<<: *ra_tags_branches
deploy:review:
<<: *job_deploy_commit
script:
- echo "Deploy ${CI_ENVIRONMENT_URL} review app to ${BUILD_DIR}."
- echo "CI_ENVIRONMENT_NAME=${CI_ENVIRONMENT_NAME}"
- echo "CI_ENVIRONMENT_SLUG=${CI_ENVIRONMENT_SLUG}"
- echo "CI_ENVIRONMENT_URL=${CI_ENVIRONMENT_URL}"
- echo "CI_PROJECT_PATH_SLUG=${CI_PROJECT_PATH_SLUG}"
- echo "CI_PROJECT_NAME=${CI_PROJECT_NAME}"
- echo "REVIEW_DOMAIN=${REVIEW_DOMAIN}"
- mkdir -p ${BUILD_DIR}
- rsync -ah --exclude=.git --delete ./ ${BUILD_DIR}
- cd ${BUILD_DIR}
- echo "COMPOSE_PROJECT_NAME=${CI_PROJECT_NAME}-${CI_ENVIRONMENT_SLUG}" >> .env.default
- echo "MAIN_DOMAIN_NAME=${CI_ENVIRONMENT_SLUG}-${CI_PROJECT_PATH_SLUG}.${REVIEW_DOMAIN}" >> .env.default
- echo "INSTALL_DEV_DEPENDENCIES=TRUE" >> .env.default
- docker --version
- docker-compose --version
- make all
after_script:
- echo "Started ${CI_ENVIRONMENT_URL} composition in ${BUILD_DIR} from Makefile."
environment:
url: https://${CI_ENVIRONMENT_SLUG}-${CI_PROJECT_PATH_SLUG}.${REVIEW_DOMAIN}
name: review/$CI_COMMIT_REF_NAME
on_stop: stop_review
stop_review:
<<: *job_deploy_commit
variables:
GIT_STRATEGY: none
when: manual
environment:
name: review/$CI_COMMIT_REF_NAME
action: stop
test:behat:
stage: tests
environment:
url: https://${CI_ENVIRONMENT_SLUG}-${CI_PROJECT_PATH_SLUG}.${REVIEW_DOMAIN}
name: review/$CI_COMMIT_REF_NAME
on_stop: stop_review
script:
- echo "Starting job script in ${BUILD_DIR}"
- cd ${BUILD_DIR}
- pwd
- ls -lah
- ls -lah vendor/bin/
- make behat
after_script:
- cd ${BUILD_DIR}
- make browser_driver_stop
- rm -rf web/screenshots
- mkdir web/screenshots
- mv features/*.png web/screenshots/
- echo "- Screenshots are available here :" && cd web/screenshots && ls -h *.png | xargs -i echo "${CI_ENVIRONMENT_URL}/screenshots/{}"
dependencies:
- deploy:review
<<: *ra_tags_branches
test:cinsp:
stage: tests
environment:
url: https://${CI_ENVIRONMENT_SLUG}-${CI_PROJECT_PATH_SLUG}.${REVIEW_DOMAIN}
name: review/$CI_COMMIT_REF_NAME
on_stop: stop_review
script:
- echo "Starting job script in ${BUILD_DIR}"
- cd ${BUILD_DIR}
- pwd
- make cinsp
dependencies:
- deploy:review
<<: *ra_tags_branches
test:drupalcheck:
stage: tests
environment:
url: https://${CI_ENVIRONMENT_SLUG}-${CI_PROJECT_PATH_SLUG}.${REVIEW_DOMAIN}
name: review/$CI_COMMIT_REF_NAME
on_stop: stop_review
script:
- echo "Starting job script in ${BUILD_DIR}"
- cd ${BUILD_DIR}
- pwd
- ls -lah
- make drupalcheckval
dependencies:
- deploy:review
<<: *ra_tags_branches
test:contentgen:
stage: tests
environment:
url: https://${CI_ENVIRONMENT_SLUG}-${CI_PROJECT_PATH_SLUG}.${REVIEW_DOMAIN}
name: review/$CI_COMMIT_REF_NAME
on_stop: stop_review
script:
- echo "Starting job script in ${BUILD_DIR}"
- cd ${BUILD_DIR}
- pwd
- make contentgen
dependencies:
- deploy:review
<<: *ra_tags_branches
when: manual
report:statusreportval:
stage: reports
environment:
url: https://${CI_ENVIRONMENT_SLUG}-${CI_PROJECT_PATH_SLUG}.${REVIEW_DOMAIN}
name: review/$CI_COMMIT_REF_NAME
on_stop: stop_review
script:
- echo "Starting job script in ${BUILD_DIR}"
- cd ${BUILD_DIR}
- pwd
- make statusreportval
dependencies:
- deploy:review
<<: *ra_tags_branches
report:watchdog:
stage: reports
environment:
url: https://${CI_ENVIRONMENT_SLUG}-${CI_PROJECT_PATH_SLUG}.${REVIEW_DOMAIN}
name: review/$CI_COMMIT_REF_NAME
on_stop: stop_review
script:
- echo "Starting job script in ${BUILD_DIR}"
- cd ${BUILD_DIR}
- pwd
- make watchdogval
dependencies:
- deploy:review
<<: *ra_tags_branches