= 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/ci_run_entry_points.sh[] 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 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 https://git.code.tecnalia.com/tecnalia_robotics/common_config/blob/e93dbe6379d94e6a895a33c59bf17ccab26eacf9/.gitlab-ci.yml#L132[common_config repository]. == 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