JoliCi
JoliCi is a free and open source Continuous Integration Client written in PHP and powered by Docker. It has been written to be easy to use. Thanks to the use of Docker, all kind of projects can be tested with this CI (not just PHP) : you are completely free.
This project is still in beta, there may be bugs and missing features
Features
- Support
.travis.yml
file - Secured and isolated build on your local computer
- Multiple builds by project
- Override test command
Installation
You can install JoliCi by either downloading jolici.phar
or by installing it via composer. For example:
composer global require jolicode/jolici:*
This will install the jolici
executable to your $COMPOSER_HOME/vendor/bin
folder (typically $HOME/.composer/vendor/bin
). It is recommended to add this directory to your PATH
environment variable.
Usage
- Install JoliCi as documented above.
- Add some dockerfiles, skip this if you use a .travis.yml file
- Run it under your project
php jolici.phar run
First run can be quite long since it has to build everything from the beginning. Subsequent build should be faster thanks to docker caching.
If you want to run a different command for test instead of the one set by default (like script parameter in .travis.yml file) you just need to set the new command at the end :
php jolici.phar run "phpunit -c a-different-file.xml"
This will run phpunit -c a-different-file.xml
for your tests.
Run options
- --project-path : Path where your project is, default to current directory
- --docker-host : Set the API entrypoint for Docker
- -v|-vv|-vvv : Verbose, more verbose and very verbose, by default it only show the test command. By increasing verbosity you will also see the build output
- --no-cache : Do not use docker cache when building image
Strategies
JoliCi need to know how to create builds from your project a.k.a. BuildStrategy
.
For the moment, only TravisCiBuildStrategy and JoliCiBuildStrategy are supported, but more strategy (like reading a circle.yml file) will be supported in the future.
This strategies are determined by reading your project directory.
Requirements
- Docker (a recent version is better and encouraged)
- PHP 5.4 at least
Contributing
Here are a few rules to follow in order to ease code reviews, and discussions before maintainers accept and merge your work.
- You MUST follow the PSR-1 and PSR-2.
- You MUST run the test suite.
- You MUST write (or update) unit tests.
- You SHOULD write documentation.
Please, write commit messages that make sense, and rebase your branch before submitting your Pull Request.
One may ask you to squash your commits too. This is used to "clean" your Pull Request before merging it (we don't want commits such as fix tests
, fix 2
, fix 3
, etc.).
Also, when creating your Pull Request on GitHub, you MUST write a description which gives the context and/or explains why you are creating it.
Thank you!
Credits
- Some parts of this project are inspired by :
- This README is heavily inspired by a @willdurand blog post.
- @ubermuda for accepting many pull requests on docker-php library
License
View the LICENSE file attach to this project.