diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 080e775984841167a538192c6cc820119e0d08e5..08d5e9d27d5f2c205157dd8f17917b842de0288f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,74 +1,57 @@ stages: - - build + - vendor - test -variables: - COMPOSER_ALLOW_SUPERUSER: "1" - COMPOSER_NO_INTERACTION: "1" - COMPOSER_HOME: "$CI_PROJECT_DIR/.composer" - -install-vendors: - tags: [ docker ] - stage: build - image: composer:1.8 - dependencies: [] +.php: &php + tags: + - docker + image: php:${PHP_VERSION}-cli-stretch + variables: + COMPOSER_HOME: "$CI_PROJECT_DIR/.composer" + COMPOSER_NO_INTERACTION: "1" + COMPOSER_ALLOW_SUPERUSER: "1" + COMPOSER_INSTALLER_COMMITID: "5eb0614d3fa7130b363698d3dca52c619b463615" + PHP_VERSION: "7.1" before_script: - - mkdir -p "$COMPOSER_HOME" vendor/bin - - composer global require hirak/prestissimo - - cp $(which composer) vendor/bin/composer + - apt-get update -yqq && apt-get install -yqq unzip git-core + - php -v + - curl -sSfL https://raw.githubusercontent.com/composer/getcomposer.org/${COMPOSER_INSTALLER_COMMITID}/web/installer | php -- --install-dir=/usr/local/bin --filename=composer --quiet + - composer -V + +vendor: + <<: *php + stage: vendor + dependencies: [] script: - - composer validate - - composer install -n --prefer-dist --no-suggest --no-progress --no-scripts --ignore-platform-reqs - cache: - key: "$CI_COMMIT_REF_NAME-composer" - paths: - - $COMPOSER_HOME + - composer global require hirak/prestissimo --quiet + - composer install --no-suggest --no-progress artifacts: - name: vendors + name: "$CI_JOB_NAME" paths: - vendor - expire_in: "1 day" + expire_in: 4 hours + cache: + key: "$CI_BUILD_REF_NAME-composer" + paths: + - "$COMPOSER_HOME" -.test: &test - tags: [ docker ] +.php-test: &php-test + <<: *php stage: test - image: php:7.1-cli - dependencies: [ install-vendors ] - -phploc: - <<: *test - script: vendor/bin/composer test:phploc - -phpstan: - <<: *test - script: vendor/bin/composer test:phpstan - -lint: - <<: *test - script: vendor/bin/composer test:lint - -php-cs-fixer: - <<: *test - before_script: - - apt-get update -yqq && apt-get install -yqq git - script: vendor/bin/composer test:php-cs-fixer - -phpcpd: - <<: *test - script: vendor/bin/composer test:phpcpd + dependencies: + - vendor + script: composer ${CI_JOB_NAME} + +phploc: { <<: *php-test } + +test:lint: { <<: *php-test } +test:phpmd: { <<: *php-test } +test:phpstan: { <<: *php-test } +test:phpunit: { <<: *php-test } +test:composer-validate: { <<: *php-test } +test:composer-require: { <<: *php-test } +test:security: { <<: *php-test } + +test:phpcpd: + <<: *php-test allow_failure: true - -phpunit: - <<: *test - script: vendor/bin/composer test:phpunit - -composer-require-checker: - <<: *test - before_script: - - apt-get update -yqq && apt-get install -yqq zlib1g-dev - - docker-php-ext-install -j$(nproc) zip - script: vendor/bin/composer test:composer-require-checker - -phpmd: - <<: *test - script: vendor/bin/composer test:phpmd