Continuous integration

Continuous Integration (CI) tests are implemented via GithHub workflows.

Documentation build and deploy

        flowchart TD

subgraph GitHub IO
doc_dev["<code>/dev"]
doc_stable["<code>/stable"]
doc_x.x.x["<code>/x.x.x"]
end

subgraph GitHub
DocumentationBuilder["documentation.yml"]
artifacts@{ shape: docs, label: "doc build artifacts" }
end

DocumentationBuilder -- on main --> doc_stable
DocumentationBuilder -- on dev --> doc_dev
DocumentationBuilder -- on GitHub release ---> doc_x.x.x
DocumentationBuilder -- on PR --> artifacts


    

The development docs are built using GitHub Actions.

The workflow .github/workflows/documentation.yml builds the doc and deploy it on the dev (respectively main).

On pull-request a successful build of the doc by .github/workflows/documentation.yml has no trigger.

GitHub Actions Specification

codespell.yml

Workflow file: codespell.yml

Workflow to check common misspellings in text files.

To run this check locally from the repository folder:

$ codespell --toml pyproject.toml hopla examples

documentation.yml

Workflow file: documentation.yml

Workflow to build doc, upload it as artifact, and deploy it for the master, main and dev branches.

To run this check locally from the doc folder:

$ sphinxdoc -v 2 -p $MODULE_DIR -n $MODULE_NAME -o $MODULE_DIR/doc
$ cd $MODULE_DIR/doc
$ make html-strict

pycodestyle.yml

Workflow file: pycodestyle.yml

Workflow to check code format.

To run this check locally from the repository folder:

$ pycodestyle hopla --ignore="E121,E123,E126,E226,E24,E704,E402,E731,E722,E741,W503,W504,W605,E305"

pydoclint.yml

Workflow file: pydoclint.yml

Workflow to check whether a docstring’s sections (arguments, returns, raises, …) match the function signature or function implementation.

To run this check locally from the repository folder:

$ pydoclint hopla

release-documentation.yml

Workflow file: release-documentation.yml

Workflow to build doc, and deploy it using the version as a subdomain.

To run this check locally from the doc folder:

$ sphinxdoc -v 2 -p $MODULE_DIR -n $MODULE_NAME -o $MODULE_DIR/doc
$ cd $MODULE_DIR/doc
$ make html-strict

ruff.yml

Workflow file: ruff.yml

Workflow to check code format.

To run this check locally from the repository folder:

$ ruff check hopla

testing.yml

Workflow file: testing.yml

Workflow to perform testings and code coverage.

To run this check locally from the doc folder:

$ nosetests --with-coverage --cover-package=hopla --verbosity=2
  --with-doctest --doctest-options='+ELLIPSIS,+NORMALIZE_WHITESPACE'