diff --git a/.github/workflows/debug.yml b/.github/workflows/debug.yml index 0224bd077..ccea82a38 100644 --- a/.github/workflows/debug.yml +++ b/.github/workflows/debug.yml @@ -88,7 +88,7 @@ jobs: ########################################################################## - name: community server | Unit tests run: | - docker run -v ~/coverage:/var/www/cakephp/webroot/coverage gradido/community_server:test "./vendor/bin/phpunit --coverage-html ./webroot/coverage" + docker run -v ~/coverage:/var/www/cakephp/webroot/coverage gradido/community_server:test ./vendor/bin/phpunit --coverage-html ./webroot/coverage cp -r ~/coverage ./coverage ########################################################################## # COVERAGE CHECK BACKEND COMMUNITY-SERVER #################################### diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 1716e149b..cc0b1f37d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -305,7 +305,7 @@ jobs: ########################################################################## - name: community server | Unit tests run: | - docker run -v ~/coverage:/var/www/cakephp/webroot/coverage gradido/community_server:test "./vendor/bin/phpunit --coverage-html ./webroot/coverage" + docker run -v ~/coverage:/var/www/cakephp/webroot/coverage gradido/community_server:test ./vendor/bin/phpunit --coverage-html ./webroot/coverage cp -r ~/coverage ./coverage ########################################################################## # COVERAGE CHECK BACKEND COMMUNITY-SERVER #################################### diff --git a/community_server/Dockerfile b/community_server/Dockerfile index 8129d581d..edbd33c47 100644 --- a/community_server/Dockerfile +++ b/community_server/Dockerfile @@ -1,8 +1,8 @@ -FROM phpdockerio/php74-fpm +FROM phpdockerio/php74-fpm as community_server # install php fpm RUN apt-get update \ - && apt-get -y --no-install-recommends install curl unzip php7.4-curl php7.4-fpm php7.4-mbstring php7.4-intl php7.4-xml php7.4-pdo php7.4-mysql \ + && apt-get -y --no-install-recommends install curl unzip php7.4-curl php7.4-fpm php7.4-mbstring php7.4-intl php7.4-xml php7.4-pdo php7.4-mysql php7.4-xdebug \ && apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* WORKDIR /var/www/cakephp @@ -14,4 +14,14 @@ RUN composer update RUN composer dump-autoload +######### special for code coverage and testing +FROM community_server as test + +RUN apt-get update \ + && apt-get -y --no-install-recommends install php7.4-xdebug \ + && apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* + +WORKDIR /var/www/cakephp +ENV XDEBUG_MODE=coverage + diff --git a/configs/community_server/app.php b/configs/community_server/app.php index 2dafaf554..5bbdcdc4c 100644 --- a/configs/community_server/app.php +++ b/configs/community_server/app.php @@ -304,7 +304,7 @@ return [ 'className' => Connection::class, 'driver' => Mysql::class, 'persistent' => false, - 'host' => 'localhost', + 'host' => 'mariadb', //'port' => 'non_standard_port_number', 'username' => 'root', 'password' => '', diff --git a/docker-compose.override.yml b/docker-compose.override.yml index 1311fe894..e4bc82a14 100644 --- a/docker-compose.override.yml +++ b/docker-compose.override.yml @@ -47,6 +47,7 @@ services: community-server: build: context: . + target: community_server dockerfile: ./community_server/Dockerfile environment: - DB_PASSWORD='' diff --git a/docker-compose.yml b/docker-compose.yml index 59e617d71..7e9ee3bc1 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -89,6 +89,7 @@ services: community-server: build: context: . + target: community_server dockerfile: ./community_server/Dockerfile environment: - DB_PASSWORD='' diff --git a/login_server/src/cpp/test/main.cpp b/login_server/src/cpp/test/main.cpp index 7df377455..f1bbe196b 100644 --- a/login_server/src/cpp/test/main.cpp +++ b/login_server/src/cpp/test/main.cpp @@ -82,11 +82,17 @@ int load(int argc, char* argv[]) { auto conn = ConnectionManager::getInstance(); //conn->setConnection() //printf("try connect login server mysql db\n"); + bool connected = false; try { - conn->setConnectionsFromConfig(*test_config, CONNECTION_MYSQL_LOGIN_SERVER); + if(conn->setConnectionsFromConfig(*test_config, CONNECTION_MYSQL_LOGIN_SERVER)) { + connected = true; + } } catch (Poco::Exception& ex) { // maybe we in docker environment and db needs some time to start up + printf("Poco Exception by connecting to db: %s, let's try again\n", ex.displayText().data()); + } + if(!connected) { // let's wait 10 seconds int count = 10; while (count > 0) { @@ -94,15 +100,25 @@ int load(int argc, char* argv[]) { count--; Poco::Thread::sleep(1000); } - conn->setConnectionsFromConfig(*test_config, CONNECTION_MYSQL_LOGIN_SERVER); + try { + if(conn->setConnectionsFromConfig(*test_config, CONNECTION_MYSQL_LOGIN_SERVER)) { + connected = true; + } + } catch(Poco::Exception& ex) { + printf("Poco Exception by connecting to db: %s, let's wait another 10 seconds\n", ex.displayText().data()); + } } - std::clog << "Wait another 10 seconds for mysql/mariadb" << std::endl; - Poco::Thread::sleep(10000); - try { - conn->setConnectionsFromConfig(*test_config, CONNECTION_MYSQL_LOGIN_SERVER); - } catch(Poco::Exception& ex) { - printf("Poco Exception by connecting to db: %s\n", ex.displayText().data()); - } + if(!connected) { + Poco::Thread::sleep(10000); + try { + conn->setConnectionsFromConfig(*test_config, CONNECTION_MYSQL_LOGIN_SERVER); + } catch(Poco::Exception& ex) { + printf("Poco Exception by connecting to db: %s, exit\n", ex.displayText().data()); + return -4; + } + } + + //printf("try connect php server mysql \n"); //conn->setConnectionsFromConfig(*test_config, CONNECTION_MYSQL_PHP_SERVER); @@ -183,9 +199,13 @@ void ende() int main(int argc, char** argv) { - if (load(argc, argv) < 0) { - printf("early exit\n"); - return -42; + try { + if (load(argc, argv) < 0) { + printf("early exit\n"); + return -42; + } + } catch(std::exception& ex) { + printf("no catched exception while loading: %s\n", ex.what()); } run(); ende();