2017-01-26 18:52:54 +01:00
## Local development
A [`Makefile` ](https://github.com/shaarli/Shaarli/blob/master/Makefile ) is available to perform project-related operations:
2017-08-05 11:56:24 +02:00
2017-01-26 18:52:54 +01:00
- Documentation - generate a local HTML copy of the GitHub wiki
2017-06-18 06:32:30 +02:00
- [Static analysis ](Static analysis ) - check that the code is compliant to PHP conventions
- [Unit tests ](Unit tests ) - ensure there are no regressions introduced by new commits
2017-01-26 18:52:54 +01:00
## Automatic builds
[Travis CI ](http://docs.travis-ci.com/ ) is a Continuous Integration build server, that runs a build:
2017-08-05 11:56:24 +02:00
2017-01-26 18:52:54 +01:00
- each time a commit is merged to the mainline (`master` branch)
- each time a Pull Request is submitted or updated
2017-06-18 06:32:30 +02:00
A build is composed of several jobs: one for each supported PHP version (see [Server requirements ](Server requirements )).
2017-01-26 18:52:54 +01:00
Each build job:
2017-08-05 11:56:24 +02:00
2017-01-26 18:52:54 +01:00
- updates Composer
- installs 3rd-party test dependencies with Composer
2017-06-18 06:32:30 +02:00
- runs [Unit tests ](Unit tests )
2017-01-26 18:52:54 +01:00
After all jobs have finished, Travis returns the results to GitHub:
2017-08-05 11:56:24 +02:00
2017-01-26 18:52:54 +01:00
- a status icon represents the result for the `master` branch: [![ ](https://api.travis-ci.org/shaarli/Shaarli.svg )](https://travis-ci.org/shaarli/Shaarli)
- Pull Requests are updated with the Travis result
- Green: all tests have passed
- Red: some tests failed
- Orange: tests are pending