diff --git a/README.md b/README.md
index 10c53e2998d626775cfd09e8b30577c304b31e95..82bcb5bc38cd66792db9c63e8f548bb70df74cc4 100644
--- a/README.md
+++ b/README.md
@@ -1,108 +1,55 @@
+<!----------------------------------------------------------------------------->
 # gitlab-ci
+<!----------------------------------------------------------------------------->
 
-GitLab CI scripts
-
-This repository contains scripts for Yocto infrastructure tasks, e.g. automatic
-integration of project changes into the manifest. It is meant to be included into all
-relevant Yocto repositories as a [git submodule][1].
-
-
-## Deploy changes into all projects using 'gitlab-ci' as submodule
-
-The gitlab-ci repo is integrated into the other related projects as submodule and as
-reference in their .gitlab-ci.yml file. Both references need to be updated when a
-change in the repo should be deployed to the projects using it.
-
-To achieve the the CI pipeline is setup to update all these projects in one run.
-The submodule *must not* be updated manually, but the CI needs some manual steps
-to do the deployment.
-As this repo contains all the CI code some extra care is needed not to break the
-whole thing. To allow testing the CI, before everything is merged into the yocto
-pipeline a special set of test projects is available in the ci-test group.
-
-### The workflow to deploy a change 
-
-* Commit and push change to the gitlab-ci repo, create a Merge Request
-* The pipeline checks syntax and so on in the Analyze stage
-* The Integrate stage allows testing the change in the complete setup
-  There are two possible integrate steps, one to deploy the change into Merge Request in 
-  the ci-test group, the other is for the productive yocto setup.
-* When the integrate stage has run, a build is started in the related manifest projects
-
-* In all projects there are now integration branches created, named
-  'integrate/gitlab-ci/<gitlab-ci branch name>'
-  These could be used to add additional changes if needed. But the should only happen
-  in very special cases.
-
-* If everything is OK until here, (build OK, CI works as expected ...)
-  the change can be merged into the main branch of gitlab-ci.
-  *This only adds the patch to the gitlab-ci repo's main branch, the reference
-    in the projects using this are not yet updated*
-
-* After the merge a new pipeline is created. In this pipeline there are two 
-  manual jobs: 'merge-ci-test' and 'merge-yocto'
-  These jobs update the reference in the project groups 'ci-test' and 'yocto'.
-  This is split up to allow more testing in cases where the CI changes can only
-  be tested when working on the master branch.
-
-* When the behaviour of the CI on the master branch may be effected of the change
-  only 'merge-ci-test' should be executed. 
-  After this some tests may be done on the ci-test projects.
-  Probably you want to create a commit in minimal-foo, create a merge-request,
-  check the running pipeline, and merge it.
-  After that, check if the merge is succesfull and the manifest is updated as 
-  needed.
-
-* When everything is working the 'merge-yocto' pipeline can be executed, to 
-  deploy the change to the productive projects.
-* When the tests on 'ci-test' have failed, just create a new patch fixing the
-  issue in the gitlab-ci repo and do the testing again.
-
-
-
-## Providing `GITBOT_TOKEN`
-
-The scripts need a [personal GitLab access token][2] of a user with access to all
-relevant repositories (manifest and all contained projects) in order to work correctly.
-We have created the @guf-gitbot user for this task. Norman and Tim know the login
-credentials for it. These should not be needed, though, as the user is member of the
-[Garz & Fricke][3] group and thus already has access to all group projects. However,
-everyone can add the user as a member to every project he has access to, if needed.
-
-The personal access token of the @guf-gitbot user has to be provided on each repository
-via the CI environment variable `GITBOT_TOKEN` (set under project's settings -> CI/CD
--> Variables). Its value can be read on projects which already have this variable
-defined.
-
-
-## Workflow to add a repository to SRCREV.conv for reproducible bitbake builds
-
-Some bitbake recipes are set to `SRCREV = "${AUTOREV}"`. To enable reproducible
-builds, the current revision is written to the SRCREV.conf file. This file is
-part of the manifest repo, which is used for release tags. This workflow adds
-the a gitlab pipeline to the project that automatically sets the current
-version in the SRCREV.conf file.
-1. Add the gitlab-ci repo as submodule to the project by using the correct relative path\
-`git submodule add ../../yocto/infrastructure/gitlab-ci .gitlab-ci`
-1. Add an approriate .gitlab-ci.yml file. For example, copy it from the repository
-[egalxi2c][4]. Modify the following variables in the file:
-	*  MASTER\_BRANCH\_PROJECT: Set the project master branch
-	*  BB\_RECIPE\_NAME: Set the name of the bitbake recipe
-1. Create a corresponding entry in the SRCREV.conf file of the manifest repo\
-`SRCREV_pn-<bitbake-recipe> = "<current-commit-hash>"`
-1. Add the project into the gitlab-ci project's .gitlab-ci.yml, so changes to the
-CI are deployed into the new project.
-
-**Repository settings**
-1. Verify that the merge strategy is set to *Fast-forward merge*
-(General -> Merge requests -> Merge method)
-1. Enable the CI/CD functionality for the repository
-(General -> Visibility, project features, permissions -> CI/CD)
-1. Check that the default branch is protected and that *Maintainers + Developers*
-are allowed to merge (Repository -> Protected branches)
-
+This repository contains **GitLab CI scripts** for Yocto infrastructure tasks,
+e.g. automatic integration of project changes into the manifest. It is meant to
+be included into all relevant Yocto repositories as a [git submodule][1].
 
 [1]: https://git-scm.com/book/en/v2/Git-Tools-Submodules
