-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path.gitlab-ci.yml
95 lines (91 loc) · 3.14 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
.install-dependencies:
variables:
PHP_MEMORY_LIMIT: "2048M"
image:
name: registry.ulbricht.casa/jinya-cms/jinya-cms-php-base-test-image:latest
pull_policy: always
before_script:
- install-php-extensions pdo_pgsql
- phive --no-progress install --trust-gpg-keys D615FEE32FD1702834DACC9C8AC0BAA79732DD42,D8406D0D82947747293778314AA394086372C20A,CA7C2C7A30C8E8E1274A847651C67305FFC2E5C0
- composer install
stages:
- lint
- test
pint:
extends:
- .install-dependencies
stage: lint
script:
- ./vendor/bin/pint --test
phpstan:
extends:
- .install-dependencies
stage: lint
script:
- ./tools/phpstan --no-progress analyze ./src --memory-limit 1G
phpunit:
stage: test
extends:
- .install-dependencies
script:
- sleep 30
- ./tools/phpunit --no-progress --log-junit report.xml --configuration phpunit.ci.xml --coverage-cobertura=coverage.cobertura.xml
artifacts:
when: always
paths:
- report.xml
reports:
junit:
- report.xml
coverage_report:
coverage_format: cobertura
path: coverage.cobertura.xml
needs:
- pint
variables:
MYSQL_DATABASE: jinya
MYSQL_PASSWORD: jinya
MYSQL_ROOT_PASSWORD: jinya
MYSQL_USER: jinya
POSTGRES_PASSWORD: jinya
POSTGRES_USER: jinya
POSTGRES_DB: jinya
services:
- name: ${DATABASE_IMAGE}
alias: database
parallel:
matrix:
# MySQL testing
- DATABASE_DSN: 'mysql:host=database;port=3306;dbname=jinya;user=jinya;password=jinya;'
DATABASE_TYPE: 'mysql'
DATABASE_IMAGE: 'library/mysql:8.0'
- DATABASE_DSN: 'mysql:host=database;port=3306;dbname=jinya;user=jinya;password=jinya;'
DATABASE_TYPE: 'mysql'
DATABASE_IMAGE: 'library/mysql:8.2'
# MariaDB testing
- DATABASE_DSN: 'mysql:host=database;port=3306;dbname=jinya;user=jinya;password=jinya;'
DATABASE_TYPE: 'mysql'
DATABASE_IMAGE: 'library/mariadb:lts'
- DATABASE_DSN: 'mysql:host=database;port=3306;dbname=jinya;user=jinya;password=jinya;'
DATABASE_TYPE: 'mysql'
DATABASE_IMAGE: 'library/mariadb:latest'
# Postgres testing
- DATABASE_DSN: 'pgsql:host=database;port=5432;dbname=jinya;user=jinya;password=jinya;'
DATABASE_TYPE: 'pgsql'
DATABASE_IMAGE: 'library/postgres:12-alpine'
- DATABASE_DSN: 'pgsql:host=database;port=5432;dbname=jinya;user=jinya;password=jinya;'
DATABASE_TYPE: 'pgsql'
DATABASE_IMAGE: 'library/postgres:13-alpine'
- DATABASE_DSN: 'pgsql:host=database;port=5432;dbname=jinya;user=jinya;password=jinya;'
DATABASE_TYPE: 'pgsql'
DATABASE_IMAGE: 'library/postgres:14-alpine'
- DATABASE_DSN: 'pgsql:host=database;port=5432;dbname=jinya;user=jinya;password=jinya;'
DATABASE_TYPE: 'pgsql'
DATABASE_IMAGE: 'library/postgres:15-alpine'
- DATABASE_DSN: 'pgsql:host=database;port=5432;dbname=jinya;user=jinya;password=jinya;'
DATABASE_TYPE: 'pgsql'
DATABASE_IMAGE: 'library/postgres:16-alpine'
# Sqlite testing
- DATABASE_DSN: 'sqlite::memory:'
DATABASE_TYPE: 'sqlite'
DATABASE_IMAGE: 'library/alpine:latest'