stages: - prepare - test prepare:composer-install: stage: prepare tags: - prepare image: composer:2.4 script: - echo "Start composer install" - composer install --no-scripts --verbose --prefer-dist --no-progress --no-interaction --optimize-autoloader artifacts: expire_in: 1h paths: - composer.lock - vendor/ interruptible: true test:composer-security-check: stage: test tags: - test needs: - job: prepare:composer-install artifacts: true image: composer:2.4 script: - echo "Start package security check" - composer security-checker allow_failure: true interruptible: true test:php-codesniffer: stage: test tags: - test needs: - job: prepare:composer-install artifacts: true image: composer:2.4 script: - echo "Start PHP code sniffer" - composer style interruptible: true # https://github.com/overtrue/phplint test:php-lint: stage: test tags: - test needs: - job: prepare:composer-install artifacts: true image: composer:2.4 script: - composer lint interruptible: true except: - /^v\d+\.\d+\.\d+$/ test:phpunit-tests: stage: test tags: - test needs: - job: prepare:composer-install artifacts: true image: composer:2.4 script: - echo "Start PHPUnit tests" - composer test interruptible: true test:composer-require-checker: stage: test tags: - test needs: - job: prepare:composer-install artifacts: true image: composer:2.4 script: - echo "Downloading Composer require checker" - curl -OL https://github.com/maglnet/ComposerRequireChecker/releases/download/4.0.0/composer-require-checker.phar - echo "Start Composer require checker" - php composer-require-checker.phar check composer.json interruptible: true