]> git.immae.eu Git - github/shaarli/Shaarli.git/blob - doc/md/Continuous-integration-tools.md
Merge pull request #1374 from paulvandenburg/demo-plugin-typos
[github/shaarli/Shaarli.git] / doc / md / Continuous-integration-tools.md
1 ## Local development
2 A [`Makefile`](https://github.com/shaarli/Shaarli/blob/master/Makefile) is available to perform project-related operations:
3
4 - Documentation - generate a local HTML copy of the GitHub wiki
5 - [Static analysis](Static-analysis) - check that the code is compliant to PHP conventions
6 - [Unit tests](Unit-tests) - ensure there are no regressions introduced by new commits
7
8 ## Automatic builds
9 [Travis CI](http://docs.travis-ci.com/) is a Continuous Integration build server, that runs a build:
10
11 - each time a commit is merged to the mainline (`master` branch)
12 - each time a Pull Request is submitted or updated
13
14 A build is composed of several jobs: one for each supported PHP version (see [Server requirements](Server requirements)).
15
16 Each build job:
17
18 - updates Composer
19 - installs 3rd-party test dependencies with Composer
20 - runs [Unit tests](Unit-tests)
21 - runs ESLint check
22
23 After all jobs have finished, Travis returns the results to GitHub:
24
25 - a status icon represents the result for the `master` branch: [![](https://api.travis-ci.org/shaarli/Shaarli.svg)](https://travis-ci.org/shaarli/Shaarli)
26 - Pull Requests are updated with the Travis result
27 - Green: all tests have passed
28 - Red: some tests failed
29 - Orange: tests are pending
30
31 ## Documentation
32 [mkdocs](https://www.mkdocs.org/) is used to convert markdown documentation to HTML pages. The [public documentation](https://shaarli.readthedocs.io/en/master/) website is rendered and hosted by [readthedocs.org](https://readthedocs.org/). A copy of the documentation is also included in prebuilt [release archives](https://github.com/shaarli/Shaarli/releases) (`doc/html/` path in your Shaarli installation). To generate the HTML documentation locally, install a recent version of Python `setuptools` and run `make doc`.