Introduction¶
This section provides a short introduction to Gitlab CI.
Your first pipeline in Gitlab CI¶
- In this first video, we are going to create a very simple pipeline in Gitlab
- what is a pipeline anyway?
- the analogy to an assembly line needed to build a car
- notice a few characteristics:
- a series of steps that need to be done on a certain order
- the steps are connected
- the output from the previous step is the input for the next step
- some steps could be done in parallel (wheels)
- many more steps are required to build the final product
- not only the production part is important but also the final testing part before the car goes to the consumer
- the goal is to get the product out of the factory
- you will later see that building and delivering software is, in some regard, quite similar to the step needed to manufacture a car
- let’s try to build something similar with Gitlab CI and have two major stages:
- build & test
- Build a car assembly line using Gitlab CI
- Add chassis
- Add engine
- Add wheels
- later in the test phase, we will test it.
- to get started with Gitlab CI you do not need to download any software or anything similar
- create a free account at gitlab.com
- create a new project. This will we a normal Git repository with nothing inside
- new file .gitlab-ci.yaml
- as in the car assembly, in a software pipeline, we also have a series of steps or jobs what we need to perform
- always use spaces for indentation, not tabs.
- after committing, Gitlab will create the pipeline for us
- every time we make a change in the repository, the pipeline will start
- GitLab will execute your scripts with the tool called GitLab Runner, which runs similarly to your terminal
- Gitlab does not save anything unless told so
- we will use artifacts to save the car.txt file
- inspect final artifact
- where is the build folder in the repository?
- nothing is automatically committed to the repository
Gitlab architecture¶
- you need at least one Gitlab Server and one Runner
- the server will provide the interface, store the repositories
- the execution of the pipeline will be delegated to the Gitlab Runner
- so the Gitlab Server does not run the jobs
- this allows for a very scalable architecture
- see the Runners under the project Settings > CI/CD > Runners
- we are using Shared Runners provided by Gitlab.com
- you can create your own runners on your own IT infrastructure and still use gitlab.com
- you can assign runners for specific projects
Why Gitlab / Gitlab CI?¶
- Gitlab is a modern tool, and Gitlab will probably become one of the market leaders in the next years
- Gitlab offers:
- a modern, scalable architecture
- you can easily work with Docker
- pipeline as a code
- partially open source
- you need to try it on your own and see if it solves YOUR problems
YOUR NOTES¶
How much does Gitlab cost?¶
- there are two ways to run Gitlab
- gitlab.com
- self-hosted on your server infrastructure
- gitlab.com
- has a free package
- 2000 pipeline minutes
- easy to start and try it out
- self-hosted
- has a free option as well (Community Edition)
- you need to take care of running Gitlab (installation, updates, infrastructure, backups, …)
- have control over your data