language: php os: linux dist: xenial cache: directories: - $HOME/.composer/cache - $HOME/.npm addons: postgresql: "9.6" services: - mysql - docker php: - 7.2 - 7.3 - 7.4 env: jobs: - DB=pgsql MOODLE_BRANCH=MOODLE_37_STABLE - DB=pgsql MOODLE_BRANCH=MOODLE_38_STABLE - DB=pgsql MOODLE_BRANCH=MOODLE_39_STABLE - DB=pgsql MOODLE_BRANCH=master - DB=mysqli MOODLE_BRANCH=MOODLE_37_STABLE - DB=mysqli MOODLE_BRANCH=MOODLE_38_STABLE - DB=mysqli MOODLE_BRANCH=MOODLE_39_STABLE - DB=mysqli MOODLE_BRANCH=master before_install: - phpenv config-rm xdebug.ini - cd ../.. - composer selfupdate - composer create-project -n --no-dev --prefer-dist moodlehq/moodle-plugin-ci ci ^3 - export PATH="$(cd ci/bin; pwd):$(cd ci/vendor/bin; pwd):$PATH" - moodle-plugin-ci add-plugin Opencast-Moodle/moodle-block_opencast - moodle-plugin-ci add-plugin Opencast-Moodle/moodle-tool_opencast jobs: fast_finish: true include: # Prechecks against latest Moodle stable only. - stage: static php: 7.4 env: DB=mysqli MOODLE_BRANCH=MOODLE_39_STABLE install: - moodle-plugin-ci install --no-init script: - moodle-plugin-ci phplint - moodle-plugin-ci phpcpd - moodle-plugin-ci phpmd - moodle-plugin-ci phpdoc - moodle-plugin-ci codechecker - moodle-plugin-ci savepoints - moodle-plugin-ci mustache - moodle-plugin-ci grunt - moodle-plugin-ci validate # Smaller build matrix for development builds - stage: develop php: 7.4 env: DB=mysqli MOODLE_BRANCH=MOODLE_39_STABLE exclude: - php: 7.4 env: DB=pgsql MOODLE_BRANCH=MOODLE_37_STABLE - php: 7.4 env: DB=mysqli MOODLE_BRANCH=MOODLE_37_STABLE # Unit tests and behat tests against full matrix. install: - moodle-plugin-ci install script: - moodle-plugin-ci phpunit --coverage-clover - moodle-plugin-ci behat --profile chrome stages: - static - name: develop if: branch != master AND (type != pull_request OR head_branch != master) AND (tag IS blank) - name: test if: branch = master OR (type = pull_request AND head_branch = master) OR (tag IS present)