]> git.p6c8.net - jirafeau.git/blob - .gitlab-ci.yml
fe75178a6273717977b520e91f80eefdb3b7a6e1
[jirafeau.git] / .gitlab-ci.yml
1 # Select what we should cache
2 cache:
3 paths:
4 - vendor/
5
6 # Run tests for php:8.2
7 job_lint_app_82:
8 image: php:8.2
9 before_script: &before_linter_script
10 # Install git, the docker php image doesn't have it installed by default
11 - apt-get update -yqq
12 - apt-get install git -yqq
13 - apt-get install zip -yqq
14 # Enable necessary php extensions
15 - docker-php-ext-enable curl && docker-php-ext-enable json && docker-php-ext-enable zip && docker-php-ext-enable mbstring && docker-php-ext-enable gd && docker-php-ext-enable pdo_mysql
16 # Install composer
17 - curl -sS https://getcomposer.org/installer | php
18 # Create composer.json file manually, since this is a project without any non-dev dependencies yet
19 - php composer.phar require --dev php-parallel-lint/php-parallel-lint
20 - php composer.phar require --dev friendsofphp/php-cs-fixer:3.64.0
21 # Install all project dependencies
22 - php composer.phar install
23 script: &linter_script
24 - ./vendor/bin/parallel-lint --exclude vendor .
25 - ./vendor/bin/php-cs-fixer -vvv check . --using-cache=no --rules=@PSR12,-single_space_around_construct
26
27 # Run tests for php:8.1
28 job_lint_app_81:
29 image: php:8.1
30 before_script: *before_linter_script
31 script: *linter_script
32
33 # Run tests for php:7.4
34 job_lint_app_74:
35 image: php:7.4
36 before_script: *before_linter_script
37 script: *linter_script
38
39 publish:
40 image: docker:latest
41 stage: deploy
42 services:
43 - docker:dind
44 script:
45 - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" "$CI_REGISTRY"
46 - docker build -t $CI_REGISTRY/$CI_REGISTRY_IMAGE:$CI_COMMIT_TAG .
47 # If we're on the default branch, also tag the image as latest
48 - docker build -t $CI_REGISTRY/$CI_REGISTRY_IMAGE:$CI_COMMIT_TAG -t $CI_REGISTRY/$CI_REGISTRY_IMAGE:latest .
49 - docker push $CI_REGISTRY/$CI_REGISTRY_IMAGE --all-tags
50 only:
51 - tags

patrick-canterino.de