-
Notifications
You must be signed in to change notification settings - Fork 0
/
.gitlab-ci.yml
126 lines (117 loc) · 2.47 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
default:
image: php:7
artifacts:
untracked: true
paths:
- .
variables:
MYSQL_ROOT_PASSWORD: "root"
MYSQL_USER: tests
MYSQL_PASSWORD: tests
MYSQL_DATABASE: app
DATABASE_URL: "mysql://$MYSQL_USER:$MYSQL_PASSWORD@mysql:3306/$MYSQL_DATABASE?serverVersion=5.7"
stages:
- build_yarn
- build_sf
- build_assets
- tests
- deploy
yarn_install:
stage: build_yarn
image: 20minutes/node-12-yarn-serverless
script:
- yarn install --dev
artifacts:
untracked: true
paths:
- node_modules
only:
# branch
- /^ci/gitlab-saas$/
# tag names
- /^gitlab-.*$/i
sf_vendors:
stage: build_sf
image: composer:1.9
script:
- composer install -n
artifacts:
untracked: true
paths:
- vendor
only:
# branch
- /^ci/gitlab-saas$/
# tag names
- /^gitlab-.*$/i
sf_assets:
stage: build_assets
image: 20minutes/node-12-yarn-serverless
script:
- yarn encore dev
- yarn encore production
only:
# branch
- /^ci/gitlab-saas$/
# tag names
- /^gitlab-.*$/i
unit_tests:
stage: tests
image: composer:1.9
services:
- mysql:5.7
script:
- php bin/phpunit ./tests/unit-tests
artifacts: {}
only:
# branch
- /^ci/gitlab-saas$/
# tag names
- /^gitlab-.*$/i
functional_tests:
stage: tests
image: composer:1.9
services:
- mysql:5.7
script:
- php bin/phpunit ./tests/functionnal-tests
artifacts: {}
only:
# branch
- /^ci/gitlab-saas$/
# tag names
- /^gitlab-.*$/i
deploy_stg:
stage: deploy
image: ubuntu:18.04
script:
- apt update -yqq && apt install -yqq openssh-client rsync
- eval $(ssh-agent)
- echo $SSH_PRIVATE_KEY | base64 --decode | ssh-add -
- rsync -e "ssh -o StrictHostKeyChecking=no" -va $CI_PROJECT_DIR/ [email protected]:/srv/staging/
environment:
name: staging
url: http://apdemo-stg.wmars.space/
when: on_success
only:
# branch
- /^ci/gitlab-saas$/
# tag names
- /^gitlab-.*$/i
deploy_prod:
stage: deploy
image: ubuntu:18.04
script:
- apt update -yqq && apt install -yqq openssh-client rsync
- eval $(ssh-agent)
- echo $SSH_PRIVATE_KEY | base64 --decode | ssh-add -
- rsync -e "ssh -o StrictHostKeyChecking=no" -va $CI_PROJECT_DIR/ [email protected]:/srv/production/
environment:
name: production
url: http://apdemo.wmars.space/
when: manual
only:
# branch (we want only tags to be deployed in production)
# - /^ci/gitlab-saas$/
# tag names
- /^gitlab-.*$/i