README.adoc 2.2 KB
Newer Older
Prada Sarasola, Miguel's avatar
Prada Sarasola, Miguel committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
= GitLab Templates

This repository contains miscellaneous resources that need to be accessible without authentication.

== GitLab CI templates

Two templates with default CI pipeline configurations are provided, for any repo to make use of:

- `.gitlab-industrial-ci-kinetic-no-rosinstall.yml`
- `.gitlab-industrial-ci-kinetic-with-rosinstall.yml`

Both define basically the same pipeline, consisting of the following stages and jobs:

- Stage: `precheck`
  * Check python syntax
- Stage: `build`
  * Run `industrial_ci`
    ** Uses `flexbotics-base-devel` as a starting image
    ** Runs link:scripts/[] in the `BEFORE_SCRIPT` stage, which in turn finds and runs every `ci_entry_script.bash` script found in the source tree (target repo + repos from `.rosinstall`)
  * Only when tags are pushed:
    ** Run some cleanup in the `industrial_ci` context (e.g. delete sources)
    ** Commit image used by `industrial_ci`
    ** Build deployment image on top of it and push it to our registry
- Stage: `postcheck` (jobs in this stage are allowed to fail)
  * Check `bash`/`sh` script syntax
  * Check Markdown syntax
  * Check files have no trailing whitespace and are UTF-8 encoded

Jon Azpiazu's avatar
Jon Azpiazu committed
29 30
It is important to note that both images set the variable `GIT_LFS_SKIP_SMUDGE`, which means that when the repositories are cloned/fetched, the files hosted using Git LFS will not be downloaded. An example on how to explicitely fetch the files from LFS can be found in the[common_config repository].

Prada Sarasola, Miguel's avatar
Prada Sarasola, Miguel committed
31 32 33 34 35 36 37 38 39 40 41
== Custom `rosdep` definitions

Custom `rosdep` definitions for the packages hosted in our internal debian repository are declared in link:rosdistro/rosdep_tecnalia.yaml[].

== Deployment image build resources

Resources required for building the deployment docker images are also hosted in this repository.
This basically boils down to:

- link:scripts/pre-deploy-cleanup.bash[] is run in the `industrial_ci` container before commiting to an image
- link:deploy/Dockerfile[] is used to perform some additional cleanup and install link:deploy/ros_entrypoint.bash[] as entrypoint script on top of the `industrial_ci` image