yii2
/
.gitlab-ci.yml
112 строк · 3.1 Кб
1image: docker:latest
2
3services:
4- docker:dind
5
6variables:
7DOCKER_YII2_PHP_IMAGE: yiisoftware/yii2-php:7.4-apache
8DOCKER_MYSQL_IMAGE: percona:5.7
9DOCKER_POSTGRES_IMAGE: postgres:9.3
10
11before_script:
12- apk add --no-cache git curl docker-compose
13- docker info
14- cd tests
15
16stages:
17- travis
18- test
19- cleanup
20
21test:
22stage: test
23script:
24- docker-compose up --build -d
25- docker-compose run --rm php vendor/bin/phpunit -v --exclude caching,db,data --log-junit tests/_junit/test.xml
26
27caching:
28stage: test
29only:
30- tests/caching
31- tests/full
32script:
33- export COMPOSE_FILE=docker-compose.yml:docker-compose.${CI_BUILD_NAME}.yml
34- docker-compose up --build -d
35- docker-compose run --rm php vendor/bin/phpunit -v --group caching --exclude db
36
37db:
38stage: test
39only:
40- tests/mysql
41- tests/full
42script:
43- docker-compose up --build -d
44- docker-compose run --rm php vendor/bin/phpunit -v --group db --exclude caching,mysql,pgsql,mssql,cubrid,oci
45
46
47mysql:
48stage: test
49only:
50- tests/mysql
51- tests/full
52script:
53- export COMPOSE_FILE=docker-compose.yml:docker-compose.${CI_BUILD_NAME}.yml
54- docker-compose up --build -d
55# wait for db (retry X times)
56- docker-compose run --rm php bash -c "while ! curl mysql:3306; do ((c++)) && ((c==30)) && break; sleep 2; done"
57- docker-compose run --rm php vendor/bin/phpunit -v --group mysql
58
59
60pgsql:
61stage: test
62only:
63- tests/pgsql
64- tests/full
65script:
66- export COMPOSE_FILE=docker-compose.yml:docker-compose.${CI_BUILD_NAME}.yml
67- docker-compose up --build -d
68# wait for db (retry X times)
69- docker-compose run --rm php bash -c 'while [ true ]; do curl postgres:5432; if [ $? == 52 ]; then break; fi; ((c++)) && ((c==25)) && break; sleep 2; done'
70- docker-compose run --rm php vendor/bin/phpunit -v --group pgsql
71
72
73cubrid:
74stage: test
75only:
76- tests/cubrid
77- tests/extra
78script:
79- cd cubrid
80- docker-compose up --build -d
81# wait for db (retry X times)
82- docker-compose run --rm php bash -c 'while [ true ]; do curl cubrid:1523; if [ $? == 56 ]; then break; fi; ((c++)) && ((c==20)) && break; sleep 3; done'
83- sleep 5
84- docker-compose run --rm php /project/vendor/bin/phpunit -v --group cubrid
85
86
87mssql:
88stage: test
89only:
90- tests/mssql
91- tests/extra
92script:
93- cd mssql
94- docker-compose up --build -d
95# wait for db (retry X times)
96- docker-compose run --rm php bash -c 'while [ true ]; do curl mssql:1433; if [ $? == 52 ]; then break; fi; ((c++)) && ((c==15)) && break; sleep 5; done'
97- sleep 3
98# Note: Password has to be the last parameter
99- docker-compose run --rm sqlcmd sh -c 'sqlcmd -S mssql -U sa -Q "CREATE DATABASE yii2test" -P Microsoft-12345'
100- docker-compose run --rm php vendor/bin/phpunit -v --group mssql
101
102
103travis:
104stage: travis
105only:
106- travis
107script:
108- export COMPOSE_FILE=docker-compose.yml:docker-compose.mysql.yml:docker-compose.pgsql.yml
109- docker-compose up --build -d
110# wait for dbs ...
111- sleep 10
112- docker-compose run --rm php vendor/bin/phpunit -v --exclude mssql,cubrid,oci,wincache,xcache,zenddata,cubrid
113
114