On a meta view, the pipeline is split into two different pipelines, which run on different occasions.
So to summarize it, we have two different pipelines (branch and merge request pipelines).
The branch pipeline is to check, if the code you are just writing is somewhat okay, as it runs the static code analysis and unit tests.
The merge request pipeline then checks if your code really works in a wider context, as it also runs the integration tests. At first only on you local changes, for easier debugging, if you remove all WIP or Draft tags, also in a simulated merge with the target branch.
The following jobs run in the branch pipeline:
The following jobs run in the merge request pipeline:
Gitlab-Runner:
To learn how to set-up the gitlab-runner(s) look into the iac repo: https://code.fbi.h-da.de/danet/gosdn-iac
You need runners with the following tags:
Tag | Type | special features |
---|---|---|
No Tag | docker | Needs good CPU-Performance |
shell | shell | Needs containerlab installed |
integration-test-docker | docker | Might only work when same server as 'shell' |
You can easily define multiple different runners without a tag. As of now, you can only use one containerlab and integration-test-docker runner, as the IPs are hard-coded.