The release of GitLab 14.2 brings an exciting new feature to the management of CI/CD pipelines. Stages can now be completely omitted. Instead, the dependencies between pipeline jobs can be specified using the needs keyword. In this article, I will go into these changes and show you an example pipeline definition file making use of stageless pipelines. Traditionally, CI/CD pipelines in GitLab would consist of multiple stages and each stage would contain multiple jobs: The reasoning behind this structure was ...

GitLab version 13.8 was released on Jan 22, 2021 and ships with a new Pipeline Editor feature. Let’s look into it. Pipelines in CI/CD systems are traditionally created in text form. Whether Jenkins, CircleCI or GitLab – you usually start your pipeline in your favourite text editor. With CI/CD processes gaining more attention by all kinds of developers, this practice is now questioned since text-based formats are said to be less user-friendly than graphical UIs. GitLab’s vision is to have ...

Many applications are automatically tested on each commit inside a GitLab pipeline. If your application relies on a database such as PostgreSQL, it can be tempting to use an in-memory database such as H2 for tests because it is easier to set up and destroy for each execution of your test suite. While this works for simple applications, it is no longer possible once you rely on vendor-specific SQL features (e.g., usage of column types not available in H2). In ...

Directed Acyclic Graph (DAG) style dependencies between individual stages in a continuous deployment pipeline allow for a more flexible workflow and better utilize available computational resources. Imagine a simple pipeline consisting of three jobs: A syntax check A code complexity check Running all unit tests You may be tempted to group those in two stages: A) Build (consisting of jobs 1 and 2) and B) Test (consisting of the unit tests): Traditional Sequences In plain old GitLab pipelines, you would ...

A new web service for extracting email addresses from a text ...

Bernhard Knasmüller on Software Development