The goal of this project is to facilitate the running of tests and code analysis tools against a Moodle plugin in Travis CI.
Supported tests and code analysis tools:
- PHPUnit
- Behat
- Moodle Code Checker
- PHP Linting
- PHP Copy/Paste Detector
- PHP Mess Detector
- CSS Lint
- JSHint
- Shifter
- PHPCompatability
PHP 5.4 or later and Moodle 2.7 or later.
In addition, the plugin being tested must have a version.php file
and $plugin->component
must be defined within it.
Follow these steps to get your Moodle plugin building in Travis CI.
Sign into Travis CI with your GitHub account. Once you’re signed in, and Travis CI will have synchronized your repositories from GitHub. Go to your profile page and enable Travis CI for the plugin you want to build. Now whenever your plugin receives an update or gets a new pull request, Travis CI will run a build to make sure nothing broke.
Copy the .travis.dist.yml file into the root of your plugin and rename it to .travis.yml
. Now
might be a good time to review the .travis.yml
contents and remove anything that is not needed. See this
help document for an explanation about the contents of the this file. Once you have
added the .travis.yml
file, commit and push up to GitHub, to trigger a Travis CI build. Check the
build status page to see if your build passes or fails.
- Travis CI file explained
- Add extra Moodle configs
- Add extra plugins
- Ignoring files
- Testing a plugin against PHP7
- Generating code coverage
This project uses Semantic Versioning for its public API. The public API for this project is defined as the CLI interface of the moodle-plugin-ci script. Everything outside of this script is considered to be private API and is not guaranteed to follow Semantic Versioning.
The commands ran via the moodle-plugin-ci
script by default take no arguments. It is recommended, if at all possible,
to avoid using arguments to prevent problems with future versions. Rest assured though that if any arguments are
modified, it will be in the change log and the version will be bumped appropriately according to
Semantic Versioning.
This project is licensed under the GNU GPL v3 or later. See the LICENSE file for details.