diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 1a965b9..4d13256 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,7 +1,46 @@ stages: + - build + - test - docker - deploy +variables: + MYSQL_DATABASE: portfolio + MYSQL_ROOT_PASSWORD: password + +php-build-job: + stage: build + image: composer:2 + script: + - composer install + artifacts: + paths: + - vendor/ + +php-test-job: + stage: test + image: php:8-cli + services: + - mysql:5 + needs: + - php-build-job + dependencies: + - php-build-job + script: + - yes | pecl install xdebug + - echo "zend_extension=$(find /usr/local/lib/php/extensions/ -name xdebug.so)" > /usr/local/etc/php/conf.d/xdebug.ini + - echo "xdebug.mode=coverage" >> /usr/local/etc/php/conf.d/xdebug.ini + - export DB_CONNECTION=mysql + - export DB_HOST=mysql + - export DB_PORT=3306 + - export DB_DATABASE="$MYSQL_DATABASE" + - export DB_USERNAME=root + - export DB_PASSWORD="$MYSQL_ROOT_PASSWORD" + - ./vendor/bin/phpunit --coverage-cobertura code-coverage.xml + artifacts: + reports: + cobertura: code-coverage.xml + docker-auth-job: stage: docker image: docker:stable @@ -21,6 +60,8 @@ docker-build-job: only: refs: - master + needs: + - php-test-job tags: - docker script: