GitLab

1. Plan

Issues

With the GitLab Issue Tracker you can develop ideas together how you can solve problems and plan work. The issues are always linked to a specific project, but they can also be displayed to all members of a group. They are mostly used to

  • discuss the implementation of new ideas
  • track the progress of the tasks
  • include suggestions and (support) questions
  • develop implementations

You can refer to issues and have this link displayed. Similar issues can also be marked. Alternatively, you can also use external issue trackers like Jira.

Issue page

Issue page

Issue list

Issue list

Kanban Boards

You can use Kanban boards to plan, organise and visualise workflows. With them you can quickly track issues and manage projects.

In addition to Kanban boards, you can also display lists at any time with

  • all open issues
  • all closed issues
  • all issues to one label
  • all issues assigned to a person
  • all issues of a milestone
Kanban board

Kanban board

Collaboration

GitLab not only offers you version control of the source code, but also improves the cooperation between the developers:

  • they can review, comment on and improve changes
  • they can share the source code with others, improve reuse and inner sourcing.
  • they can work in their own copy of the repository
  • Continuous integration (CI) and continuous delivery (CD) accelerate testing and deployment

Analysis

GitLab shows who worked on a project and how much

  • The branches and merges are also shown in the course of time, which also shows how effective the Git workflow is
  • For each branch of a repository, GitLab shows the proportion of programming and markup languages used
  • GitLab badges give you a quick overview of different areas of a project, from pipeline status to test coverage to contact options.

2. Code

Repositories

In each project you can create one or more Git repositories and manage your files there. In a repository you can also add the configuration file .gitlab-ci.yml for your CI/CD pipeline.

The web interface supports the display and editing of many markup languages, including Markdown, reStructuredText and Jupyter notebooks.

By transferring your changes to the GitLab server you can not only send a short description of the changes but also

  • refer to an issue
  • sign a commit
  • trigger a GitLab CI/CD pipeline
  • skip pipelines with [ci skip] in Git commit

Wiki

For each GitLab project, a separate wiki can be used as a documentation system with the following features:

  • Pages can be created in the web interface or locally with Git
  • Tables of contents can be created with the [[_TOC _]] tag
  • Display the list of all created wiki pages
  • View the change history of a wiki page
  • Customize the sidebar using the _sidebar file
Wiki page

Wiki page

Snippets

With GitLab Snippets you can create parts of code and text and share them with others. These are versioned and can also be edited locally with Git. You can also comment on them.

Snippet

Snippet

3. Build

Package registration

With GitLab Packages, companies can use GitLab as a private repository for a variety of popular package managers. Developers can create and publish packages that can be defined as a dependency on downstream projects. In particular, Docker containers for projects and groups can also be registered. With GitLab CI/CD Docker images can be used for test, build and deploy your project.

4. Test

Continuous Integration (CI) and Continuous Delivery (CD)

GitLab supports developers in merging the source code they have written into a shared repository in order to subsequently build and carry out integration tests. And the transfer to the staging or production environment can also be done automatically with GitLab.

CI/CD pipeline

CI/CD pipeline

GitLab supports the following features:

Multi-platform
You can run builds on Unix, Windows, MacOS and any other platform that supports the Go programming language.
Multilingualism
Build scripts work with Java, Python, C and many other languages.
Parallel builds
The CI/CD pipeline can be run quickly on several computers at the same time
Realtime logging
The build log is constantly updated
Versioned pipelines
The .gitlab-ci.yml file saved in the repository contains the tests to be performed and general production steps
Automatic scaling
GitLab CI/CD can automatically create Docker containers
Build artifacts
For example, Reports such as PDF, dotenv, etc. are created and made available on the GitLab server. For example, dependencies, licenses, performance and other metrics are also checked automatically.
Docker support
You can use self-defined Docker containers or create them
Protected variables
Specific secrets can be saved and used for each environment

Testing

A typical use case is that a test fails after a merge request. To carry out further investigations, you can now simply analyse the reports provided.

Test report

Test report

Web Performance Tests

GitLab uses Sitespeed.io to measure the performance of websites and output them in a performance.json file.

Browser performance test

Browser performance test

5. Release

Typically, a git tag is created before publication to insert a checkpoint in the version history. In most cases, however, users need compiled objects or other assets that can be output by the CI system. GitLab uses semantic versioningwith (Major).(Minor).(Patch) to automatically generate zip, tar.gz, tar.bz2 and tar files from the tagged source code and the additionally specified assets.

Alternatively, releases can also be created for a specific milestone or a specific date.

Finally, a list of all releases is displayed for each project.

6. Deploy

Continuous Delivery (CD)

Similar to continuous integration integration tests are automated, continuous delivery automates the roll out on staging and production environments.

Pages

To publish a website with GitLab Pages, you can use any static site generator (SSG), e.g. Gatsby, Jekyll, and Hugo to name a few. You can also publish any website that is directly written in simple HTML, CSS, and JavaScript.

Pages

Pages

Secrets Management

With Vault, confidential information such as environment variables, encryption keys and authentication tokens can be kept safe.

7. Operate

Metrics

GitLab offers powerful integration with Prometheus to monitor the most important measurement data of your apps directly in GitLab. Metrics for each environment are retrieved from Prometheus and then displayed in GitLab.

Prometheus dashboard

Prometheus dashboard

Incident Management

You can set up in GitLab that emails are sent in emergencies and related issues are created in GitLab. Specific templates for such issues can be created. GitLab can also automatically close the issues once the problem has been solved.

Status page

With the GitLab status page you can create and provide a static website to communicate efficiently with users during an incident. However, only status pages are currently supported in AWS S3. The status page shows you an overview of the last incidents. Clicking on an incident takes you to the details page with

  • status
  • title
  • description
  • chronologically ordered list of updates
Status page

Status page

Hosting and data protection

Cusy hosts your GitLab DevOps Pipeline according to the German data protection law and taking into account the EU General Data Protection Regulation (GDPR). This allows you to comply with high IT compliance in the interest of your customers and clients. For more information about how Cusy protects your data, see Security and Privacy.

Customers

Many large IT companies use GitLab such as Electronic Arts and Siemens, but also research institutions such as NASA and the University of Washington. GitLab is also used by data center operators like Equinix.

License

The Open Source GitLab CE is licensed unter the MIT License.

Get in touch

I would be pleased to answer your requests and create a suitable offer for the hosting of the GitLab DevOps pipeline.

Portrait Veit Schiele
Veit Schiele
E-mail: info@cusy.io

Request now