The tasks of the CI system are configured in scripts inside the OGS source code. The entrypoint is defined in .gitlab-ci.yml. Scripting and versioning the configuration together with the source code is very powerful, e.g. if you introduce a new OGS CMake configuration in a merge request even the change of the CI jobs configuration or jobs environment (Docker container definition) can be part of the merge request.
A CI run consists of a pipeline which contains stages which in turn contain jobs. A job runs a set of instructions (e.g. checking out the source code, building the code, testing the code) on a runner.
Each pipeline run is visualized as follows:
Jobs are belong to a stage and each job will get a status (success, warnings, failure). Some jobs are optional (see the gear icon) and can be manually triggered by pressing the play button.
The master-branch of the the main repository as well as all merge requests on that repo are automatically tested. See the pipelines page.
If you want to skip a pipeline run for a push add the
-o ci.skip git push option. Example:
git push -o ci.skip
Or add add
[ci skip] to the commit message to skip the pipeline for this commit. Example:
git commit -m "Added feature X [ci skip]"