GitLab CI template: YAML anchor vs. ‘extends’ keyword

Creating a CI pipeline can get tedious quite quickly. Fortunately, there are a couple of ways to avoid creating multiple similar jobs. In case of GitLab’s .gitlab-ci.yml files, we can use job templates. Based on templates, we can easily define the actual jobs. The two most common methods to use a GitLab CI template are YAML anchors and ‘extends’ keyword. These are very similar, but there is at least one not obvious difference.

LaTeX documents accessible in the repository with CI

LaTeX is a very popular and in my opinion an optimal tool for creating documents larger than a couple of pages. It is often used for technical documentation and kept in a version control system, such as git. Usually, only LaTeX source files are stored in a repository, unlike the final PDF files. But is there a way to make a generated PDF document always up to date and accessible in the repository, without versioning the actual file? It turns out that it’s possible with continuous integration (CI).

GitLab Runner on QNAP NAS

QNAP is a popular brand of NAS devices. But it can be made more useful in many ways than just a network drive. Programmers, engineers and such can enable GitLab service via Container Station. That’s quite OK, but what if we want to put our QNAP NAS to actual work and maybe even earn for itself? Apart from the GitLab app, we can also enable GitLab Runner service which will enable the CI/CD (Continuous integration & Continuous Delivery).