forked from extcode/cart_pdf
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy path.gitlab-ci.yml
114 lines (103 loc) · 3.07 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
cache:
key: "$CI_JOB_STAGE-$CI_COMMIT_REF_NAME"
paths:
- .composer/
- .php_cs.cache
variables:
COMPOSER_CACHE_DIR: ".composer"
TYPO3_PATH_WEB: "$CI_PROJECT_DIR/.build/Web"
MYSQL_DATABASE: "typo3"
MYSQL_ROOT_PASSWORD: "joh316"
typo3DatabaseName: "typo3"
typo3DatabaseHost: "mysql"
typo3DatabaseUsername: "root"
typo3DatabasePassword: "joh316"
before_script:
- apk add git --update
stages:
- lint
- test
lint:cgl:
image: composer:2
stage: lint
before_script:
- composer remove typo3/cms-core --no-update
- composer install --no-progress --no-ansi --no-interaction
script:
- .build/bin/php-cs-fixer fix --config=Build/.php_cs.dist -v --dry-run --using-cache=no --path-mode=intersection ./
lint:typoscriptcgl:
stage: lint
image: composer:2
script:
- composer remove typo3/cms-core --no-update
- composer install --no-progress --no-ansi --no-interaction
- .build/bin/typoscript-lint -c tslint.yaml
lint:yaml:
stage: lint
image: python:alpine3.7
before_script:
- pip install yamllint==1.10.0
script:
- yamllint -c Build/yamllint.yaml Configuration/ Resources/ .travis.yml
lint:php72:
stage: lint
image: php:7.2-alpine
script:
- find . -name \*.php -exec php -l "{}" \;
.test: &test_php
stage: test
services:
- mysql:5
image: php:$DOCKER_TAG
only:
- branches
before_script:
- apk add --no-cache bash curl git mercurial openssh openssl parallel subversion tini
- >
if [[ "$COVERAGE" == "1" ]]; then
apk add --no-cache $PHPIZE_DEPS
pecl install xdebug && docker-php-ext-enable xdebug
fi
- docker-php-ext-install mysqli
- wget https://composer.github.io/installer.sig -O - -q | tr -d '\n' > installer.sig
- php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
- php -r "if (hash_file('SHA384', 'composer-setup.php') === trim(file_get_contents('installer.sig'))) { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
- php composer-setup.php --no-ansi --install-dir=/usr/bin --filename=composer
- php -r "unlink('composer-setup.php'); unlink('installer.sig');"
- composer require typo3/cms-core="${TYPO3_VERSION}"
script:
- >
if [[ "$COVERAGE" == "0" ]]; then
.build/bin/phpunit -c Build/UnitTests.xml
fi
- >
if [[ "$COVERAGE" == "1" ]]; then
.build/bin/phpunit --coverage-clover=phpunit.coverage.xml --log-junit=phpunit.report.xml -c Build/UnitTests.xml
fi
artifacts:
paths:
- phpunit.coverage.xml
- phpunit.report.xml
expire_in: 1 day
when: always
# Build in PHP 7.2 and TYPO3 10.4
test:php72:typo3_10:
<<: *test_php
variables:
DOCKER_TAG: 7.2-alpine
TYPO3_VERSION: ^10.4
COVERAGE: 0
# Build in PHP 7.3 and TYPO3 10.4
test:php73:typo3_10:
<<: *test_php
variables:
DOCKER_TAG: 7.3-alpine
TYPO3_VERSION: ^10.4
COVERAGE: 0
# Build in PHP 7.4 and TYPO3 10.4
test:php74:typo3_10:
<<: *test_php
variables:
DOCKER_TAG: 7.4-alpine
TYPO3_VERSION: ^10.4
COVERAGE: 1