Add PostgreSQL to gitlab-ci setup.
Run our tests against a PostgreSQL again.
This commit is contained in:
parent
b1b1e0eba4
commit
d6167636fa
@ -11,13 +11,11 @@ variables:
|
|||||||
MYSQL_DATABASE: hello_world_test
|
MYSQL_DATABASE: hello_world_test
|
||||||
MYSQL_ROOT_PASSWORD: mysql
|
MYSQL_ROOT_PASSWORD: mysql
|
||||||
|
|
||||||
|
|
||||||
services:
|
|
||||||
- mysql:5.7
|
|
||||||
|
|
||||||
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 update -yqq
|
||||||
- apt-get install -yqq git mysql-server mysql-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 libsqlite3-dev libaspell-dev libsnmp-dev libpcre3-dev libtidy-dev
|
- 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
|
# Install PHP extensions
|
||||||
- docker-php-ext-install mbstring mcrypt pdo_mysql pdo_pgsql curl json intl gd xml zip bz2 opcache
|
- 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
|
||||||
@ -25,12 +23,47 @@ before_script:
|
|||||||
- docker-php-ext-enable xdebug
|
- docker-php-ext-enable xdebug
|
||||||
# Install and run Composer
|
# Install and run Composer
|
||||||
- curl -sS https://getcomposer.org/installer | php
|
- curl -sS https://getcomposer.org/installer | php
|
||||||
- php composer.phar install
|
# Install dev libraries from composer
|
||||||
|
- 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, but we allow it to fail
|
|
||||||
|
# We test PHP7 with MySQL
|
||||||
test:php:mysql:
|
test:php:mysql:
|
||||||
|
services:
|
||||||
|
- mysql:5.7
|
||||||
script:
|
script:
|
||||||
- echo "USE $MYSQL_DATABASE; $(cat ./install/schema_mysql.sql)" | mysql --user=root --password="$MYSQL_ROOT_PASSWORD" --host=mysql "$MYSQL_DATABASE"
|
- 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 "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"
|
- 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:
|
||||||
|
services:
|
||||||
|
- postgres:latest
|
||||||
|
variables:
|
||||||
|
POSTGRES_DB: ci-db
|
||||||
|
POSTGRES_USER: ci-user
|
||||||
|
POSTGRES_PASSWORD: ci-pass
|
||||||
|
script:
|
||||||
|
- export PGPASSWORD=$POSTGRES_PASSWORD
|
||||||
|
- psql --version
|
||||||
|
- psql -h "postgres" -U "$POSTGRES_USER" -d "$POSTGRES_DB" -c "SELECT VERSION();"
|
||||||
|
# Import hubzilla's DB schema
|
||||||
|
- psql -h "postgres" -U "$POSTGRES_USER" -v ON_ERROR_STOP=1 --quiet "$POSTGRES_DB" < ./install/schema_postgres.sql
|
||||||
|
# Show databases and relations/tables of hubzilla's database
|
||||||
|
#- psql -h "postgres" -U "$POSTGRES_USER" -l
|
||||||
|
#- psql -h "postgres" -U "$POSTGRES_USER" -d "$POSTGRES_DB" -c "\dt;"
|
||||||
|
# Run the actual tests
|
||||||
|
- vendor/bin/phpunit --configuration tests/phpunit-pgsql.xml --testdox
|
||||||
|
artifacts:
|
||||||
|
expire_in: 1 week
|
||||||
|
# Gitlab should show the results, but has problems parsing PHPUnit's junit file.
|
||||||
|
reports:
|
||||||
|
junit: tests/results/junit.xml
|
||||||
|
# Archive test results (coverage, testdox, junit)
|
||||||
|
name: "$CI_COMMIT_REF_SLUG-$CI_JOB_NAME"
|
||||||
|
paths:
|
||||||
|
- tests/results/
|
||||||
|
@ -1,24 +1,26 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/6.0/phpunit.xsd"
|
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/7.5/phpunit.xsd"
|
||||||
bootstrap="../boot.php"
|
bootstrap="../boot.php"
|
||||||
forceCoversAnnotation="false"
|
forceCoversAnnotation="false"
|
||||||
beStrictAboutCoversAnnotation="true"
|
beStrictAboutCoversAnnotation="true"
|
||||||
beStrictAboutOutputDuringTests="true"
|
beStrictAboutOutputDuringTests="true"
|
||||||
beStrictAboutTodoAnnotatedTests="true"
|
beStrictAboutTodoAnnotatedTests="true"
|
||||||
verbose="true">
|
verbose="true">
|
||||||
|
<testsuites>
|
||||||
<testsuite name="Hubzilla default Test Suite">
|
<testsuite name="Hubzilla default Test Suite">
|
||||||
<directory suffix="Test.php">./unit/</directory>
|
<directory suffix="Test.php">./unit/</directory>
|
||||||
</testsuite>
|
</testsuite>
|
||||||
<testsuite name="API Test Suite">
|
<testsuite name="API Test Suite">
|
||||||
<directory suffix="Test.php" prefix="API">./unit/</directory>
|
<directory suffix="Test.php" prefix="API">./unit/</directory>
|
||||||
</testsuite>
|
</testsuite>
|
||||||
|
</testsuites>
|
||||||
<groups>
|
<groups>
|
||||||
<exclude>
|
<exclude>
|
||||||
<group>mysql</group>
|
<group>mysql</group>
|
||||||
</exclude>
|
</exclude>
|
||||||
</groups>
|
</groups>
|
||||||
<!--cover reporting-->
|
<!--coverage reporting-->
|
||||||
<filter>
|
<filter>
|
||||||
<whitelist processUncoveredFilesFromWhitelist="true">
|
<whitelist processUncoveredFilesFromWhitelist="true">
|
||||||
<directory suffix=".php">../Zotlabs/</directory>
|
<directory suffix=".php">../Zotlabs/</directory>
|
||||||
@ -26,21 +28,22 @@
|
|||||||
</whitelist>
|
</whitelist>
|
||||||
</filter>
|
</filter>
|
||||||
<logging>
|
<logging>
|
||||||
<log type="junit" target="./results/junit.xml" logIncompleteSkipped="false"/>
|
<log type="junit" target="./results/junit.xml"/>
|
||||||
<log type="coverage-clover" target="./results/coverage-clover.xml"/>
|
<!--<log type="coverage-clover" target="./results/coverage-clover.xml"/>-->
|
||||||
<log type="coverage-html" target="./results/coverage-report/" lowUpperBound="35"
|
<log type="coverage-html" target="./results/coverage-report/" lowUpperBound="35"
|
||||||
highLowerBound="70"/>
|
highLowerBound="70"/>
|
||||||
<log type="testdox-text" target="./results/testdox.txt"/>
|
<!--<log type="testdox-text" target="./results/testdox.txt"/>-->
|
||||||
|
<log type="testdox-html" target="./results/testdox.html"/>
|
||||||
</logging>
|
</logging>
|
||||||
<php>
|
<php>
|
||||||
<!-- Default test database config, only used if no environment variables
|
<!-- Default test database config, only used if no environment variables
|
||||||
with same names are set.
|
with same names are set.
|
||||||
!!! Never run against a real database, it will truncate all tables -->
|
!!! Never run against a real database, it will truncate all tables -->
|
||||||
<env name="hz_db_server" value="127.0.0.1"/>
|
<env name="hz_db_server" value="postgres"/>
|
||||||
<env name="hz_db_scheme" value="pgsql"/>
|
<env name="hz_db_scheme" value="pgsql"/>
|
||||||
<env name="hz_db_port" value="5432"/>
|
<env name="hz_db_port" value="5432"/>
|
||||||
<env name="hz_db_user" value="travis_hz"/>
|
<env name="hz_db_user" value="ci-user"/>
|
||||||
<env name="hz_db_pass" value="hubzilla"/>
|
<env name="hz_db_pass" value="ci-pass"/>
|
||||||
<env name="hz_db_database" value="travis_hubzilla"/>
|
<env name="hz_db_database" value="ci-db"/>
|
||||||
</php>
|
</php>
|
||||||
</phpunit>
|
</phpunit>
|
||||||
|
Reference in New Issue
Block a user