Merge branch 'QA' into 'dev'
Improve gitlab-ci environment. See merge request hubzilla/core!1516
This commit is contained in:
commit
f11c17063c
@ -1,40 +1,48 @@
|
|||||||
# Select image from https://hub.docker.com/_/php/
|
# Select image from https://hub.docker.com/_/php/
|
||||||
image: php:7.1
|
#image: php:7.2
|
||||||
|
# Use a prepared Hubzilla image to optimise pipeline run
|
||||||
|
image: registry.gitlab.com/dawnbreak/hubzilla/core:php7.2
|
||||||
|
|
||||||
|
|
||||||
stages:
|
stages:
|
||||||
- test
|
- test
|
||||||
- deploy
|
- deploy
|
||||||
|
|
||||||
|
|
||||||
# Select what we should cache
|
# Select what we should cache
|
||||||
cache:
|
cache:
|
||||||
paths:
|
paths:
|
||||||
- vendor/
|
- vendor/
|
||||||
|
- .cache/
|
||||||
|
|
||||||
|
|
||||||
|
# global variables for all jobs, if no job specific variables
|
||||||
variables:
|
variables:
|
||||||
# Configure mysql service (https://hub.docker.com/_/mysql/)
|
# Tell composer to use the project workspace .cache folder
|
||||||
|
COMPOSER_CACHE_DIR: "$CI_PROJECT_DIR/.cache/composer"
|
||||||
|
# Ignore a Composer warning
|
||||||
|
COMPOSER_ALLOW_SUPERUSER: 1
|
||||||
|
# Configure MySQL/MariaDB service (https://hub.docker.com/_/mysql/, https://hub.docker.com/_/mariadb/)
|
||||||
MYSQL_DATABASE: hello_world_test
|
MYSQL_DATABASE: hello_world_test
|
||||||
MYSQL_ROOT_PASSWORD: mysql
|
MYSQL_ROOT_PASSWORD: mysql
|
||||||
|
# Configure PostgreSQL service (https://hub.docker.com/_/postgres/)
|
||||||
|
POSTGRES_DB: ci-db
|
||||||
|
POSTGRES_USER: ci-user
|
||||||
|
POSTGRES_PASSWORD: ci-pass
|
||||||
|
|
||||||
|
|
||||||
before_script:
|
before_script:
|
||||||
# prevent error installing buggy postgresql-client package
|
|
||||||
- mkdir -p /usr/share/man/man1 /usr/share/man/man7
|
|
||||||
- apt-get update -yqq
|
|
||||||
- apt-get install -yqq --no-install-recommends git mysql-client postgresql-client libmcrypt-dev libpq-dev libcurl4-gnutls-dev libicu-dev libvpx-dev libjpeg-dev libpng-dev libxpm-dev zlib1g-dev libfreetype6-dev libxml2-dev libexpat1-dev libbz2-dev libgmp3-dev libldap2-dev unixodbc-dev libaspell-dev libpcre3-dev libtidy-dev
|
|
||||||
# Install PHP extensions
|
|
||||||
- docker-php-ext-install mbstring mcrypt pdo_mysql pdo_pgsql curl json intl gd xml zip bz2 opcache
|
|
||||||
# Install & enable Xdebug for code coverage reports
|
# Install & enable Xdebug for code coverage reports
|
||||||
- pecl install xdebug
|
- pecl install xdebug
|
||||||
- docker-php-ext-enable xdebug
|
- docker-php-ext-enable xdebug
|
||||||
# Install and run Composer
|
# Install composer
|
||||||
- curl -sS https://getcomposer.org/installer | php
|
- curl -sS https://getcomposer.org/installer | php
|
||||||
# Install dev libraries from composer
|
# Install dev libraries from composer
|
||||||
- php composer.phar install --no-progress
|
- php composer.phar install --no-progress
|
||||||
# Configure PHP values, needed for phpunit code coverage HTML generation
|
|
||||||
- echo "memory_limit = 256M" > /usr/local/etc/php/conf.d/hubzilla.ini
|
|
||||||
|
|
||||||
|
|
||||||
# We test PHP7 with MySQL
|
# test PHP7 with MySQL 5.7
|
||||||
test:php:mysql:
|
php7.2_mysql 1/2:
|
||||||
stage: test
|
stage: test
|
||||||
services:
|
services:
|
||||||
- mysql:5.7
|
- mysql:5.7
|
||||||
@ -44,15 +52,38 @@ test:php:mysql:
|
|||||||
- echo "USE $MYSQL_DATABASE; SHOW TABLES;" | mysql --user=root --password="$MYSQL_ROOT_PASSWORD" --host=mysql "$MYSQL_DATABASE"
|
- echo "USE $MYSQL_DATABASE; SHOW TABLES;" | mysql --user=root --password="$MYSQL_ROOT_PASSWORD" --host=mysql "$MYSQL_DATABASE"
|
||||||
- vendor/bin/phpunit --configuration tests/phpunit.xml --coverage-text
|
- vendor/bin/phpunit --configuration tests/phpunit.xml --coverage-text
|
||||||
|
|
||||||
# test PHP7 with PostgreSQL
|
|
||||||
test:php:postgres:
|
# test PHP7 with MySQL latest (8)
|
||||||
|
php7.2_mysql 2/2:
|
||||||
|
stage: test
|
||||||
|
services:
|
||||||
|
- name: mysql:latest
|
||||||
|
command: ["--default-authentication-plugin=mysql_native_password"]
|
||||||
|
script:
|
||||||
|
- echo "USE $MYSQL_DATABASE; $(cat ./install/schema_mysql.sql)" | mysql --user=root --password="$MYSQL_ROOT_PASSWORD" --host=mysql "$MYSQL_DATABASE"
|
||||||
|
- echo "SHOW DATABASES;" | mysql --user=root --password="$MYSQL_ROOT_PASSWORD" --host=mysql "$MYSQL_DATABASE"
|
||||||
|
- echo "USE $MYSQL_DATABASE; SHOW TABLES;" | mysql --user=root --password="$MYSQL_ROOT_PASSWORD" --host=mysql "$MYSQL_DATABASE"
|
||||||
|
- vendor/bin/phpunit --configuration tests/phpunit.xml --coverage-text
|
||||||
|
|
||||||
|
|
||||||
|
# test PHP7 with MariaDB latest (10.3)
|
||||||
|
php7.2_mariadb:
|
||||||
|
stage: test
|
||||||
|
services:
|
||||||
|
- name: mariadb:latest
|
||||||
|
alias: mysql
|
||||||
|
script:
|
||||||
|
- echo "USE $MYSQL_DATABASE; $(cat ./install/schema_mysql.sql)" | mysql --user=root --password="$MYSQL_ROOT_PASSWORD" --host=mysql "$MYSQL_DATABASE"
|
||||||
|
- echo "SHOW DATABASES;" | mysql --user=root --password="$MYSQL_ROOT_PASSWORD" --host=mysql "$MYSQL_DATABASE"
|
||||||
|
- echo "USE $MYSQL_DATABASE; SHOW TABLES;" | mysql --user=root --password="$MYSQL_ROOT_PASSWORD" --host=mysql "$MYSQL_DATABASE"
|
||||||
|
- vendor/bin/phpunit --configuration tests/phpunit.xml --coverage-text
|
||||||
|
|
||||||
|
|
||||||
|
# test PHP7 with PostgreSQL latest
|
||||||
|
php7.2_postgres:
|
||||||
stage: test
|
stage: test
|
||||||
services:
|
services:
|
||||||
- postgres:latest
|
- postgres:latest
|
||||||
variables:
|
|
||||||
POSTGRES_DB: ci-db
|
|
||||||
POSTGRES_USER: ci-user
|
|
||||||
POSTGRES_PASSWORD: ci-pass
|
|
||||||
script:
|
script:
|
||||||
- export PGPASSWORD=$POSTGRES_PASSWORD
|
- export PGPASSWORD=$POSTGRES_PASSWORD
|
||||||
- psql --version
|
- psql --version
|
||||||
|
Reference in New Issue
Block a user