Commit 4c9befe7 authored by GILLES Sebastien's avatar GILLES Sebastien
Browse files

#1495 Update README: remove the reference to Jenkins, and rewrite it to...

#1495 Update README: remove the reference to Jenkins, and rewrite it to describe briefly Gitlab-CI build.
parent d310b3c3
......@@ -253,33 +253,34 @@ MoReFEM follows the [integration manager](https://git-scm.com/book/it/v2/Distrib
# Continuous integration
MoReFEM is under [Jenkins Inria continuous integration](https://ci.inria.fr/morefem/); it is a public project, meaning you may access it provided you created an account (more similar than an 'Internal' profile in gitlab actually).
MoReFEM provides continuous integration through the use of Gitlab-CI.
On this project, several VMs are defined with different combinations of OS, compilers and settings; several different Jenkins items are defined that may use those VMs.
## Basic use: on each push
If an item begins with a user name in braces (e.g. {sgilles}), you do not need to bother at all (except if you're that user!): these items are sandbox in which a given user may check the state of his working branches against continuous integration.
Each time you push code to your repository, CI should be kicked off. By default two stages are enabled:
- One named 'build_and_test' that compiles the code and runs the test for a given environment (Ubuntu or Fedora, clang or gcc, debug or release...). It also runs Doxygen for three different configurations (basic, advanced and complete).
- One named 'check_warnings' which checks there are no warnings in the compilation/Doxygen from previous stage.
The other items are all related to the branch __develop__ of the main MoReFEM repository; this branch is the one onto which new mature modifications not yet pushed onto master are put.
## More thorough jobs
See <a href="Documentation/ContinuousIntegration/README.md">the dedicated README</a> in Documentation/ContinuousIntegration directory to learn more about it (user and administrator alike).
There are additional optional steps also available in CI:
It's highly likely that at some point in the future we switch to gitlab-ci: Jenkins is really cumbersome to maintain and the tools to interact with the outcome are not that great (they were the reason I tried Jenkins first). Furthermore, gitlab-ci would allow to follow in the repository the state of the configuration files (for Jenkins I rely on screenshots put in the Documentation folder...)
- One named 'valgrind', which runs Valgrind on the embedded models and on few tests.
- One named 'analysis', which runs several static analysis tools. Another stage 'sonarqube' aggregates the results and put them on a [Sonarqube](https://sonarqube.inria.fr/sonarqube)] instance.
# Static analysis / Sonarqube
There are two ways to kick in these stages:
There are more advanced CI builds, with:
- Valgrind memcheck tests upon many executables (Petsc wrappers and all models)
- A [Sonarqube](https://sonarqube.inria.fr/sonarqube) instance, which will displays results of analyze tools such as [RATS](https://security.web.cern.ch/security/recommendations/en/codetools/rats.shtml), [clang static analysis](https://clang-analyzer.llvm.org/) or [cppcheck](http://cppcheck.sourceforge.net/).
- Push onto 'develop' branch of the main project (reserved for the integrator - i.e. myself only for the time being).
- Push onto a branch which include 'valgrind' (for Valgrind) and 'sonarqube' (for the static analysis) in its name. Both may be combined: if you push to a branch named 10000_new_feature_sonarqube_valgrind all will be triggered.
To trigger these:
For the Sonarqube stage, you need to define the environment variable `SONARQUBE_LOGIN` in the gitlab fork of MoReFEM, and assign to it the token generated on your [Sonarqube account](https://sonarqube.inria.fr/sonarqube/account/security).
- Push to develop branch on the [main project](https://gitlab.inria.fr/MoReFEM/CoreLibrary/MoReFEM)
- Or push a branch with somewhere in its name _sonarqube_.
For the latter to work, you need to define the environment variable `SONARQUBE_LOGIN` in the gitlab fork of MoReFEM, and assign to it the token generated on your [Sonarqube account](https://sonarqube.inria.fr/sonarqube/account/security).
## Setting up CI for your fork
See <a href="Documentation/ContinuousIntegration/README.md">the dedicated README</a> to see how to set up the CI pipeline for your own fork.
# Documentation
n
## Doxygen
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment