mirror of https://github.com/FriendsOfTYPO3/tea.git synced 2024-09-20 01:56:12 +02:00
tea/.gitlab/pipeline/.gitlab-ci.yml

316 lines
6 KiB
YAML

---
stages:
- build
- lint
- codestyle
- normalize
- test
include:
- template: Security/License-Scanning.gitlab-ci.yml
- template: Security/Secret-Detection.gitlab-ci.yml
- template: Security/SAST.gitlab-ci.yml
variables:
MYSQL_ROOT_PASSWORD: root
typo3DatabaseName: typo3
typo3DatabaseHost: mariadb
typo3DatabaseUsername: root
typo3DatabasePassword: root
.default:
image: php:7.4
before_script:
- bash .gitlab/build/docker_install.sh > /dev/null
.default-frontend:
image: node:latest
needs: [ ]
cache:
key: "$CI_PROJECT_ID"
paths:
- Resources/Private/node_modules/
- Resources/Private/.yarn
before_script:
- npm install -g eslint
- cd ./Resources/Private
- yarn install --cache-folder .yarn
build-composer-dependencies:
extends: .default
stage: build
needs: [ ]
variables:
COMPOSER_CACHE_DIR: '.composer'
script:
- composer --version
- COMPOSER_CACHE_DIR=.composer
composer install --prefer-dist --no-progress --optimize-autoloader
artifacts:
when: on_success
expire_in: 2 weeks
paths:
- .Build
cache:
paths:
- .composer
- .Build
php-lint-php7.2:
extends: .default
image: php:7.2
stage: lint
needs: [ ]
script:
- composer ci:php:lint
php-lint-php7.3:
extends: .default
image: php:7.3
stage: lint
needs: [ ]
script:
- composer ci:php:lint
php-lint-php7.4:
extends: .default
image: php:7.4
stage: lint
needs: [ ]
script:
- composer ci:php:lint
ts-lint:
extends: .default
stage: lint
needs:
- build-composer-dependencies
script:
- composer ci:ts:lint
json-lint:
extends: .default
stage: lint
needs:
- build-composer-dependencies
script:
- composer ci:json:lint
yaml-lint:
extends: .default
stage: lint
needs:
- build-composer-dependencies
script:
- composer ci:yaml:lint
xliff-lint:
extends: .default
stage: lint
needs:
- build-composer-dependencies
script:
- wget https://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd
- xmllint --schema ./xliff-core-1.2-strict.xsd
--noout $(find Resources -name '*.xlf')
javascript-lint:
extends: .default-frontend
stage: lint
script:
- yarn lint:js
style-lint:
extends: .default-frontend
stage: lint
script:
- yarn lint:style
unit-php7.2-v10:
extends: .default
image: php:7.2
stage: test
needs:
- build-composer-dependencies
- php-lint-php7.2
script:
- composer require --no-progress typo3/minimal:"^10.4"
- composer ci:tests:unit
unit-php7.3-v10:
extends: .default
image: php:7.3
stage: test
needs:
- build-composer-dependencies
- php-lint-php7.3
script:
- composer require --no-progress typo3/minimal:"^10.4"
- composer ci:tests:unit
unit-php7.4-v10:
extends: .default
image: php:7.4
stage: test
needs:
- build-composer-dependencies
- php-lint-php7.4
script:
- composer require --no-progress typo3/minimal:"^10.4"
- composer ci:tests:unit
func-php7.2-v10:
extends: .default
image: php:7.2
services:
- mariadb:10
stage: test
needs:
- build-composer-dependencies
- php-lint-php7.2
script:
- composer require --no-progress typo3/minimal:"^10.4"
- composer ci:tests:functional
func-php7.3-v10:
extends: .default
image: php:7.3
services:
- mariadb:10
stage: test
needs:
- build-composer-dependencies
- php-lint-php7.3
script:
- composer require --no-progress typo3/minimal:"^10.4"
- composer ci:tests:functional
func-php7.4-v10:
extends: .default
image: php:7.4
services:
- mariadb:10
stage: test
needs:
- build-composer-dependencies
- php-lint-php7.4
script:
- composer require --no-progress typo3/minimal:"^10.4"
- composer ci:tests:functional
unit-php7.2-v9:
extends: .default
image: php:7.2
stage: test
dependencies: [ ]
needs:
- build-composer-dependencies
- php-lint-php7.2
script:
- composer require --no-progress typo3/minimal:"^9.5"
- composer ci:tests:unit
unit-php7.3-v9:
extends: .default
image: php:7.3
stage: test
dependencies: [ ]
needs:
- build-composer-dependencies
- php-lint-php7.3
script:
- composer require --no-progress typo3/minimal:"^9.5"
- composer ci:tests:unit
unit-php7.4-v9:
extends: .default
image: php:7.4
stage: test
dependencies: [ ]
needs:
- build-composer-dependencies
- php-lint-php7.4
script:
- composer require --no-progress typo3/minimal:"^9.5"
- composer ci:tests:unit
func-php7.2-v9:
extends: .default
image: php:7.2
services:
- mariadb:10
stage: test
dependencies: [ ]
needs:
- build-composer-dependencies
- php-lint-php7.2
script:
- composer require --no-progress typo3/minimal:"^9.5"
- composer ci:tests:functional
func-php7.3-v9:
extends: .default
image: php:7.3
services:
- mariadb:10
stage: test
dependencies: [ ]
needs:
- build-composer-dependencies
- php-lint-php7.3
script:
- composer require --no-progress typo3/minimal:"^9.5"
- composer ci:tests:functional
func-php7.4-v9:
extends: .default
image: php:7.4
services:
- mariadb:10
stage: test
dependencies: [ ]
needs:
- build-composer-dependencies
- php-lint-php7.4
script:
- composer require --no-progress typo3/minimal:"^9.5"
- composer ci:tests:functional
phpcs:
extends: .default
stage: codestyle
needs:
- build-composer-dependencies
- php-lint-php7.2
- php-lint-php7.3
- php-lint-php7.4
script:
- composer ci:php:sniff
php-copypaste-check:
extends: .default
stage: codestyle
needs:
- build-composer-dependencies
- php-lint-php7.2
- php-lint-php7.3
- php-lint-php7.4
script:
- composer ci:php:copypaste
phpstan:
extends: .default
stage: codestyle
needs:
- build-composer-dependencies
- php-lint-php7.2
- php-lint-php7.3
- php-lint-php7.4
script:
- composer ci:php:stan
composer-normalize:
extends: .default
stage: codestyle
script:
- composer ci:composer:normalize