PHPackages                             remotelearner/moodle-plugin-travis - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [DevOps &amp; Deployment](/categories/devops)
4. /
5. remotelearner/moodle-plugin-travis

ActiveProject[DevOps &amp; Deployment](/categories/devops)

remotelearner/moodle-plugin-travis
==================================

Assists with running Moodle plugins in Travis CI. Based on Moodlerooms initial work

09PHP

Since Sep 30Pushed 9y ago3 watchersCompare

[ Source](https://github.com/remotelearner/moodle-plugin-travis)[ Packagist](https://packagist.org/packages/remotelearner/moodle-plugin-travis)[ RSS](/packages/remotelearner-moodle-plugin-travis/feed)WikiDiscussions master Synced 4w ago

READMEChangelogDependenciesVersions (1)Used By (0)

Introduction
============

[](#introduction)

The goal of this project is to facilitate the running of tests and code analysis tools against a Moodle plugin in [Travis CI](https://travis-ci.org).

Supported tests and code analysis tools:

- [PHPUnit](https://phpunit.de)
- [Behat](http://behat.org/)
- [Moodle Code Checker](https://github.com/moodlehq/moodle-local_codechecker)
- [PHP Linting](https://github.com/JakubOnderka/PHP-Parallel-Lint)
- [PHP Copy/Paste Detector](https://github.com/sebastianbergmann/phpcpd)
- [PHP Mess Detector](http://phpmd.org)
- [CSS Lint](https://github.com/CSSLint/csslint)
- [JSHint](http://www.jshint.com/)
- [Shifter](https://docs.moodle.org/dev/YUI/Shifter)
- [PHPCompatability](http://techblog.wimgodden.be/tag/codesniffer)

[![Latest Stable Version](https://camo.githubusercontent.com/602dcb2ff55ff3e0beb86d9603f9cc23bea2c4235405c8d904804a5d8f18d481/68747470733a2f2f706f7365722e707567782e6f72672f6d6f6f646c65726f6f6d732f6d6f6f646c652d706c7567696e2d63692f762f737461626c65)](https://packagist.org/packages/moodlerooms/moodle-plugin-ci)[![Build Status](https://camo.githubusercontent.com/5687e5eb24e35c58bd9f6bdee1529acc45f76424274cb8f80243a246f86c558e/68747470733a2f2f7472617669732d63692e6f72672f6d6f6f646c65726f6f6d732f6d6f6f646c652d706c7567696e2d63692e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/moodlerooms/moodle-plugin-ci)[![Scrutinizer Code Quality](https://camo.githubusercontent.com/20c31b35780e38660f3d808d34e603bbca7ddfa352854684cf375ec2c83369c7/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f6d6f6f646c65726f6f6d732f6d6f6f646c652d706c7567696e2d63692f6261646765732f7175616c6974792d73636f72652e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/moodlerooms/moodle-plugin-ci/?branch=master)[![Code Coverage](https://camo.githubusercontent.com/3029dcd45309c99d46faecbb54827674825ea19a23501c9ddf61fcef645d2d60/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f6d6f6f646c65726f6f6d732f6d6f6f646c652d706c7567696e2d63692f6261646765732f636f7665726167652e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/moodlerooms/moodle-plugin-ci/?branch=master)[![Total Downloads](https://camo.githubusercontent.com/166a9f50f698269b3122f82dd10b1f669cedad271996ad4859878f6ece4d4cb2/68747470733a2f2f706f7365722e707567782e6f72672f6d6f6f646c65726f6f6d732f6d6f6f646c652d706c7567696e2d63692f646f776e6c6f616473)](https://packagist.org/packages/moodlerooms/moodle-plugin-ci)[![License](https://camo.githubusercontent.com/f90306fbe5c027b0be6a23bbfa935d2bdf396e7ee1e4d3e7595edda43fcfa6e0/68747470733a2f2f706f7365722e707567782e6f72672f6d6f6f646c65726f6f6d732f6d6f6f646c652d706c7567696e2d63692f6c6963656e7365)](https://packagist.org/packages/moodlerooms/moodle-plugin-ci)

Requirements
============

[](#requirements)

**PHP 5.4** or later and **Moodle 2.7** or later.

In addition, the plugin being tested must have a [version.php](https://docs.moodle.org/dev/version.php) file and `$plugin->component` must be defined within it.

Getting started
===============

[](#getting-started)

Follow these steps to get your Moodle plugin building in Travis CI.

Step 1
------

[](#step-1)

Sign into [Travis CI](https://travis-ci.org) with your GitHub account. Once you’re signed in, and Travis CI will have synchronized your repositories from GitHub. Go to your [profile](https://travis-ci.org/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.

Step 2
------

[](#step-2)

Copy the [.travis.dist.yml](.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](doc/TravisFileExplained.md) 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](https://travis-ci.org/repositories) page to see if your build passes or fails.

Documentation
=============

[](#documentation)

- [Travis CI file explained](doc/TravisFileExplained.md)
- [Add extra Moodle configs](doc/AddExtraConfig.md)
- [Add extra plugins](doc/AddExtraPlugins.md)
- [Ignoring files](doc/IgnoringFiles.md)
- [Testing a plugin against PHP7](doc/PHP7.md)
- [Generating code coverage](doc/CodeCoverage.md)

Usage / Versioning
==================

[](#usage--versioning)

This project uses [Semantic Versioning](http://semver.org/) for its public API. The public API for this project is defined as the CLI interface of the [moodle-plugin-ci](bin/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](CHANGELOG.md) and the version will be bumped appropriately according to Semantic Versioning.

License
=======

[](#license)

This project is licensed under the GNU GPL v3 or later. See the [LICENSE](LICENSE) file for details.

###  Health Score

20

—

LowBetter than 13% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity4

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/16323254?v=4)[Derek Henderson](/maintainers/2shediac)[@2shediac](https://github.com/2shediac)

---

Top Contributors

[![2shediac](https://avatars.githubusercontent.com/u/16323254?v=4)](https://github.com/2shediac "2shediac (5 commits)")

### Embed Badge

![Health badge](/badges/remotelearner-moodle-plugin-travis/health.svg)

```
[![Health](https://phpackages.com/badges/remotelearner-moodle-plugin-travis/health.svg)](https://phpackages.com/packages/remotelearner-moodle-plugin-travis)
```

###  Alternatives

[in2code/in2publish_core

Content publishing extension to connect stage and production server

40143.4k](/packages/in2code-in2publish-core)[tiamo/phpas2

PHPAS2 is a php-based implementation of the EDIINT AS2 standard

4778.9k](/packages/tiamo-phpas2)[wapmorgan/php-rpm-packager

RPM packager for PHP applications.

106.6k](/packages/wapmorgan-php-rpm-packager)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
