]> git.p6c8.net - jirafeau.git/blobdiff - .gitlab-ci.yml
Merge branch 'bug_content_length' into 'next-release'
[jirafeau.git] / .gitlab-ci.yml
index 0d2d9c4a51ab8160a903b2431f48fa72e4b12598..627ed17edeafe41783446928a7827acd4a27ba9b 100644 (file)
@@ -1,35 +1,55 @@
-# Select docker image from https://hub.docker.com/_/php/
-image: php:8.1
-
 # Select what we should cache
 cache:
   paths:
     - vendor/
 
-before_script:
-  # Install git, the docker php image doesn't have it installed by default
-  - apt-get update -yqq
-  - apt-get install git -yqq
-  - apt-get install zip -yqq
-  # Enable necessary php extensions
-  - 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
-  # Install composer
-  - curl -sS https://getcomposer.org/installer | php
-  # Create composer.json file manually, since this is a project without any non-dev dependencies yet
-  - php composer.phar require --dev php-parallel-lint/php-parallel-lint
-  - php composer.phar require --dev friendsofphp/php-cs-fixer:3.10.0
-  # Install all project dependencies
-  - php composer.phar install
+# Run tests for php:8.2
+job_lint_app_82:
+  image: php:8.2
+  before_script: &before_linter_script
+    # Install git, the docker php image doesn't have it installed by default
+    - apt-get update -yqq
+    - apt-get install git -yqq
+    - apt-get install zip -yqq
+    # Enable necessary php extensions
+    - 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
+    # Install composer
+    - curl -sS https://getcomposer.org/installer | php
+    # Create composer.json file manually, since this is a project without any non-dev dependencies yet
+    - php composer.phar require --dev php-parallel-lint/php-parallel-lint
+    - php composer.phar require --dev friendsofphp/php-cs-fixer:3.64.0
+    # Install all project dependencies
+    - php composer.phar install
+  script: &linter_script
+    - ./vendor/bin/parallel-lint --exclude vendor .
+    - ./vendor/bin/php-cs-fixer -vvv check . --using-cache=no --rules=@PSR12,-single_space_around_construct
 
-# Run tests
+# Run tests for php:8.1
 job_lint_app_81:
   image: php:8.1
-  script:
-    - ./vendor/bin/parallel-lint --exclude vendor .
-    - ./vendor/bin/php-cs-fixer -vvv fix . --dry-run --using-cache=no --rules=@PSR2
+  before_script: *before_linter_script
+  script: *linter_script
 
+# Run tests for php:7.4
 job_lint_app_74:
   image: php:7.4
+  before_script: *before_linter_script
+  script: *linter_script
+
+publish:
+  image: docker:latest
+  stage: deploy
+  services:
+    - docker:dind
   script:
-    - ./vendor/bin/parallel-lint --exclude vendor .
-    - ./vendor/bin/php-cs-fixer -vvv fix . --dry-run --using-cache=no --rules=@PSR2
+    # Login to GitLab's Docker registry
+    - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" "$CI_REGISTRY"
+    # Create a new builder instance and switch to it
+    - docker buildx create --use
+    # Build the image:
+    # 1. Build a Docker image for linux/arm/v7, linux/arm64/v8 and linux/amd64
+    # 2. Tag it with the current commit tag and "latest"
+    # 3. Push it to GitLab's Docker registry
+    - docker buildx build --push --platform linux/arm/v7,linux/arm64/v8,linux/amd64 --tag $CI_REGISTRY/$CI_REGISTRY_IMAGE:$CI_COMMIT_TAG --tag $CI_REGISTRY/$CI_REGISTRY_IMAGE:latest .
+  only:
+    - tags

patrick-canterino.de