The blog about containerisation, virtual machines and useful shell snippets and findings

The Gitlab pecularities

For a very long time, I used to work with Jenkins most of my work time, but since my new job, I have to spend more time with Gitlab and started having a bunch of  WTFs. So here is my list:

  1. Caching. Distributed cache requires S3 implementation. Here is free one: https://min.io/
  2. Stages. Stages are not the same stages as Jenkins has, these are naturally separate jobs with the separate BUILD_IDs, so you’d better use CI_PIPELINE_ID.
  3. Declarative pipeline. The only YAML can be used with its pros and cons, but having Gitlab Actions is mainstream nowadays.
  4. Files. You can’t store ssh key as a file in GitLab, only like a variable. That means you need to create one using echo $variable in your script. With proper permissions.