X-Git-Url: https://git.p6c8.net/jirafeau/jirafeau.git/blobdiff_plain/ac471fd7432906217f7a2d46b37d49b1c9f512ea..9e0eb7719c3ce8dd8052b4c29da5c60033fc1389:/.gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index bf59897..613ab9b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -3,10 +3,12 @@ cache: paths: - vendor/ -# Run tests for php:8.1 -job_lint_app_81: - image: php:8.1 - before_script: &before_linter_script +# Aliases and Anchors for reuse + +.linter_script: &linter_script + - ./vendor/bin/parallel-lint --gitlab --exclude vendor . + - ./vendor/bin/php-cs-fixer -vvv check . --using-cache=no --rules=@PSR12,-single_space_around_construct +.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 @@ -17,18 +19,63 @@ job_lint_app_81: - 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 + - php composer.phar require --dev friendsofphp/php-cs-fixer:3.93.1 # Install all project dependencies - php composer.phar install - script: &linter_script - - ./vendor/bin/parallel-lint --exclude vendor . - - ./vendor/bin/php-cs-fixer -vvv fix . --dry-run --using-cache=no --rules=@PSR2 + +.enableWarningOnFailure: &linter_warning + allow_failure: + exit_codes: + - 1 + + +# Run tests for php:8.5 +job_lint_app_85: + image: php:8.5 + before_script: *before_linter_script + script: *linter_script + +# Run tests for php:8.4 +job_lint_app_84: + image: php:8.4 + before_script: *before_linter_script + script: *linter_script + +job_lint_app_83: + image: php:8.3 + before_script: *before_linter_script + script: *linter_script + +# Run tests for php:8.2 +job_lint_app_82: + image: php:8.2 + before_script: *before_linter_script + script: *linter_script + + +# ================= +# Deprecated ones START +# ================= + +# Run tests for php:8.1 +job_lint_app_81: + image: php:8.1 + before_script: *before_linter_script + script: *linter_script + <<: *linter_warning + + # Run tests for php:7.4 job_lint_app_74: image: php:7.4 before_script: *before_linter_script script: *linter_script + <<: *linter_warning + +# ================= +# Deprecated ones END +# ================= publish: image: docker:latest @@ -36,10 +83,14 @@ publish: services: - docker:dind script: + # Login to GitLab's Docker registry - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" "$CI_REGISTRY" - - docker build -t $CI_REGISTRY/$CI_REGISTRY_IMAGE:$CI_COMMIT_TAG . - # If we're on the default branch, also tag the image as latest - - docker build -t $CI_REGISTRY/$CI_REGISTRY_IMAGE:$CI_COMMIT_TAG -t $CI_REGISTRY/$CI_REGISTRY_IMAGE:latest . - - docker push $CI_REGISTRY/$CI_REGISTRY_IMAGE --all-tags + # 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