49 lines
1.3 KiB
YAML
49 lines
1.3 KiB
YAML
test:
|
|
image: ${CI_REGISTRY}/leenooks/php:8.1-fpm-alpine-mysql-test
|
|
|
|
stage: test
|
|
|
|
# NOTE: This service is dependant on project file configuration, which is not there if the cache was deleted
|
|
# resulting in the testing to fail on the first run.
|
|
services:
|
|
- mariadb:10.5
|
|
|
|
variables:
|
|
MYSQL_DATABASE: testing
|
|
MYSQL_ROOT_PASSWORD: test
|
|
MYSQL_USER: test
|
|
MYSQL_PASSWORD: test
|
|
|
|
tags:
|
|
- php
|
|
only:
|
|
- master
|
|
- test
|
|
|
|
before_script:
|
|
- mv .env.testing .env
|
|
|
|
# Install Composer and project dependencies.
|
|
- mkdir -p ${COMPOSER_HOME}
|
|
- if [ -n "$GITHUB_TOKEN" ]; then cat $GITHUB_TOKEN |base64 -d > ${COMPOSER_HOME}/auth.json; fi
|
|
- composer install
|
|
|
|
# Add mysql client for schema pre-load
|
|
- apt update -o Acquire::ForceIPv4=true && apt install -o Acquire::ForceIPv4=true -y mariadb-client
|
|
|
|
# Generate an application key. Re-cache.
|
|
- php artisan key:generate --env=testing
|
|
- php artisan config:cache --env=testing
|
|
- php artisan migrate
|
|
- php artisan db:seed
|
|
|
|
script:
|
|
# run laravel tests
|
|
- XDEBUG_MODE=coverage php vendor/bin/phpunit --coverage-text --colors=never
|
|
|
|
# run frontend tests
|
|
# if you have any task for testing frontend
|
|
# set it in your package.json script
|
|
# comment this out if you don't have a frontend test
|
|
# npm test
|