GitLab
======
-|Gromacs| is transitioning to GitLab for source code management, issue tracking,
-and integrated automation for testing and documentation.
-
The repository contains DockerFiles and GitLab Runner configuration
files to support automated testing and documentation builds.
General information on configuring GitLab CI pipelines can be found
:file:`admin/ci-templates/` directory.
Docker images used by GitLab Runner are available on `Docker Hub <https://hub.docker.com/u/gromacs>`__.
-Images are (re)built manually from DockerFiles in :file:`admin/dockerfiles`.
+Images are (re)built manually using details in :file:`admin/containers`.
This documentation is incomplete, pending resolution of :issue:`3275`.
.. todo:: Comment on the number of pipelines that can be or which are likely to be running at the same time.
+.. note::
+
+ Full automated testing is only available for merge requests originating from
+ branches of the main https://gitlab.com/gromacs/gromacs repository.
+ GitLab CI pipelines created for forked repositories will include fewer jobs
+ in the testing pipeline. Non-trivial merge requests may need to be issued
+ from a branch in the ``gromacs`` project namespace in order to receive
+ sufficient testing before acceptance.
+
Configuration files
~~~~~~~~~~~~~~~~~~~
To reduce errors and unexpected behavior, restrict usage of these controls
to regular job definitions (don't use in "hidden" or parent jobs).
+ tags
+ By `default <https://docs.gitlab.com/ee/ci/yaml/#setting-default-parameters>`__,
+ jobs require the ``k8s-scilifelab`` tag, which identifies Runners in the
+ |Gromacs| infrastructure. A small number of jobs in the first pipeline
+ stage override the default with an empty tag list so that all GitLab
+ users can run basic tests in their forked project.
+
variables
Many job definitions will add or override keys in *variables*.
Refer to `GitLab <https://docs.gitlab.com/ee/ci/yaml/#variables>`__
Other important variable keys are as follows.
.. glossary::
+ CI_PROJECT_NAMESPACE
+ Distinguishes pipelines created for repositories in the ``gromacs``
+ GitLab project space. May be used to pre-screen jobs to determine
+ whether |Gromacs| GitLab infrastructure is available to the pipeline
+ before the job is created.
+
COMPILER_MAJOR_VERSION
Integer version number provided by toolchain mix-in for convenience and
internal use.