+
+
+<!----------------------------------------------------------------------------->
+## The GitBot user
+<!----------------------------------------------------------------------------->
+
+Most scripts inside this repository need a [personal GitLab access token][2] of
+a user with access to all relevant repositories (manifest and all contained
+projects) in order to work correctly.
+We have created the @gitbot user for this task. The login credentials for it are
+stored in our [KeePass][3] safe. These should not be needed, though, as the user
+is member of the [`seco-ne`][4] group and thus already has access to all group
+projects. However, everyone can add the user as a member to every project he has
+access to, if needed.
+
+The personal access token of the @gitbot is provided via the CI environment
+variable `GITBOT_TOKEN` for all projects in the `seco-ne` group (set in the
+[group's CI/CD settings][5] under "Variables").
+
 [2]: https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html
-[3]: https://gitlab.com/garz-fricke
-[4]: https://gitlab.com/seco-ne/kernel/modules/egalaxi2c
+[3]: https://keepass.info
+[4]: https://git.seco.com/seco-ne
+[5]: https://git.seco.com/groups/seco-ne/yocto/-/settings/ci_cd
+
+
+<!----------------------------------------------------------------------------->
+## Automatic manifest integration
+<!----------------------------------------------------------------------------->
+
+See this chapter for information on how the automatic integration process works:
+
+â–¶ [Automatic manifest integration][6]
+
+[6]: docs/automatic-manifest-integration.md
+
+
+<!----------------------------------------------------------------------------->
+## Deployment
+<!----------------------------------------------------------------------------->
+
+See this chapter for information on how to deploy changes in the `gitlab-ci`
+repository to all repositories that are using it.
+
+â–¶ [gitlab-ci Deployment][7]
+
+[7]: docs/gitlab-ci-deployment.md
diff --git a/docs/CI_diagram.drawio b/docs/CI_diagram.drawio
deleted file mode 100644
index 6759e94b55512e8f7e7e82112ab5d920adca67bf..0000000000000000000000000000000000000000
--- a/docs/CI_diagram.drawio
+++ /dev/null
@@ -1 +0,0 @@
-<mxfile host="Electron" modified="2021-05-26T13:35:43.217Z" agent="5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/14.6.13 Chrome/89.0.4389.128 Electron/12.0.7 Safari/537.36" etag="EMktwfk9Tznhq6M5jyJl" version="14.6.13" type="device"><diagram name="Page-1" id="6133507b-19e7-1e82-6fc7-422aa6c4b21f">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</diagram></mxfile>
\ No newline at end of file
diff --git a/docs/CI_diagram.png b/docs/CI_diagram.png
deleted file mode 100644
index 5f422f03e7ee04d2341e7bf8abca9b8e239e0041..0000000000000000000000000000000000000000
Binary files a/docs/CI_diagram.png and /dev/null differ
diff --git a/docs/automatic-manifest-integration.md b/docs/automatic-manifest-integration.md
new file mode 100644
index 0000000000000000000000000000000000000000..a551b3345359c76fc16d0dce1f444c381f8bc20b
--- /dev/null
+++ b/docs/automatic-manifest-integration.md
@@ -0,0 +1,202 @@
+<!----------------------------------------------------------------------------->
+# Automatic manifest integration
+<!----------------------------------------------------------------------------->
+
+**Contents:**
+- [Defined source code state](#defined-source-code-state)
+- [Integrating project changes](#integrating-project-changes)
+- [Merging project changes](#merging-project-changes)
+- [Adding a new project to SRCREV.conf](#adding-a-new-project-to-srcrevconf)
+
+
+<!----------------------------------------------------------------------------->
+## Defined source code state
+<!----------------------------------------------------------------------------->
+
+### Manifest
+
+Our [Yocto manifest][1] contains a list of projects which are used to build our
+Yocto distribution. A simplified version of the manifest file [`default.xml`][2]
+(here containing only two projects) would look something like this:
+
+```xml
+<manifest>
+    <remote
+        name="seco-ne"
+        alias="origin"
+        fetch="ssh://git@git.seco.com:4444/seco-ne/yocto"
+    />
+
+    <project
+        name="layers/meta-guf-machine"
+        revision="7aede82170ff7f92de0dcfeca89ed79849869214"
+        remote="seco-ne"
+        path="sources/meta-guf-machine"
+    />
+    <project
+        name="layers/meta-guf-distro"
+        revision="c402d855fc8d47e3742ada3b0a3fda4b9649e414"
+        remote="seco-ne"
+        path="sources/meta-guf-distro"
+    />
+</manifest>
+```
+
+Each project is listed with a **name**, a local **path** where the [repo][3]
+tool will clone the source code to, and a fixed git **revision**. We do not use
+a branch name here in order to have a defined, taggable manifest state at all
+times.
+
+### External source repositories used by BitBake
+
+Some bitbake recipes are set to `SRCREV = "${AUTOREV}"`. To enable reproducible
+builds, the revision for these recipes is written to the `SRCREV.conf` file.
+This file is also part of the manifest repo and looks something like this:
+
+```ini
+SRCREV_pn-libmdb = "1442894df13d9b290cfb5d97183eb9a96c8e4eba"
+SRCREV_pn-egalaxi2c = "d2dfb014e8c2ed36801bd020894d8306f02ff146"
+SRCREV_pn-xconfig = "0fc1ea45b55e729d551bb7d40dd25fbde02ee1b6"
+```
+
+Each project is listed with its bitbake **recipe name** after `SRCREV_PN-` and
+the fixed git **revision**.
+
+[1]: https://git.seco.com/seco-ne/yocto/manifest
+[2]: https://git.seco.com/seco-ne/yocto/manifest/-/blob/dunfell/default.xml
+[3]: https://gerrit.googlesource.com/git-repo
+
+
+<!----------------------------------------------------------------------------->
+## Integrating project changes
+<!----------------------------------------------------------------------------->
+
+Everytime a developer pushes a change to one of the projects contained in the
+manifest or in the `SRCREV.conf` file, the project gets a new git revision. In
+order to have this change integrated into the manifest, the according `revision`
+attribute has to be updated. This process has been automated as part of our **CI
+pipeline** and runs automatically as soon as a **merge request is created**:
+
+![Project merge request pipeline](project-mr-pipeline.png)
+
+The pipeline consists of three jobs:
+
+1. **Integrate**
+
+   Create an integration branch on the manifest and update the project revision
+   on it.
+
+2. **Build**
+
+   Trigger a build on the integration branch, which contains the change.
+   This uses GitLab's [multi-project pipeline][4] functionality, which adds a
+   separate *Downstream* pipeline running on the manifest repository (seen on
+   the right).
+
+3. **Check**
+
+   Check if the integration branch is up to date with the current manifest
+   master (see ["Retrigger" job below][5] for why this is necessary).
+
+See the following diagram for a visualization of this process:
+
+![Create layer merge request](create-layer-mr.svg)
+
+Browse existing project merge requests (e.g. [here][6]) for real world examples
+of this pipeline.
+
+The above workflow makes project changes **buildable** and **testable** in the
+full manifest environment **before merging them**. Actually we even prevent the
+project merge requests from being merged unless the pipeline has run
+successfully.
+
+[4]: https://docs.gitlab.com/ee/ci/pipelines/multi_project_pipelines.html
+[5]: #merging-project-changes
+[6]: https://git.seco.com/seco-ne/yocto/layers/meta-guf-distro/-/merge_requests/321
+
+
+<!----------------------------------------------------------------------------->
+## Merging project changes
+<!----------------------------------------------------------------------------->
+
+As soon as a pushed project change is ready to be merged (i.e. the pipeline has
+successfully run on the merge request), a developer can merge it. This triggers
+a **pipeline** with only a **single job**:
+
+![Project master pipeline](project-master-pipeline.png)
+
+1. **Merge**
+
+   Create a merge request on the manifest, which merges the project integration
+   branch into the master branch, and merge it.
+
+This will however automatically trigger **another pipeline** on the **manifest
+master branch**, since there is a new commit now:
+
+![Manifest master pipeline](manifest-master-pipeline.png)
+
+This pipeline consists of two jobs:
+
+1. **Retrigger**
+
+   Retrigger the *"Check"* job on all open merge requests of all projects
+   contained in the manifest. This will invalidate the pipeline on these merge
+   requests. The manifest has a new commit now, so the already completed
+   pipelines on the open merge requests have run on a now outdated manifest
+   state.
+
+2. **Build**
+
+   Check if a build has already run for this commit. This is usually true,
+   because every merge request triggers a complete build. If so, just mirror
+   the build result from there.
+   There are corner cases however in which no pipeline has run in the merge
+   request, e.g. when two project merge requests from different projects are
+   merged simultaneously. In this case, perform a complete build on the commit.
+
+See the following diagram for a visualization of this process:
+
+![Merge layer merge request](merge-layer-mr.svg)
+
+Browse existing manifest merge requests (e.g. [here][7]) for real world examples
+of this pipeline.
+
+[7]: https://git.seco.com/seco-ne/yocto/manifest/-/merge_requests/545
+
+
+<!----------------------------------------------------------------------------->
+## Adding a new project to SRCREV.conf
+<!----------------------------------------------------------------------------->
+
+This workflow adds a gitlab pipeline to a project which automatically updates
+the git revision in the `SRCREV.conf` file on project changes.
+
+#### Source code
+
+1. Add the gitlab-ci repo as submodule to the project by using the correct
+   relative path:\
+   `git submodule add ../../yocto/infrastructure/gitlab-ci .gitlab-ci`
+
+2. Add an approriate `.gitlab-ci.yml` file. For example, copy it from the
+   repository [egalxi2c][8]. Modify the following variables in the file:
+   * `MASTER_BRANCH_PROJECT`: Set the project master branch
+   * `BB_RECIPE_NAME`: Set the name of the bitbake recipe
+
+3. Create a corresponding entry in the `SRCREV.conf` file of the manifest repo:\
+   `SRCREV_pn-<bitbake-recipe> = "<current-commit-hash>"`
+
+4. Add the project into the gitlab-ci project's `.gitlab-ci.yml`, so changes to
+   the CI are deployed into the new project.
+
+#### Repository settings
+
+1. Verify that the merge strategy is set to *Fast-forward merge*
+   (General -> Merge requests -> Merge method)
+
+2. Enable the CI/CD functionality for the repository
+   (General -> Visibility, project features, permissions -> CI/CD)
+
+3. Check that the default branch is protected and that *Maintainers + 
+   Developers* are allowed to merge (Repository -> Protected branches)
+
+[8]: https://gitlab.com/seco-ne/kernel/modules/egalaxi2c
diff --git a/docs/create-layer-mr.drawio b/docs/create-layer-mr.drawio
new file mode 100644
index 0000000000000000000000000000000000000000..0f23e698bb6796f7e7b54e01bed0b8a5a1f4069c
--- /dev/null
+++ b/docs/create-layer-mr.drawio
@@ -0,0 +1 @@
+<mxfile host="app.diagrams.net" modified="2022-05-10T15:50:28.875Z" agent="5.0 (Windows)" etag="tZCYtCye2vNUvOPvtp5c" version="17.4.6" type="device"><diagram id="fUzyECxa7j4ng1UTdmFO" name="Page-1">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</diagram></mxfile>
\ No newline at end of file
diff --git a/docs/create-layer-mr.svg b/docs/create-layer-mr.svg
new file mode 100644
index 0000000000000000000000000000000000000000..bd7eaa2474e9c544a80d4080589dccdece35a746
--- /dev/null
+++ b/docs/create-layer-mr.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Do not edit this file with editors other than diagrams.net -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="581px" height="805px" viewBox="-0.5 -0.5 581 805" content="&lt;mxfile host=&quot;app.diagrams.net&quot; modified=&quot;2022-05-10T15:50:38.733Z&quot; agent=&quot;5.0 (Windows)&quot; etag=&quot;Kb_AC5GCq8m3XSvk1f2t&quot; version=&quot;17.4.6&quot; type=&quot;browser&quot;&gt;&lt;diagram id=&quot;fUzyECxa7j4ng1UTdmFO&quot; name=&quot;Page-1&quot;&gt;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&lt;/diagram&gt;&lt;/mxfile&gt;"><defs/><g><rect x="9.6" y="9.6" width="560" height="784" fill="#fcfcfc" stroke="#b8b8b8" stroke-width="0.4" pointer-events="all"/><rect x="225.6" y="595.2" width="320" height="120" fill="#f5fffb" stroke="#82b366" stroke-width="0.8" pointer-events="all"/><rect x="225.6" y="403.2" width="320" height="168" fill="#f5fffb" stroke="#82b366" stroke-width="0.8" pointer-events="all"/><rect x="225.6" y="403.2" width="48" height="16" fill="#ebfaed" stroke="#82b366" stroke-width="0.8" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(0.8)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="125%" height="125%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 514px; margin-left: 283px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">build</div></div></div></foreignObject><text x="312" y="518" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">build</text></switch></g><rect x="33.6" y="33.6" width="128" height="32" rx="4.8" ry="4.8" fill="#dae8fc" stroke="#6c8ebf" stroke-width="0.8" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(0.8)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="125%" height="125%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 62px; margin-left: 43px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">     Developer</div></div></div></foreignObject><text x="122" y="66" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">     Developer</text></switch></g><path d="M 97.6 769.6 L 97.6 65.6" fill="none" stroke="#b3b3b3" stroke-width="1.6" stroke-miterlimit="10" stroke-dasharray="4.800000000000001 4.800000000000001" pointer-events="stroke"/><rect x="225.6" y="33.6" width="128" height="32" rx="4.8" ry="4.8" fill="#dae8fc" stroke="#6c8ebf" stroke-width="0.8" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(0.8)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="125%" height="125%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 62px; margin-left: 283px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><div>meta-mylayer<br /></div></div></div></div></foreignObject><text x="362" y="66" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">meta-mylayer&#xa;</text></switch></g><rect x="225.6" y="204" width="320" height="175.2" fill="#f5fffb" stroke="#82b366" stroke-width="0.8" pointer-events="all"/><rect x="417.6" y="33.6" width="128" height="32" rx="4.8" ry="4.8" fill="#dae8fc" stroke="#6c8ebf" stroke-width="0.8" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(0.8)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="125%" height="125%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 62px; margin-left: 523px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">manifest</div></div></div></foreignObject><text x="602" y="66" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">manifest</text></switch></g><path d="M 289.6 105.6 L 289.6 65.6" fill="none" stroke="rgb(0, 0, 0)" stroke-width="1.6" stroke-miterlimit="10" stroke-dasharray="1.6 4.800000000000001" pointer-events="stroke"/><path d="M 481.6 244 L 481.6 65.6" fill="none" stroke="#b3b3b3" stroke-width="1.6" stroke-miterlimit="10" stroke-dasharray="4.800000000000001 4.800000000000001" pointer-events="stroke"/><path d="M 289.6 769.6 L 289.6 121.6" fill="none" stroke="#b3b3b3" stroke-width="1.6" stroke-miterlimit="10" stroke-dasharray="4.800000000000001 4.800000000000001" pointer-events="stroke"/><path d="M 97.6 97.6 L 276.51 97.6" fill="none" stroke="rgb(0, 0, 0)" stroke-width="0.8" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 280.71 97.6 L 275.11 100.4 L 276.51 97.6 L 275.11 94.8 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="0.8" stroke-miterlimit="10" pointer-events="all"/><rect x="133.6" y="80" width="120" height="16" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(0.8)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="125%" height="125%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 110px; margin-left: 242px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">Push branch <i>"add-feature"</i></div></div></div></foreignObject><text x="242" y="114" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Push branch "add-feature"</text></switch></g><rect x="281.6" y="179.2" width="16" height="560" fill="#f8cecc" stroke="#b85450" stroke-width="0.8" pointer-events="all"/><path d="M 97.6 179.2 L 276.51 179.2" fill="none" stroke="rgb(0, 0, 0)" stroke-width="0.8" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 280.71 179.2 L 275.11 182 L 276.51 179.2 L 275.11 176.4 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="0.8" stroke-miterlimit="10" pointer-events="all"/><path d="M 281.6 129.6 L 102.69 129.6" fill="none" stroke="rgb(0, 0, 0)" stroke-width="0.8" stroke-miterlimit="10" stroke-dasharray="2.4000000000000004 2.4000000000000004" pointer-events="stroke"/><path d="M 98.49 129.6 L 104.09 126.8 L 102.69 129.6 L 104.09 132.4 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="0.8" stroke-miterlimit="10" pointer-events="all"/><rect x="105.6" y="161.6" width="160" height="16" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(0.8)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="125%" height="125%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 212px; margin-left: 232px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><div>Create MR for branch <i>"add-feature"</i><br /></div></div></div></div></foreignObject><text x="232" y="216" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Create MR for branch "add-feature...</text></switch></g><path d="M 297.6 244 L 468.51 244" fill="none" stroke="rgb(0, 0, 0)" stroke-width="0.8" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 472.71 244 L 467.11 246.8 L 468.51 244 L 467.11 241.2 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="0.8" stroke-miterlimit="10" pointer-events="all"/><rect x="305.6" y="216.8" width="168" height="24" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(0.8)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="125%" height="125%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 286px; margin-left: 487px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><div>Create branch<br /><i>"integrate/meta-mylayer/add-feature"</i></div></div></div></div></foreignObject><text x="487" y="290" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Create branch...</text></switch></g><path d="M 473.6 276 L 302.69 276" fill="none" stroke="rgb(0, 0, 0)" stroke-width="0.8" stroke-miterlimit="10" stroke-dasharray="2.4000000000000004 2.4000000000000004" pointer-events="stroke"/><path d="M 298.49 276 L 304.09 273.2 L 302.69 276 L 304.09 278.8 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="0.8" stroke-miterlimit="10" pointer-events="all"/><rect x="281.6" y="97.6" width="16" height="32" fill="#f8cecc" stroke="#b85450" stroke-width="0.8" pointer-events="all"/><rect x="313.6" y="283.2" width="152" height="40" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(0.8)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="125%" height="125%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 379px; margin-left: 487px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">Update <i>meta-mylayer</i> revision in<br /><div>manifest to HEAD of <i>"add-feature"</i></div><div>(on new branch from above)<i><br /></i></div></div></div></div></foreignObject><text x="487" y="383" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Update meta-mylayer revision in...</text></switch></g><path d="M 297.6 324 L 468.51 324" fill="none" stroke="rgb(0, 0, 0)" stroke-width="0.8" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 472.71 324 L 467.11 326.8 L 468.51 324 L 467.11 321.2 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="0.8" stroke-miterlimit="10" pointer-events="all"/><path d="M 473.6 356 L 302.69 356" fill="none" stroke="rgb(0, 0, 0)" stroke-width="0.8" stroke-miterlimit="10" stroke-dasharray="2.4000000000000004 2.4000000000000004" pointer-events="stroke"/><path d="M 298.49 356 L 304.09 353.2 L 302.69 356 L 304.09 358.8 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="0.8" stroke-miterlimit="10" pointer-events="all"/><rect x="473.6" y="244" width="16" height="32" fill="#f8cecc" stroke="#b85450" stroke-width="0.8" pointer-events="all"/><path d="M 481.6 447.2 L 481.6 276" fill="none" stroke="#b3b3b3" stroke-width="1.6" stroke-miterlimit="10" stroke-dasharray="4.800000000000001 4.800000000000001" pointer-events="stroke"/><rect x="225.6" y="204" width="48" height="16" fill="#ebfaed" stroke="#82b366" stroke-width="0.8" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(0.8)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="125%" height="125%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 265px; margin-left: 283px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">integrate</div></div></div></foreignObject><text x="312" y="269" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">integrate</text></switch></g><rect x="305.6" y="420" width="168" height="24" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(0.8)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="125%" height="125%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 540px; margin-left: 487px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><div>Trigger pipeline for branch<br /><i>"integrate/meta-mylayer/add-feature"</i><br /></div></div></div></div></foreignObject><text x="487" y="544" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Trigger pipeline for branch...</text></switch></g><path d="M 297.6 447.2 L 468.51 447.2" fill="none" stroke="rgb(0, 0, 0)" stroke-width="0.8" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 472.71 447.2 L 467.11 450 L 468.51 447.2 L 467.11 444.4 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="0.8" stroke-miterlimit="10" pointer-events="all"/><path d="M 473.6 547.2 L 302.69 547.2" fill="none" stroke="rgb(0, 0, 0)" stroke-width="0.8" stroke-miterlimit="10" stroke-dasharray="2.4000000000000004 2.4000000000000004" pointer-events="stroke"/><path d="M 298.49 547.2 L 304.09 544.4 L 302.69 547.2 L 304.09 550 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="0.8" stroke-miterlimit="10" pointer-events="all"/><path d="M 489.6 455.2 L 505.6 455.2 L 505.6 475.2 L 494.69 475.25" fill="none" stroke="rgb(0, 0, 0)" stroke-width="0.8" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 490.49 475.27 L 496.08 472.44 L 494.69 475.25 L 496.11 478.04 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="0.8" stroke-miterlimit="10" pointer-events="all"/><rect x="473.6" y="447.2" width="16" height="100" fill="#f8cecc" stroke="#b85450" stroke-width="0.8" pointer-events="all"/><path d="M 481.6 769.6 L 481.6 547.2" fill="none" stroke="#b3b3b3" stroke-width="1.6" stroke-miterlimit="10" stroke-dasharray="4.800000000000001 4.800000000000001" pointer-events="stroke"/><path d="M 489.6 487.2 L 505.6 487.2 L 505.6 507.2 L 494.69 507.2" fill="none" stroke="rgb(0, 0, 0)" stroke-width="0.8" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 490.49 507.2 L 496.09 504.4 L 494.69 507.2 L 496.09 510 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="0.8" stroke-miterlimit="10" pointer-events="all"/><path d="M 489.6 518.4 L 505.6 518.4 L 505.6 538.4 L 494.69 538.4" fill="none" stroke="rgb(0, 0, 0)" stroke-width="0.8" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 490.49 538.4 L 496.09 535.6 L 494.69 538.4 L 496.09 541.2 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="0.8" stroke-miterlimit="10" pointer-events="all"/><rect x="512.8" y="461.6" width="16" height="8" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(0.8)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="125%" height="125%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 18px; height: 1px; padding-top: 582px; margin-left: 642px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">build</div></div></div></foreignObject><text x="651" y="586" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">bui...</text></switch></g><rect x="510.4" y="493.2" width="16" height="8" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(0.8)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="125%" height="125%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 18px; height: 1px; padding-top: 622px; margin-left: 639px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">test</div></div></div></foreignObject><text x="648" y="625" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">test</text></switch></g><rect x="516" y="524" width="16" height="8" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(0.8)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="125%" height="125%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 18px; height: 1px; padding-top: 660px; margin-left: 646px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><div>deploy</div></div></div></div></foreignObject><text x="655" y="664" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">dep...</text></switch></g><rect x="225.6" y="595.2" width="48" height="16" fill="#ebfaed" stroke="#82b366" stroke-width="0.8" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(0.8)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="125%" height="125%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 754px; margin-left: 283px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">check</div></div></div></foreignObject><text x="312" y="758" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">check</text></switch></g><rect x="305.6" y="608.8" width="168" height="48" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(0.8)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="125%" height="125%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 791px; margin-left: 487px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">Check if branch<br /><i>"integrate/meta-mylayer/add-feature"</i><br /><div>is based on current master's HEAD<br />(always true on first execution)<br /></div></div></div></div></foreignObject><text x="487" y="795" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Check if branch...</text></switch></g><path d="M 297.6 659.2 L 468.51 659.2" fill="none" stroke="rgb(0, 0, 0)" stroke-width="0.8" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 472.71 659.2 L 467.11 662 L 468.51 659.2 L 467.11 656.4 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="0.8" stroke-miterlimit="10" pointer-events="all"/><path d="M 473.6 691.2 L 302.69 691.2" fill="none" stroke="rgb(0, 0, 0)" stroke-width="0.8" stroke-miterlimit="10" stroke-dasharray="2.4000000000000004 2.4000000000000004" pointer-events="stroke"/><path d="M 298.49 691.2 L 304.09 688.4 L 302.69 691.2 L 304.09 694 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="0.8" stroke-miterlimit="10" pointer-events="all"/><rect x="473.6" y="659.2" width="16" height="32" fill="#f8cecc" stroke="#b85450" stroke-width="0.8" pointer-events="all"/><path d="M 281.6 739.2 L 102.69 739.2" fill="none" stroke="rgb(0, 0, 0)" stroke-width="0.8" stroke-miterlimit="10" stroke-dasharray="2.4000000000000004 2.4000000000000004" pointer-events="stroke"/><path d="M 98.49 739.2 L 104.09 736.4 L 102.69 739.2 L 104.09 742 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="0.8" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="69.6" cy="43.6" rx="2" ry="2" fill="#ebfaed" stroke="rgb(0, 0, 0)" stroke-width="0.8" pointer-events="all"/><path d="M 69.6 45.6 L 69.6 52.27 M 69.6 46.93 L 65.6 46.93 M 69.6 46.93 L 73.6 46.93 M 69.6 52.27 L 65.6 57.6 M 69.6 52.27 L 73.6 57.6" fill="none" stroke="rgb(0, 0, 0)" stroke-width="0.8" stroke-miterlimit="10" pointer-events="all"/><rect x="349.6" y="457.6" width="72" height="16" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(0.8)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="125%" height="125%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 582px; margin-left: 482px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><i>[build artifacts]<br /></i></div></div></div></foreignObject><text x="482" y="586" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">[build artifact...</text></switch></g><path d="M 473.6 475.2 L 99.39 475.2" fill="none" stroke="rgb(0, 0, 0)" stroke-width="0.8" stroke-miterlimit="10" stroke-dasharray="2.4000000000000004 2.4000000000000004" pointer-events="stroke"/><path d="M 104.09 472.4 L 98.49 475.2 L 104.09 478" fill="none" stroke="rgb(0, 0, 0)" stroke-width="0.8" stroke-miterlimit="10" pointer-events="all"/><rect x="353.6" y="489.6" width="64" height="16" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(0.8)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="125%" height="125%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 622px; margin-left: 482px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><i>[test results]<br /></i></div></div></div></foreignObject><text x="482" y="626" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">[test results...</text></switch></g><path d="M 473.6 507.2 L 99.39 507.2" fill="none" stroke="rgb(0, 0, 0)" stroke-width="0.8" stroke-miterlimit="10" stroke-dasharray="2.4000000000000004 2.4000000000000004" pointer-events="stroke"/><path d="M 104.09 504.4 L 98.49 507.2 L 104.09 510" fill="none" stroke="rgb(0, 0, 0)" stroke-width="0.8" stroke-miterlimit="10" pointer-events="all"/><rect x="473.6" y="324" width="16" height="32" fill="#f8cecc" stroke="#b85450" stroke-width="0.8" pointer-events="all"/></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg>
\ No newline at end of file
diff --git a/docs/gitlab-ci-deployment.md b/docs/gitlab-ci-deployment.md
new file mode 100644
index 0000000000000000000000000000000000000000..587e05d0988b032b6d26fd718639021ea204ba54
--- /dev/null
+++ b/docs/gitlab-ci-deployment.md
@@ -0,0 +1,66 @@
+<!----------------------------------------------------------------------------->
+# `gitlab-ci` deployment
+<!----------------------------------------------------------------------------->
+
+<!----------------------------------------------------------------------------->
+## Deploy changes into all projects using 'gitlab-ci' as submodule
+<!----------------------------------------------------------------------------->
+
+The gitlab-ci repo is integrated into the other related projects as a submodule
+and as reference in their `.gitlab-ci.yml` file. Both references need to be
+updated when a change in the repo shall be deployed to the projects using it.
+
+To achieve this the CI pipeline is set up to update all these projects in one
+run. The submodule *does not* need to be updated manually, but the CI needs some
+manual steps to do the deployment.
+As this repo contains all the CI code, some extra care is needed in order not to
+break the whole thing. To allow testing the CI before everything is merged into the Yocto pipeline, a sandbox environment in the form of a set of test projects is
+available in the [ci-test group][1].
+
+[1]: https://git.seco.com/seco-ne/yocto/infrastructure/ci-test
+
+
+<!----------------------------------------------------------------------------->
+## Workflow to deploy a change
+<!----------------------------------------------------------------------------->
+
+* Commit and push change to the gitlab-ci repo, create a merge request.
+
+* The pipeline checks syntax and other stuff in the *Analyze* stage.
+
+* The *Integrate* stage allows testing the change in the complete setup.
+  There are two possible integrate steps, one to deploy the change into Merge
+  Request in the *ci-test* group, the other is for the *productive yocto* setup.
+
+* When the integrate stage has run, a build is started in the related manifest
+  project.
+
+* In all projects there are now integration branches created, named
+  `integrate/gitlab-ci/<gitlab-ci branch name>`.
+  These could be used to add additional changes if needed. But that should only
+  happen in very special cases.
+
+* If everything is OK until here, (build OK, CI works as expected ...)
+  the change can be merged into the main branch of gitlab-ci.
+  *This only adds the patch to the gitlab-ci repo's main branch, the reference
+    in the projects using this are not yet updated*
+
+* After the merge a new pipeline is created. In this pipeline there are two 
+  manual jobs: *'merge-ci-test'* and *'merge-yocto'*
+  These jobs update the reference in the project groups *'ci-test' *and
+  *'yocto'*. This is split up to allow more testing in cases where the CI
+  changes can only be tested when working on the master branch.
+
+* When the behaviour of the CI on the master branch may be effected of the
+  change only *'merge-ci-test'* should be executed. 
+  After this some tests may be done on the ci-test projects.
+  Probably you want to create a commit in *minimal-foo*, create a merge-request,
+  check the running pipeline, and merge it.
+  After that, check if the merge is succesfull and the manifest is updated as 
+  needed.
+
+* When everything is working the *'merge-yocto'* pipeline can be executed to 
+  deploy the change to the productive projects.
+
+* When the tests on *'ci-test'* have failed, just create a new patch fixing the
+  issue in the gitlab-ci repo and do the testing again.
diff --git a/docs/manifest-master-pipeline.png b/docs/manifest-master-pipeline.png
new file mode 100644
index 0000000000000000000000000000000000000000..3040828c9195e2a2328c737a49fdc0e602ee2a01
Binary files /dev/null and b/docs/manifest-master-pipeline.png differ
diff --git a/docs/merge-layer-mr.drawio b/docs/merge-layer-mr.drawio
new file mode 100644
index 0000000000000000000000000000000000000000..d3e0ef06515415061dafea812c14edd470bebffd
--- /dev/null
+++ b/docs/merge-layer-mr.drawio
@@ -0,0 +1 @@
+<mxfile host="app.diagrams.net" modified="2022-05-10T16:32:03.192Z" agent="5.0 (Windows)" etag="7UJfYfomj_BLGc_u5cve" version="17.4.6" type="device"><diagram id="fUzyECxa7j4ng1UTdmFO" name="Page-1">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</diagram></mxfile>
\ No newline at end of file
diff --git a/docs/merge-layer-mr.svg b/docs/merge-layer-mr.svg
new file mode 100644
index 0000000000000000000000000000000000000000..3047c88bf4520104ee87b364e82182e01ada1060
--- /dev/null
+++ b/docs/merge-layer-mr.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Do not edit this file with editors other than diagrams.net -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="581px" height="725px" viewBox="-0.5 -0.5 581 725" content="&lt;mxfile host=&quot;app.diagrams.net&quot; modified=&quot;2022-05-10T16:32:09.311Z&quot; agent=&quot;5.0 (Windows)&quot; etag=&quot;NB1wkXPahUqn0yL78ml9&quot; version=&quot;17.4.6&quot; type=&quot;browser&quot;&gt;&lt;diagram id=&quot;fUzyECxa7j4ng1UTdmFO&quot; name=&quot;Page-1&quot;&gt;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&lt;/diagram&gt;&lt;/mxfile&gt;"><defs/><g><rect x="9.6" y="9.6" width="560" height="704" fill="#fcfcfc" stroke="#b8b8b8" stroke-width="0.4" pointer-events="all"/><rect x="225.6" y="577.6" width="320" height="72" fill="#f5fffb" stroke="#82b366" stroke-width="0.8" pointer-events="all"/><rect x="225.6" y="449.6" width="320" height="104" fill="#f5fffb" stroke="#82b366" stroke-width="0.8" pointer-events="all"/><rect x="497.6" y="449.6" width="48" height="16" fill="#ebfaed" stroke="#82b366" stroke-width="0.8" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(0.8)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="125%" height="125%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 572px; margin-left: 623px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">retrigger</div></div></div></foreignObject><text x="652" y="576" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">retrigger</text></switch></g><rect x="33.6" y="33.6" width="128" height="32" rx="4.8" ry="4.8" fill="#dae8fc" stroke="#6c8ebf" stroke-width="0.8" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(0.8)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="125%" height="125%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 62px; margin-left: 43px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">     Developer</div></div></div></foreignObject><text x="122" y="66" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">     Developer</text></switch></g><path d="M 97.6 697.6 L 97.6 65.6" fill="none" stroke="#b3b3b3" stroke-width="1.6" stroke-miterlimit="10" stroke-dasharray="4.800000000000001 4.800000000000001" pointer-events="stroke"/><rect x="225.6" y="33.6" width="128" height="32" rx="4.8" ry="4.8" fill="#dae8fc" stroke="#6c8ebf" stroke-width="0.8" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(0.8)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="125%" height="125%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 62px; margin-left: 283px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;"><div>meta-mylayer<br /></div></div></div></div></foreignObject><text x="362" y="66" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">meta-mylayer&#xa;</text></switch></g><rect x="225.6" y="204" width="320" height="175.2" fill="#f5fffb" stroke="#82b366" stroke-width="0.8" pointer-events="all"/><rect x="417.6" y="33.6" width="128" height="32" rx="4.8" ry="4.8" fill="#dae8fc" stroke="#6c8ebf" stroke-width="0.8" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(0.8)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="125%" height="125%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 158px; height: 1px; padding-top: 62px; margin-left: 523px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">manifest</div></div></div></foreignObject><text x="602" y="66" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">manifest</text></switch></g><path d="M 289.6 105.6 L 289.6 65.6" fill="none" stroke="#b3b3b3" stroke-width="1.6" stroke-miterlimit="10" stroke-dasharray="4.800000000000001 4.800000000000001" pointer-events="stroke"/><path d="M 481.6 244 L 481.6 65.6" fill="none" stroke="#b3b3b3" stroke-width="1.6" stroke-miterlimit="10" stroke-dasharray="4.800000000000001 4.800000000000001" pointer-events="stroke"/><path d="M 289.6 499.2 L 289.6 121.6" fill="none" stroke="#b3b3b3" stroke-width="1.6" stroke-miterlimit="10" stroke-dasharray="4.800000000000001 4.800000000000001" pointer-events="stroke"/><path d="M 97.6 97.6 L 276.51 97.6" fill="none" stroke="rgb(0, 0, 0)" stroke-width="0.8" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 280.71 97.6 L 275.11 100.4 L 276.51 97.6 L 275.11 94.8 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="0.8" stroke-miterlimit="10" pointer-events="all"/><rect x="113.6" y="80" width="160" height="16" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(0.8)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="125%" height="125%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 110px; margin-left: 242px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">Create MR for branch <i>"add-feature"</i></div></div></div></foreignObject><text x="242" y="114" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Create MR for branch "add-feature"</text></switch></g><rect x="281.6" y="179.2" width="16" height="222.4" fill="#f8cecc" stroke="#b85450" stroke-width="0.8" pointer-events="all"/><path d="M 97.6 179.2 L 276.51 179.2" fill="none" stroke="rgb(0, 0, 0)" stroke-width="0.8" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 280.71 179.2 L 275.11 182 L 276.51 179.2 L 275.11 176.4 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="0.8" stroke-miterlimit="10" pointer-events="all"/><path d="M 281.6 129.6 L 102.69 129.6" fill="none" stroke="rgb(0, 0, 0)" stroke-width="0.8" stroke-miterlimit="10" stroke-dasharray="2.4000000000000004 2.4000000000000004" pointer-events="stroke"/><path d="M 98.49 129.6 L 104.09 126.8 L 102.69 129.6 L 104.09 132.4 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="0.8" stroke-miterlimit="10" pointer-events="all"/><rect x="109.6" y="152.8" width="152" height="24" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(0.8)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="125%" height="125%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 206px; margin-left: 232px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><div>Merge MR for branch <i>"add-feature"<br /></i>into meta-mylayer master<br /></div></div></div></div></foreignObject><text x="232" y="210" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Merge MR for branch "add-featur...</text></switch></g><path d="M 297.6 244 L 468.51 244" fill="none" stroke="rgb(0, 0, 0)" stroke-width="0.8" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 472.71 244 L 467.11 246.8 L 468.51 244 L 467.11 241.2 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="0.8" stroke-miterlimit="10" pointer-events="all"/><rect x="305.6" y="216.8" width="168" height="24" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(0.8)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="125%" height="125%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 286px; margin-left: 487px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><div>Create MR for branch<br /><i>"integrate/meta-mylayer/add-feature"</i></div></div></div></div></foreignObject><text x="487" y="290" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Create MR for branch...</text></switch></g><path d="M 473.6 276 L 302.69 276" fill="none" stroke="rgb(0, 0, 0)" stroke-width="0.8" stroke-miterlimit="10" stroke-dasharray="2.4000000000000004 2.4000000000000004" pointer-events="stroke"/><path d="M 298.49 276 L 304.09 273.2 L 302.69 276 L 304.09 278.8 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="0.8" stroke-miterlimit="10" pointer-events="all"/><rect x="281.6" y="97.6" width="16" height="32" fill="#f8cecc" stroke="#b85450" stroke-width="0.8" pointer-events="all"/><rect x="305.6" y="283.2" width="168" height="40" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(0.8)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="125%" height="125%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 379px; margin-left: 487px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;"><div>Merge MR for branch<br /><i>"integrate/meta-mylayer/add-feature"</i></div><div>into manifest master<br /><i></i></div></div></div></div></foreignObject><text x="487" y="383" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Merge MR for branch...</text></switch></g><path d="M 297.6 324 L 468.51 324" fill="none" stroke="rgb(0, 0, 0)" stroke-width="0.8" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 472.71 324 L 467.11 326.8 L 468.51 324 L 467.11 321.2 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="0.8" stroke-miterlimit="10" pointer-events="all"/><path d="M 473.6 356 L 302.69 356" fill="none" stroke="rgb(0, 0, 0)" stroke-width="0.8" stroke-miterlimit="10" stroke-dasharray="2.4000000000000004 2.4000000000000004" pointer-events="stroke"/><path d="M 298.49 356 L 304.09 353.2 L 302.69 356 L 304.09 358.8 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="0.8" stroke-miterlimit="10" pointer-events="all"/><rect x="473.6" y="244" width="16" height="32" fill="#f8cecc" stroke="#b85450" stroke-width="0.8" pointer-events="all"/><path d="M 481.6 425.6 L 481.6 276" fill="none" stroke="#b3b3b3" stroke-width="1.6" stroke-miterlimit="10" stroke-dasharray="4.800000000000001 4.800000000000001" pointer-events="stroke"/><rect x="225.6" y="204" width="48" height="16" fill="#ebfaed" stroke="#82b366" stroke-width="0.8" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(0.8)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="125%" height="125%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 265px; margin-left: 283px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">merge</div></div></div></foreignObject><text x="312" y="269" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">merge</text></switch></g><rect x="473.6" y="425.6" width="16" height="248" fill="#f8cecc" stroke="#b85450" stroke-width="0.8" pointer-events="all"/><path d="M 481.6 697.6 L 481.6 673.6" fill="none" stroke="#b3b3b3" stroke-width="1.6" stroke-miterlimit="10" stroke-dasharray="4.800000000000001 4.800000000000001" pointer-events="stroke"/><path d="M 281.6 401.6 L 102.69 401.6" fill="none" stroke="rgb(0, 0, 0)" stroke-width="0.8" stroke-miterlimit="10" stroke-dasharray="2.4000000000000004 2.4000000000000004" pointer-events="stroke"/><path d="M 98.49 401.6 L 104.09 398.8 L 102.69 401.6 L 104.09 404.4 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="0.8" stroke-miterlimit="10" pointer-events="all"/><ellipse cx="69.6" cy="43.6" rx="2" ry="2" fill="#ebfaed" stroke="rgb(0, 0, 0)" stroke-width="0.8" pointer-events="all"/><path d="M 69.6 45.6 L 69.6 52.27 M 69.6 46.93 L 65.6 46.93 M 69.6 46.93 L 73.6 46.93 M 69.6 52.27 L 65.6 57.6 M 69.6 52.27 L 73.6 57.6" fill="none" stroke="rgb(0, 0, 0)" stroke-width="0.8" stroke-miterlimit="10" pointer-events="all"/><rect x="473.6" y="324" width="16" height="32" fill="#f8cecc" stroke="#b85450" stroke-width="0.8" pointer-events="all"/><path d="M 489.6 339.2 L 505.6 339.2 L 505.6 425.6 L 491.39 425.6" fill="none" stroke="rgb(0, 0, 0)" stroke-width="0.8" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 496.09 422.8 L 490.49 425.6 L 496.09 428.4" fill="none" stroke="rgb(0, 0, 0)" stroke-width="0.8" stroke-miterlimit="10" pointer-events="all"/><rect x="281.6" y="499.2" width="16" height="32" fill="#f8cecc" stroke="#b85450" stroke-width="0.8" pointer-events="all"/><path d="M 289.6 697.6 L 289.6 531.2" fill="none" stroke="#b3b3b3" stroke-width="1.6" stroke-miterlimit="10" stroke-dasharray="4.800000000000001 4.800000000000001" pointer-events="stroke"/><path d="M 302.69 499.2 L 473.6 499.2" fill="none" stroke="rgb(0, 0, 0)" stroke-width="0.8" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 298.49 499.2 L 304.09 496.4 L 302.69 499.2 L 304.09 502 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="0.8" stroke-miterlimit="10" pointer-events="all"/><rect x="313.6" y="458.4" width="144" height="40" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(0.8)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="125%" height="125%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 598px; margin-left: 482px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">Retrigger "check" job on all open<br />merge requests (for all projects<br />contained in the manifest)</div></div></div></foreignObject><text x="482" y="602" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Retrigger "check" job on all o...</text></switch></g><path d="M 297.6 531.2 L 468.51 531.2" fill="none" stroke="rgb(0, 0, 0)" stroke-width="0.8" stroke-miterlimit="10" stroke-dasharray="2.4000000000000004 2.4000000000000004" pointer-events="stroke"/><path d="M 472.71 531.2 L 467.11 534 L 468.51 531.2 L 467.11 528.4 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="0.8" stroke-miterlimit="10" pointer-events="all"/><rect x="497.6" y="577.6" width="48" height="16" fill="#ebfaed" stroke="#82b366" stroke-width="0.8" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(0.8)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="125%" height="125%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 58px; height: 1px; padding-top: 732px; margin-left: 623px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">build</div></div></div></foreignObject><text x="652" y="736" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">build</text></switch></g><path d="M 473.6 616.04 L 369.6 616 L 369.6 633.6 L 468.51 633.62" fill="none" stroke="rgb(0, 0, 0)" stroke-width="0.8" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 472.71 633.62 L 467.11 636.42 L 468.51 633.62 L 467.11 630.82 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-width="0.8" stroke-miterlimit="10" pointer-events="all"/><rect x="380.8" y="588.8" width="80" height="24" fill="none" stroke="none" pointer-events="all"/><g transform="translate(-0.5 -0.5)scale(0.8)"><switch><foreignObject style="overflow: visible; text-align: left;" pointer-events="none" width="125%" height="125%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 1px; height: 1px; padding-top: 751px; margin-left: 526px;"><div style="box-sizing: border-box; font-size: 0px; text-align: center;" data-drawio-colors="color: rgb(0, 0, 0); "><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: nowrap;">Mirror build result<br />from MR pipeline</div></div></div></foreignObject><text x="526" y="755" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Mirror build res...</text></switch></g></g><switch><g requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility"/><a transform="translate(0,-5)" xlink:href="https://www.diagrams.net/doc/faq/svg-export-text-problems" target="_blank"><text text-anchor="middle" font-size="10px" x="50%" y="100%">Text is not SVG - cannot display</text></a></switch></svg>
\ No newline at end of file
diff --git a/docs/project-master-pipeline.png b/docs/project-master-pipeline.png
new file mode 100644
index 0000000000000000000000000000000000000000..317ac235d0656cc812810305a8f87f4afb64d5f5
Binary files /dev/null and b/docs/project-master-pipeline.png differ
diff --git a/docs/project-mr-pipeline.png b/docs/project-mr-pipeline.png
new file mode 100644
index 0000000000000000000000000000000000000000..5e932f4daf8b172e7bf9e7dc17779e3fdd5922c0
Binary files /dev/null and b/docs/project-mr-pipeline.png differ