diff --git a/runner/master/run.sh b/runner/master/run.sh index 86994cb..c65ff97 100755 --- a/runner/master/run.sh +++ b/runner/master/run.sh @@ -69,6 +69,9 @@ fi export PHP_VERSION="${PHP_VERSION:-7.1}" export PHP_SERVER_DOCKER="${PHP_SERVER_DOCKER:-moodlehq/moodle-php-apache:${PHP_VERSION}}" +# Get the git commit. +export GIT_COMMIT="$( cd "${CODEDIR}" && git rev-parse HEAD )" + # Which Moodle version (XY) is being used. export MOODLE_VERSION=$(grep "\$branch" "${CODEDIR}"/version.php | sed "s/';.*//" | sed "s/^\$.*'//") # Which Mobile app version is used: latest (stable), next (master), x.y.z. @@ -100,6 +103,7 @@ export TESTSUITE="${TESTSUITE:-}" export RUNCOUNT="${RUNCOUNT:-1}" export BEHAT_TIMING_FILENAME="${BEHAT_TIMING_FILENAME:-}" export BEHAT_INCREASE_TIMEOUT="${BEHAT_INCREASE_TIMEOUT:-}" +export COVERAGE="${COVERAGE-}" # Remove some stuff that, simply, cannot be there based on $TESTTORUN if [ "${TESTTORUN}" == "phpunit" ] @@ -192,6 +196,7 @@ echo "DISABLE_MARIONETTE" >> "${ENVIROPATH}" echo "============================================================================" echo "= Job summary <<<" echo "============================================================================" +echo "== GIT_COMMIT: ${GIT_COMMIT}" echo "== Workspace: ${WORKSPACE}" echo "== Build Id: ${BUILD_ID}" echo "== Output directory: ${OUTPUTDIR}" @@ -211,6 +216,7 @@ echo "== BEHAT_NUM_RERUNS: ${BEHAT_NUM_RERUNS}" echo "== BEHAT_INCREASE_TIMEOUT: ${BEHAT_INCREASE_TIMEOUT}" echo "== BEHAT_SUITE: ${BEHAT_SUITE}" echo "== TAGS: ${TAGS}" +echo "== COVERAGE: ${COVERAGE}" echo "== NAME: ${NAME}" echo "== MOBILE_APP_PORT: ${MOBILE_APP_PORT}" echo "== MOBILE_VERSION: ${MOBILE_VERSION}" @@ -1011,7 +1017,19 @@ else PHPUNIT_SUITE="" fi - CMD="php vendor/bin/phpunit" + if [ $COVERAGE = "pcov" ] + then + COVERAGEDIR="/shared/coverage" + COVERAGEDIRHASH="/shared/coverage_public/${GIT_COMMIT}" + CMD="php -dpcov.enabled=1 -dpcov.initial.files=1024 -dmemory_limit=4096M vendor/bin/phpunit" + CMD="${CMD} --coverage-clover ${COVERAGEDIR}/clover.xml" + CMD="${CMD} --coverage-crap4j ${COVERAGEDIR}/crap4j.xml" + + docker exec -t "${WEBSERVER}" mkdir -p "${COVERAGEDIR}" "${COVERAGEDIRHASH}" + else + CMD="php vendor/bin/phpunit" + fi + CMD="${CMD} --disallow-test-output" if [ "$MOODLE_VERSION" -gt "31" ] then @@ -1028,6 +1046,7 @@ else EXITCODE=0 while [[ ${ITER} -lt ${RUNCOUNT} ]] do + echo "${CMD}" docker exec -t "${WEBSERVER}" ${CMD} EXITCODE=$(($EXITCODE + $?)) ITER=$(($ITER+1))