MyShaarli/doc/md/Continuous-integration-tools.md
nodiscc 53ed6d7d1e Generate HTML documentation using MkDocs (WIP)
MkDocs is a static site generator geared towards building project documentation.
Documentation source files are written in Markdown, and configured with a single YAML file.

 * http://www.mkdocs.org/
 * http://www.mkdocs.org/user-guide/configuration/

Ref. #312

* remove pandoc-generated HTML documentation
* move markdown doc to doc/md/,
* mkdocs.yml:
  * generate HTML doc in doc/html
  * add pages TOC/ordering
  * use index.md as index page
* Makefile: remove execute permissions from generated files
* Makefile: rewrite htmlpages GFM to markdown conversion using sed:
   awk expression aslo matched '][' which causes invalid output on complex links with images or code blocks
* Add mkdocs.yml to .gitattributes, exclude this file from release archives
* Makefile: rename: htmldoc -> doc_html target
* run make doc: pull latest markdown documentation from wiki
* run make htmlpages: update html documentation
2017-06-18 00:19:49 +02:00

1.2 KiB

Local development

A Makefile is available to perform project-related operations:

  • Documentation - generate a local HTML copy of the GitHub wiki
  • Static analysis - check that the code is compliant to PHP conventions
  • Unit tests - ensure there are no regressions introduced by new commits

Automatic builds

Travis CI is a Continuous Integration build server, that runs a build:

  • each time a commit is merged to the mainline (master branch)
  • each time a Pull Request is submitted or updated

A build is composed of several jobs: one for each supported PHP version (see Server requirements).

Each build job:

  • updates Composer
  • installs 3rd-party test dependencies with Composer
  • runs Unit tests

After all jobs have finished, Travis returns the results to GitHub:

  • a status icon represents the result for the master branch:
  • Pull Requests are updated with the Travis result
    • Green: all tests have passed
    • Red: some tests failed
    • Orange: tests are pending