From eaf24d71f28bab363a906cab987e92c71a35e43c Mon Sep 17 00:00:00 2001 From: "Eloy Lafuente (stronk7)" Date: Fri, 20 Nov 2020 16:20:18 +0100 Subject: [PATCH 1/2] MDL-70265 travis: Only run highest phpunit if configured via env By default only lowest php version will be executed, and only pgsql. This default behavior can be changed with a new variable: MOODLE_PHP = [all] MOODLE_DATABASE = [pgsql | mysqli | all] --- .travis.yml | 71 +++++++++++++++++++++++++++++++++-------------------- 1 file changed, 44 insertions(+), 27 deletions(-) diff --git a/.travis.yml b/.travis.yml index cef6b2d9e37..129a138cc86 100644 --- a/.travis.yml +++ b/.travis.yml @@ -16,31 +16,9 @@ services: - mysql - docker -php: - # We only run the highest and lowest supported versions to reduce the load on travis-ci.org. - - 7.4 - - 7.2 - addons: postgresql: "9.6" -env: - # Although we want to run these jobs and see failures as quickly as possible, we also want to get the slowest job to - # start first so that the total run time is not too high. - # - # We only run MySQL on PHP 7.2, so run that first. - # CI Tests should be second-highest in priority as these only take <= 60 seconds to run under normal circumstances. - # Postgres is significantly is pretty reasonable in its run-time. - - # Run CI Tests without running PHPUnit. - - DB=none TASK=CITEST - - # Run unit tests on Postgres - - DB=pgsql TASK=PHPUNIT - - # Perform an upgrade test too. - - DB=pgsql TASK=UPGRADE - jobs: # Enable fast finish. # This will fail the build if a single job fails (except those in allow_failures). @@ -48,12 +26,51 @@ jobs: fast_finish: true include: - # Run mysql only on highest - it's just too slow - - php: 7.4 + # First all the lowest php ones (7.2) + - php: 7.2 + env: DB=none TASK=CITEST + - php: 7.2 + env: DB=none TASK=GRUNT NVM_VERSION='lts/carbon' + + - if: env(MOODLE_DATABASE) = "pgsql" OR env(MOODLE_DATABASE) = "all" OR env(MOODLE_DATABASE) IS NOT present + php: 7.2 + env: DB=pgsql TASK=PHPUNIT + + - if: env(MOODLE_DATABASE) = "pgsql" OR env(MOODLE_DATABASE) = "all" OR env(MOODLE_DATABASE) IS NOT present + php: 7.2 + env: DB=pgsql TASK=UPGRADE + + - if: env(MOODLE_DATABASE) = "mysqli" OR env(MOODLE_DATABASE) = "all" + php: 7.2 env: DB=mysqli TASK=PHPUNIT - # Run grunt/npm install on highest version too ('node' is an alias for the latest node.js version.) - - php: 7.4 - env: DB=none TASK=GRUNT NVM_VERSION='lts/carbon' + + - if: env(MOODLE_DATABASE) = "mysqli" OR env(MOODLE_DATABASE) = "all" + php: 7.2 + env: DB=mysqli TASK=UPGRADE + + # Then, conditionally, all the highest php ones (7.4) + - if: env(MOODLE_PHP) = "all" + php: 7.4 + env: DB=none TASK=CITEST + - if: env(MOODLE_PHP) = "all" + php: 7.4 + env: DB=none TASK=GRUNT NVM_VERSION='lts/carbon' + + - if: env(MOODLE_PHP) = "all" AND (env(MOODLE_DATABASE) = "pgsql" OR env(MOODLE_DATABASE) = "all" OR env(MOODLE_DATABASE) IS NOT present) + php: 7.4 + env: DB=pgsql TASK=PHPUNIT + + - if: env(MOODLE_PHP) = "all" AND (env(MOODLE_DATABASE) = "pgsql" OR env(MOODLE_DATABASE) = "all" OR env(MOODLE_DATABASE) IS NOT present) + php: 7.4 + env: DB=pgsql TASK=UPGRADE + + - if: env(MOODLE_PHP) = "all" AND (env(MOODLE_DATABASE) = "mysqli" OR env(MOODLE_DATABASE) = "all") + php: 7.4 + env: DB=mysqli TASK=PHPUNIT + + - if: env(MOODLE_PHP) = "all" AND (env(MOODLE_DATABASE) = "mysqli" OR env(MOODLE_DATABASE) = "all") + php: 7.4 + env: DB=mysqli TASK=UPGRADE cache: directories: From 81410615ede299e5adce31d7ac7f9c30ca92a4e2 Mon Sep 17 00:00:00 2001 From: "Eloy Lafuente (stronk7)" Date: Mon, 23 Nov 2020 13:40:52 +0100 Subject: [PATCH 2/2] MDL-70265 travis: Completely remove the UPGRADE check It was broken since ages ago, see MDL-64874, so no sense to keep it eating minutes for nothing. --- .travis.yml | 61 +---------------------------------------------------- 1 file changed, 1 insertion(+), 60 deletions(-) diff --git a/.travis.yml b/.travis.yml index 129a138cc86..3d54c0e2d84 100644 --- a/.travis.yml +++ b/.travis.yml @@ -36,18 +36,10 @@ jobs: php: 7.2 env: DB=pgsql TASK=PHPUNIT - - if: env(MOODLE_DATABASE) = "pgsql" OR env(MOODLE_DATABASE) = "all" OR env(MOODLE_DATABASE) IS NOT present - php: 7.2 - env: DB=pgsql TASK=UPGRADE - - if: env(MOODLE_DATABASE) = "mysqli" OR env(MOODLE_DATABASE) = "all" php: 7.2 env: DB=mysqli TASK=PHPUNIT - - if: env(MOODLE_DATABASE) = "mysqli" OR env(MOODLE_DATABASE) = "all" - php: 7.2 - env: DB=mysqli TASK=UPGRADE - # Then, conditionally, all the highest php ones (7.4) - if: env(MOODLE_PHP) = "all" php: 7.4 @@ -60,18 +52,10 @@ jobs: php: 7.4 env: DB=pgsql TASK=PHPUNIT - - if: env(MOODLE_PHP) = "all" AND (env(MOODLE_DATABASE) = "pgsql" OR env(MOODLE_DATABASE) = "all" OR env(MOODLE_DATABASE) IS NOT present) - php: 7.4 - env: DB=pgsql TASK=UPGRADE - - if: env(MOODLE_PHP) = "all" AND (env(MOODLE_DATABASE) = "mysqli" OR env(MOODLE_DATABASE) = "all") php: 7.4 env: DB=mysqli TASK=PHPUNIT - - if: env(MOODLE_PHP) = "all" AND (env(MOODLE_DATABASE) = "mysqli" OR env(MOODLE_DATABASE) = "all") - php: 7.4 - env: DB=mysqli TASK=UPGRADE - cache: directories: - $HOME/.composer/cache @@ -130,7 +114,7 @@ install: before_script: - phpenv config-rm xdebug.ini - > - if [ "$TASK" = 'PHPUNIT' -o "$TASK" = 'UPGRADE' ]; + if [ "$TASK" = 'PHPUNIT' ]; then # Copy generic configuration in place. cp config-dist.php config.php ; @@ -241,32 +225,6 @@ before_script: export phpcmd=`which php`; fi - ######################################################################## - # Upgrade test - ######################################################################## - - > - if [ "$TASK" = 'UPGRADE' ]; - then - # We need the official upstream. - git remote add upstream https://github.com/moodle/moodle.git; - - # Checkout 30 STABLE branch (the first version compatible with PHP 7.x) - git fetch upstream MOODLE_30_STABLE; - git checkout MOODLE_30_STABLE; - - # Perform the upgrade - php admin/cli/install_database.php --agree-license --adminpass=Password --adminemail=admin@example.com --fullname="Upgrade test" --shortname=Upgrade; - - # Return to the previous commit - git checkout -; - - # Perform the upgrade - php admin/cli/upgrade.php --non-interactive --allow-unstable ; - - # The local_ci repository can be used to check upgrade savepoints. - git clone https://github.com/moodlehq/moodle-local_ci.git local/ci ; - fi - script: - > if [ "$TASK" = 'PHPUNIT' ]; @@ -292,23 +250,6 @@ script: git diff --cached --exit-code ; fi - ######################################################################## - # Upgrade test - ######################################################################## - - > - if [ "$TASK" = 'UPGRADE' ]; - then - cp local/ci/check_upgrade_savepoints/check_upgrade_savepoints.php ./check_upgrade_savepoints.php - result=`php check_upgrade_savepoints.php`; - # Check if there are problems - count=`echo "$result" | grep -P "ERROR|WARN" | wc -l` ; - if (($count > 0)); - then - echo "$result" - exit 1 ; - fi - fi - after_script: - > if [ "$TASK" = 'PHPUNIT' ];