From c5d44692a480deeebb93e3241c61f82830acb23e Mon Sep 17 00:00:00 2001 From: William Desportes Date: Mon, 11 May 2020 23:22:04 +0200 Subject: [PATCH 1/4] Improve actual selenium CI Signed-off-by: William Desportes --- .travis.yml | 19 +++++++++---------- test/config.e2e.inc.php | 9 +++++++++ 2 files changed, 18 insertions(+), 10 deletions(-) create mode 100644 test/config.e2e.inc.php diff --git a/.travis.yml b/.travis.yml index 4ac694f4f1..19e33e13a5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,14 +13,6 @@ install: - composer install --no-interaction - yarn install --non-interactive -before_script: - - export TESTSUITE_PASSWORD=`openssl rand -base64 30` - - export TESTSUITE_BROWSERSTACK_KEY=`echo cHlDcHJTNmZwZjVlaUR2RmV6VkU= | base64 --decode` - - mysql -uroot -e "CREATE DATABASE IF NOT EXISTS test" - - mysql -uroot < sql/create_tables.sql - - mysql -uroot -e "SET PASSWORD = PASSWORD('$TESTSUITE_PASSWORD')" - - ./test/start-local-server - script: - ./scripts/generate-mo --quiet - ./vendor/bin/phpunit --configuration phpunit.xml.dist --exclude-group selenium @@ -29,7 +21,6 @@ after_script: - if [ -f php.log ] ; then cat php.log ; fi - if [ -f nginx-error.log ] ; then cat nginx-error.log ; fi - if [ -f config.inc.php ] ; then rm -rf config.inc.php; fi - - if [ "$CI_MODE" = "selenium" ] ; then ~/browserstack/BrowserStackLocal --daemon stop; fi after_success: - bash <(curl -s https://codecov.io/bash) @@ -213,13 +204,21 @@ jobs: - TESTSUITE_SELENIUM_BROWSER=chrome - TESTSUITE_USER=root - TESTSUITE_URL=http://127.0.0.1:8000 + before_script: + - export TESTSUITE_PASSWORD=`openssl rand -base64 30` + - mysql -uroot -e "CREATE DATABASE IF NOT EXISTS test" + - mysql -uroot < sql/create_tables.sql + - mysql -uroot -e "SET PASSWORD = PASSWORD('$TESTSUITE_PASSWORD')" + - ./test/start-local-server + after_script: + - ~/browserstack/BrowserStackLocal --daemon stop before_install: phpenv config-rm xdebug.ini install: - nvm install 10 - ./test/install-browserstack - composer install --no-interaction - yarn install --non-interactive - - echo -e " config.inc.php + - cp test/config.e2e.inc.php config.inc.php script: ./vendor/bin/phpunit --configuration phpunit.xml.nocoverage --group selenium --verbose --debug addons: apt: diff --git a/test/config.e2e.inc.php b/test/config.e2e.inc.php new file mode 100644 index 0000000000..3e4dec4190 --- /dev/null +++ b/test/config.e2e.inc.php @@ -0,0 +1,9 @@ + Date: Mon, 11 May 2020 23:26:59 +0200 Subject: [PATCH 2/4] Make start-local-server not depend on BrowserStack and improve logging of nginx server Signed-off-by: William Desportes --- test/nginx.conf | 2 ++ test/start-local-server | 8 +++++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/test/nginx.conf b/test/nginx.conf index f37fd24b1d..f7f7e68cdd 100644 --- a/test/nginx.conf +++ b/test/nginx.conf @@ -49,6 +49,8 @@ http { access_log off; server { + access_log %ROOT%/nginx-access.log; + error_log %ROOT%/nginx-error.log error; listen 8000 default_server; server_name _; diff --git a/test/start-local-server b/test/start-local-server index 08f9f4eb32..31482a885d 100755 --- a/test/start-local-server +++ b/test/start-local-server @@ -9,7 +9,7 @@ fi set -e set -x -if [ "$CI_MODE" != "selenium" -o -z "$TESTSUITE_BROWSERSTACK_KEY" ] ; then +if [ "$CI_MODE" != "selenium" ] ; then exit 0 fi @@ -27,5 +27,7 @@ mkdir $DIR/sessions $HOME/.phpenv/versions/$PHP_VERSION/sbin/php-fpm --fpm-config $DIR/php-fpm.conf -c $DIR/php.ini nginx -c $DIR/nginx.conf -# Start BrowserStack Local forwarder -~/browserstack/BrowserStackLocal --force-local --localIdentifier "travis-$TRAVIS_JOB_NUMBER" --onlyAutomate --key "$TESTSUITE_BROWSERSTACK_KEY" --daemon start +if [ ! -z "$TESTSUITE_BROWSERSTACK_KEY" ] ; then + # Start BrowserStack Local forwarder + ~/browserstack/BrowserStackLocal --force-local --localIdentifier "travis-$TRAVIS_JOB_NUMBER" --onlyAutomate --key "$TESTSUITE_BROWSERSTACK_KEY" --daemon start +fi From 75e0669c27862db258778e37a3f3850b42cb9d87 Mon Sep 17 00:00:00 2001 From: William Desportes Date: Wed, 13 May 2020 22:34:08 +0200 Subject: [PATCH 3/4] Switch documentation stage at the end to stop documentation link checks preventing "other tests" to be run Signed-off-by: William Desportes --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 19e33e13a5..8589a528e1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,8 +5,8 @@ language: php stages: - name: "Lint and analyse code" - name: "PHP Unit tests" - - name: "Documentation" - name: "Other tests" + - name: "Documentation" install: - nvm install 10 From 9dea93fcf0ce8d82ffdc67b77d6412a2d0ea14e2 Mon Sep 17 00:00:00 2001 From: William Desportes Date: Wed, 13 May 2020 23:15:08 +0200 Subject: [PATCH 4/4] Add back TESTSUITE_BROWSERSTACK_KEY Signed-off-by: William Desportes --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index 8589a528e1..4fb8e9a882 100644 --- a/.travis.yml +++ b/.travis.yml @@ -206,6 +206,7 @@ jobs: - TESTSUITE_URL=http://127.0.0.1:8000 before_script: - export TESTSUITE_PASSWORD=`openssl rand -base64 30` + - export TESTSUITE_BROWSERSTACK_KEY=`echo cHlDcHJTNmZwZjVlaUR2RmV6VkU= | base64 --decode` - mysql -uroot -e "CREATE DATABASE IF NOT EXISTS test" - mysql -uroot < sql/create_tables.sql - mysql -uroot -e "SET PASSWORD = PASSWORD('$TESTSUITE_PASSWORD')"