aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Eilertsen <haraldei@anduin.net>2023-12-28 17:50:51 +0100
committerHarald Eilertsen <haraldei@anduin.net>2023-12-28 17:50:51 +0100
commit3f09af98cf425d955af58817949b566aefbd4526 (patch)
tree6b6184e1c02ad6d4fd8366f09b9f2061d8544cb0
parentfb4adf6a29a3a536a4b5dfef989e3ae7c7304f4f (diff)
downloadvolse-hubzilla-3f09af98cf425d955af58817949b566aefbd4526.tar.gz
volse-hubzilla-3f09af98cf425d955af58817949b566aefbd4526.tar.bz2
volse-hubzilla-3f09af98cf425d955af58817949b566aefbd4526.zip
ci: Enable db testing in CI.
-rw-r--r--.gitlab-ci.yml30
-rw-r--r--tests/phpunit-ci-mysql.xml40
2 files changed, 53 insertions, 17 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 1354a5de7..2039071c3 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,8 +1,4 @@
# Select image from https://hub.docker.com/_/php/
-#image: php:7.3
-# Use a prepared Hubzilla image to optimise pipeline duration
-# image: registry.gitlab.com/dawnbreak/hubzilla/core:php7.3
-
image: php:8.1
stages:
@@ -57,13 +53,13 @@ before_script:
# hidden job definition with template for MySQL/MariaDB
-#.job_template_mysql: &job_definition_mysql
-# stage: test
-# 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
+.job_template_mysql: &job_definition_mysql
+ stage: test
+ 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-ci-mysql.xml --coverage-text
# hidden job definition with template for PostgreSQL
#.job_template_postgres: &job_definition_postgres
@@ -96,14 +92,14 @@ before_script:
# PHP8.1
-php8.1:
- <<: *job_definition_php
+# php8.1:
+# <<: *job_definition_php
# PHP8.0 with MySQL 5.7
-#php8.0_mysql5.7:
-# <<: *job_definition_mysql
-# services:
-# - mysql:5.7
+php8.1_mysql5.7:
+ <<: *job_definition_mysql
+ services:
+ - mysql:5.7
# PHP8.0 with MySQL 8 (latest)
diff --git a/tests/phpunit-ci-mysql.xml b/tests/phpunit-ci-mysql.xml
new file mode 100644
index 000000000..15f924117
--- /dev/null
+++ b/tests/phpunit-ci-mysql.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<phpunit
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ bootstrap="../boot.php"
+ colors="true"
+ xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd"
+ >
+
+ <php>
+ <includePath>..</includePath>
+ <env name="HZ_TEST_DB_HOST" value="mysql"/>
+ <env name="HZ_TEST_DB_TYPE" value="mysql"/>
+ <env name="HZ_TEST_DB_PORT" value=""/>
+ <env name="HZ_TEST_DB_USER" value="root"/>
+ <env name="HZ_TEST_DB_PASS" value="mysql"/>
+ <env name="HZ_TEST_DB_DATABAse" value="hello_world_test"/>
+ </php>
+ <testsuites>
+ <testsuite name="Hubzilla default Test Suite">
+ <directory suffix="Test.php">./unit/</directory>
+ </testsuite>
+ <testsuite name="API Test Suite">
+ <directory suffix="Test.php" prefix="API">./unit/</directory>
+ </testsuite>
+ </testsuites>
+ <coverage processUncoveredFiles="true">
+ <include>
+ <directory suffix=".php">../Zotlabs/</directory>
+ <directory suffix=".php">../include/</directory>
+ </include>
+ <report>
+ <html outputDirectory="./results/coverage-report/" lowUpperBound="35" highLowerBound="70"/>
+ </report>
+ </coverage>
+ <groups>
+ <exclude>
+ <group>postgresql</group>
+ </exclude>
+ </groups>
+</phpunit>