PHPackages                             moodlehq/moodle-plugin-ci - 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. [Testing &amp; Quality](/categories/testing)
4. /
5. moodlehq/moodle-plugin-ci

ActiveProject[Testing &amp; Quality](/categories/testing)

moodlehq/moodle-plugin-ci
=========================

Helps running Moodle plugins analysis checks and tests under various CI environments.

4.5.10(3mo ago)612.6M↑12.4%53[60 issues](https://github.com/moodlehq/moodle-plugin-ci/issues)[9 PRs](https://github.com/moodlehq/moodle-plugin-ci/pulls)GPL-3.0-or-laterPHPPHP &gt;=7.4CI passing

Since Sep 19Pushed 3mo ago26 watchersCompare

[ Source](https://github.com/moodlehq/moodle-plugin-ci)[ Packagist](https://packagist.org/packages/moodlehq/moodle-plugin-ci)[ RSS](/packages/moodlehq-moodle-plugin-ci/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (10)Dependencies (23)Versions (94)Used By (0)

[![Latest Stable Version](https://camo.githubusercontent.com/822bc7d3ef14556ed4aec0bc694dc8eba8ec8970ae95870359d42c19ed983d4b/68747470733a2f2f706f7365722e707567782e6f72672f6d6f6f646c6568712f6d6f6f646c652d706c7567696e2d63692f76)](//packagist.org/packages/moodlehq/moodle-plugin-ci)[![Moodle Plugin CI](https://github.com/moodlehq/moodle-plugin-ci/actions/workflows/test.yml/badge.svg)](https://github.com/moodlehq/moodle-plugin-ci/actions/workflows/test.yml)[![Build Status](https://camo.githubusercontent.com/5368913b2da0783b0b5fa5e749da5ed156a9c88bf13c8c3936ba6316296bf1af/68747470733a2f2f6170702e7472617669732d63692e636f6d2f6d6f6f646c6568712f6d6f6f646c652d706c7567696e2d63692e7376673f6272616e63683d6d61696e)](https://app.travis-ci.com/github/moodlehq/moodle-plugin-ci)[![codecov](https://camo.githubusercontent.com/78e1136856673e21d74c71cde86e36b5485c55279c1fb9b8e2ece79d451460b5/68747470733a2f2f636f6465636f762e696f2f67682f6d6f6f646c6568712f6d6f6f646c652d706c7567696e2d63692f67726170682f62616467652e7376673f746f6b656e3d493350504a3338334737)](https://codecov.io/gh/moodlehq/moodle-plugin-ci)[![Total Downloads](https://camo.githubusercontent.com/33684c36891485d4b24c6b734ae8d3584d2aa8599b3e7a2c8691722df9efe9c4/68747470733a2f2f706f7365722e707567782e6f72672f6d6f6f646c6568712f6d6f6f646c652d706c7567696e2d63692f646f776e6c6f616473)](//packagist.org/packages/moodlehq/moodle-plugin-ci)[![License](https://camo.githubusercontent.com/bda82857c7d53fd85d93ec75f151489ddba6ded3247c2d974f7b4ac1bff1c7e8/68747470733a2f2f706f7365722e707567782e6f72672f6d6f6f646c6568712f6d6f6f646c652d706c7567696e2d63692f6c6963656e7365)](//packagist.org/packages/moodlehq/moodle-plugin-ci)

The goal of this project is to facilitate the running of tests and code analysis against a Moodle plugin using CI environments, such as [GitHub Actions](https://docs.github.com/en/actions) or [Travis CI](https://travis-ci.com). All of these tests and tools are run everytime a change is pushed to a GitHub branch or pull request.

Warning

Travis CI support has been deprecated in 4.5.8 and will be removed in 5.0.0.

- [Getting started](https://moodlehq.github.io/moodle-plugin-ci/)
- [Help topics](https://moodlehq.github.io/moodle-plugin-ci/Help.html)
- [Changelog](https://moodlehq.github.io/moodle-plugin-ci/CHANGELOG.html)
- [Upgrade 4.0](https://moodlehq.github.io/moodle-plugin-ci/UPGRADE-4.0.html)

History, acknowledgement and appreciation
=========================================

[](#history-acknowledgement-and-appreciation)

This repository is a fork of [moodle-plugin-ci](https://github.com/blackboard-open-source/moodle-plugin-ci), originally created and maintained by **MoodleRooms** / **Blackboard**. All the licenses, copyrights and authorship of the original code and commits have been kept unmodified, how not!

After some unsuccessful attempts along 2019-2020 to keep the product alive and maintained, proposing updates and fixes via standard pull requests, asking for some alternative collaboration schemas, and specially with the urgency of some changes to be implemented in order to keep the tool working with modern **Moodle** versions, it was decided, by **Moodle HQ**, to create this fork and take on its maintenance officially.

Many, many thanks to all the collaborators, very specially to **Mark Nielsen** for all the hard work making this product such a great tool for the entire **Moodle development community**, we'll try to keep the bar high!

And, of course, everybody is welcome to participate and help here, it's **Open Source**, you know! /

###  Health Score

61

—

FairBetter than 99% of packages

Maintenance61

Regular maintenance activity

Popularity58

Moderate usage in the ecosystem

Community33

Small or concentrated contributor base

Maturity79

Established project with proven stability

 Bus Factor2

2 contributors hold 50%+ of commits

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.

###  Release Activity

Cadence

Every ~43 days

Recently: every ~93 days

Total

89

Last Release

98d ago

Major Versions

1.5.8 → 2.0.02017-06-02

2.5.0 → 3.0.02020-07-23

3.4.12 → 4.0.02023-05-03

3.4.13 → 4.1.22023-09-02

3.x-dev → 4.5.52024-11-06

PHP version history (5 changes)1.0.0PHP &gt;=5.4.0

2.0.0PHP &gt;=5.6.0

3.0.0PHP &gt;=7.0.0

3.0.3PHP &gt;=7.0.8

4.0.0PHP &gt;=7.4

### Community

Maintainers

![](https://www.gravatar.com/avatar/af50aff7bc9a1b0863806f0a384ce233451b87a1425b4b4de51aea64810ace59?d=identicon)[andrewnicols](/maintainers/andrewnicols)

![](https://www.gravatar.com/avatar/8aa132a6b5f982e20f7d7b00cd7255671b228e77ccbf29a24b66eb42353b9d96?d=identicon)[stronk7](/maintainers/stronk7)

![](https://www.gravatar.com/avatar/e91bfdbf070920018f51ed479c2ba1b3e3f54d975f43abab9c52922f1b7619df?d=identicon)[kabalin](/maintainers/kabalin)

---

Top Contributors

[![polothy](https://avatars.githubusercontent.com/u/634657?v=4)](https://github.com/polothy "polothy (305 commits)")[![stronk7](https://avatars.githubusercontent.com/u/167147?v=4)](https://github.com/stronk7 "stronk7 (305 commits)")[![kabalin](https://avatars.githubusercontent.com/u/329780?v=4)](https://github.com/kabalin "kabalin (149 commits)")[![marinaglancy](https://avatars.githubusercontent.com/u/836986?v=4)](https://github.com/marinaglancy "marinaglancy (12 commits)")[![paulholden](https://avatars.githubusercontent.com/u/1126541?v=4)](https://github.com/paulholden "paulholden (8 commits)")[![andrewnicols](https://avatars.githubusercontent.com/u/370047?v=4)](https://github.com/andrewnicols "andrewnicols (7 commits)")[![NoelDeMartin](https://avatars.githubusercontent.com/u/1517677?v=4)](https://github.com/NoelDeMartin "NoelDeMartin (6 commits)")[![jrchamp](https://avatars.githubusercontent.com/u/625298?v=4)](https://github.com/jrchamp "jrchamp (6 commits)")[![geichelberger](https://avatars.githubusercontent.com/u/35195803?v=4)](https://github.com/geichelberger "geichelberger (4 commits)")[![kiklop74](https://avatars.githubusercontent.com/u/216822?v=4)](https://github.com/kiklop74 "kiklop74 (3 commits)")[![Dagefoerde](https://avatars.githubusercontent.com/u/432117?v=4)](https://github.com/Dagefoerde "Dagefoerde (3 commits)")[![junpataleta](https://avatars.githubusercontent.com/u/13312075?v=4)](https://github.com/junpataleta "junpataleta (3 commits)")[![samchaffee](https://avatars.githubusercontent.com/u/634660?v=4)](https://github.com/samchaffee "samchaffee (3 commits)")[![vmdef](https://avatars.githubusercontent.com/u/38071202?v=4)](https://github.com/vmdef "vmdef (2 commits)")[![aspark21](https://avatars.githubusercontent.com/u/4015496?v=4)](https://github.com/aspark21 "aspark21 (2 commits)")[![dpalou](https://avatars.githubusercontent.com/u/7590321?v=4)](https://github.com/dpalou "dpalou (2 commits)")[![ewallah](https://avatars.githubusercontent.com/u/1324161?v=4)](https://github.com/ewallah "ewallah (2 commits)")[![mudrd8mz](https://avatars.githubusercontent.com/u/85831?v=4)](https://github.com/mudrd8mz "mudrd8mz (2 commits)")[![PhMemmel](https://avatars.githubusercontent.com/u/65113153?v=4)](https://github.com/PhMemmel "PhMemmel (2 commits)")[![rdebleu](https://avatars.githubusercontent.com/u/1669833?v=4)](https://github.com/rdebleu "rdebleu (2 commits)")

---

Tags

continuous-integrationmoodle-pluginstest-automationtestingmoodlegithubtravisciactions

###  Code Quality

TestsPHPUnit

Static AnalysisPsalm

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/moodlehq-moodle-plugin-ci/health.svg)

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

###  Alternatives

[blackboard-open-source/moodle-plugin-ci

Assists with running Moodle plugins in Travis CI

42141.8k](/packages/blackboard-open-source-moodle-plugin-ci)[acquia/orca

A tool for testing a company's software packages together in the context of a realistic, functioning, best practices Drupal build

32902.4k](/packages/acquia-orca)[infection/infection

Infection is a Mutation Testing framework for PHP. The mutation adequacy score can be used to measure the effectiveness of a test set in terms of its ability to detect faults.

2.2k26.2M1.8k](/packages/infection-infection)[phpbench/phpbench

PHP Benchmarking Framework

2.0k13.0M627](/packages/phpbench-phpbench)[shopware/platform

The Shopware e-commerce core

3.3k1.5M3](/packages/shopware-platform)[magento/magento2-functional-testing-framework

Magento2 Functional Testing Framework

15511.5M30](/packages/magento-magento2-functional-testing-framework)

PHPackages © 2026

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