-
Notifications
You must be signed in to change notification settings - Fork 0
/
.gitlab-ci.yml
119 lines (111 loc) · 3.6 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
stages:
- build:backend
- build:fronentd
- test
variables:
SYLIUS_BUILD_DIR: etc/build
COMPOSER_HOME: tmp/composer
APP_ENV: test
APP_SECRET: 2a2f0c6cf200b9b9ff6f33fceabb8643
DATABASE_URL: pgsql://runner:runner-password@localhost:5432/test-db
MAILER_URL: null://localhost
POSTGRES_DB: test-db
POSTGRES_USER: runner
POSTGRES_PASSWORD: runner-password
BEHAT_PARAMS: |
{
"extensions": {
"Behat\\MinkExtension": {
"sessions": {
"chrome": {
"selenium2": {
"wd_host": "http://selenium:4444/wd/hub"
}
}
}
}
}
}
build:backend:
image: composer:1
stage: build:backend
cache:
key: ${CI_JOB_NAME}
paths:
- vendor
- ${COMPOSER_HOME}
script:
- composer require "symfony/symfony:^4.1" --no-interaction --no-update
- composer validate --strict
- composer install --no-progress --classmap-authoritative --ignore-platform-reqs --no-interaction
- (cd tests/Application && bin/console cache:warmup --env=test -vvv)
- (cd tests/Application && bin/console assets:install public --env=test -vvv)
artifacts:
paths:
- vendor
- tests/Application
expire_in: 1 hours
build:fronentd:
image: mangoweb/sylius-frontend-builder:0.1
stage: build:fronentd
cache:
key: ${CI_JOB_NAME}
paths:
- tests/Application/node_modules
script:
- (cd tests/Application && yarn install --production=false)
- (cd tests/Application && yarn run gulp)
artifacts:
paths:
- tests/Application/node_modules
- tests/Application/public
expire_in: 1 hours
dependencies:
- build:backend
test:code:
stage: test
image: php:7.2
script:
- bin/phpstan.sh
- bin/ecs.sh
dependencies:
- build:backend
test:tests:
services:
- postgres:10-alpine
stage: test
image: 831119889470.dkr.ecr.eu-central-1.amazonaws.com/mangoweb/php:7.2 #TODO Create image for public
script:
- (cd tests/Application && bin/console doctrine:schema:create --env=test -vvv)
- bin/phpunit
- bin/behat --tags="~@javascript" --strict -vvv --no-interaction || bin/behat --tags="~@javascript" --strict -vvv --no-interaction --rerun
artifacts:
when: always
paths:
- ${SYLIUS_BUILD_DIR}
- tests/Application/var/log
dependencies:
- build:backend
- build:fronentd
# TODO: Make work
.test:selenium:
services:
- postgres:10-alpine
- selenium/standalone-chrome:2.53.1
stage: test
image: 831119889470.dkr.ecr.eu-central-1.amazonaws.com/mangoweb/php:7.2 #TODO Create image for public
script:
- (cd tests/Application && bin/console doctrine:schema:create --env=test -vvv)
- (cd tests/Application && bin/console server:start 127.0.0.1:8080 -d public -e test)
- bin/behat --tags="@javascript" --strict -vvv --no-interaction || bin/behat --tags="@javascript" --strict -vvv --no-interaction --rerun
- (cd tests/Application && bin/console server:stop)
after_script:
- (cd tests/Application && bin/console server:stop)
artifacts:
when: always
paths:
- ${SYLIUS_BUILD_DIR}
- tests/Application/var/log
dependencies:
- build:backend
- build:fronentd