:sourcedir: ../../../../templates

== Templates und Pipelines

In dieser Repository sind CI Templates und CI Pipeline-Templates zu finden.
Templates sind vorgefertigte Jobs, die jeweils einen Use-Case abbilden sollen und in dein Projekt importiert werden können. Die meisten Templates haben kein abhängigkeiten untereinander. Wenn doch, werden die Abhängigkeiten dokumentiert.
Alle Templates sind im Ordner Templates zu finden.

Da eine CI jedoch aus Pipelines besteht und Gitlab die Möglichkeit Multi-Projekt- und Child-Pipelines zu benutzen, werden hier auch vorgefertigte Pipelines bereitgestellt.
Diese Pipeline-Templates bilden komplexere Use-Cases ab.
Pipelines sind in dem dafür vorgesehenen Pipeline Ordner zu finden.

== Wie können Templates benutzt werden

Damit du die Templates in deinem Projekt zu benutzten kannst, musst du folgendes machen:

1. `Include` das Template file das du benutzen willst in deinem `.gitlab-ci.yaml` File.
2. Jetzt kannst du in von dir gewählten Job das Template mit dem keyword  `extend` als Ausgangspunkt benutzen.
3. Du kannst den Job für deinen Anwendungszweck weitere verändern indem du diese bei dir Überschreibst.

====
Bei dem folgenden Beispiel wurde als ref der Tag 1.0.0 gesetzt.
Wir empfehlen diesen Tag zu setzen damit Änderungen von uns nicht eure CI Skripte kaputt machen.
Um automatisch mitzubekommen, wenn sich die CI verändert empfehlen wir das Benutzen von Renovate
====

[source,yaml]
----
stages:
  - test-image

include:
  - project: 'gilden/ci/gitlab-ci-templates'
    ref: '1.0.0'
    file:
      - '/templates/java/maven/maven-verify.gitlab-ci.yml'

test-image:
  stage: test-image
  extends: .maven-verify
  rules:
    - if: $NURAUFMEINEMBRANCH
  before_script:
    - echo "meine änderungen"
----

== Wie können Pipelines benutzt werden

Um Pipelines zu benutzen, müssen diese nur mit `Include` importiert werden.
Für weitere Informationen ließ bitte die Doku der Pipelines selbst.


