# GitLab CI for Laravel # GitLab reads this file automatically when it is committed at the repository root as `.gitlab-ci.yml`. workflow: rules: - if: '$CI_COMMIT_MESSAGE =~ /(\[ci skip\]|\[skip ci\])/i' when: never - if: '$CI_PIPELINE_SOURCE == "push"' when: always - if: '$CI_PIPELINE_SOURCE == "merge_request_event"' when: always - if: '$CI_COMMIT_TAG' when: always - when: never stages: - test variables: APP_ENV: testing APP_DEBUG: "false" LOG_CHANNEL: stderr DB_CONNECTION: mysql DB_HOST: mysql DB_PORT: "3306" DB_DATABASE: school_api_test DB_USERNAME: school_api DB_PASSWORD: school_api MYSQL_DATABASE: school_api_test MYSQL_USER: school_api MYSQL_PASSWORD: school_api MYSQL_ROOT_PASSWORD: root CACHE_DRIVER: array CACHE_STORE: array SESSION_DRIVER: array QUEUE_CONNECTION: sync MAIL_MAILER: array BROADCAST_CONNECTION: log FILESYSTEM_DISK: local COMPOSER_CACHE_DIR: "$CI_PROJECT_DIR/.composer-cache" XDEBUG_MODE: coverage cache: key: files: - composer.lock paths: - .composer-cache/ - vendor/ phpunit: image: php:8.3-cli stage: test services: - name: mysql:8.4 alias: mysql before_script: - apt-get update - apt-get install -y --no-install-recommends git unzip curl default-mysql-client libzip-dev libpng-dev libonig-dev libxml2-dev libcurl4-openssl-dev - docker-php-ext-install curl dom gd mbstring pdo pdo_mysql xml xmlwriter zip - php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" - php composer-setup.php --install-dir=/usr/local/bin --filename=composer - rm composer-setup.php - composer install --prefer-dist --no-interaction --no-progress - | cat > .env <