# Was sind Pipelines?

Eine Pipeline testet, versioniert, baut und verteilt deine Anwendung nach jedem Push auf main, und den letzten Schritt nach Produktion startest du selbst.

> Source: https://www.application-platform.com/de/docs/what-are-pipelines/

Eine Pipeline ist eine Kette von Arbeitsschritten, die GitLab nach jedem Push ausführt: Sie prüft deinen Code, berechnet eine Versionsnummer, baut die Anwendung und bringt sie auf den Server oder in die Stores. Jedes generierte Repository bringt seine Pipeline in `.gitlab-ci.yml` mit; ändere sie nicht, auch nicht zur Fehlerbehebung, weil die Plattform sie pflegt und überschreibt, und frag für zusätzliche Automatisierung den [Support]({{< relref "/support" >}}).

## Die Stufen einer Pipeline

Eine Pipeline besteht aus Jobs in Stufen, die nacheinander laufen; schlägt ein Job fehl, stoppt die Pipeline dort.

```mermaid
flowchart LR
  test["test"] --> version["update-version"]
  version --> build["build"]
  build --> publish["publish<br/>(automatisch)"]
  publish --> release["release<br/>(manuell)"]
```

In `test` laufen Tests und Prüfungen deines Codes. In `update-version` berechnet die Pipeline die Versionsnummer aus den Commit-Nachrichten; `feat:` erhöht die Minor-Version, `fix:` kennzeichnet eine Fehlerbehebung mit ebenfalls neuer Version. In `build` entsteht das Docker-Image für Backends und Web-Apps oder der App-Build für iOS und Android. In `publish` verteilt die Pipeline das Ergebnis automatisch auf den Dev-Server, zu TestFlight oder in den internen Test-Track von Google Play. `release` gibt erst auf deinen Klick Produktion frei oder reicht die App bei den Stores ein.

## Pipelines ansehen

Öffne in GitLab das Repository und dann **CI/CD → Pipelines**; die Liste zeigt jede Pipeline mit auslösendem Commit und Status laufend, erfolgreich oder fehlgeschlagen. Ein Klick auf eine Pipeline zeigt ihre Jobs nach Stufen, ein Klick auf einen Job sein Log, in dem die Fehlermeldung meistens am Ende steht.

## Manuelle Jobs starten

Jobs mit Play-Button warten auf dich, damit nichts unbemerkt in Produktion oder in die Stores geht.

1. Öffne die Pipeline des `main`-Stands, den du auf Dev geprüft hast.
2. Klicke beim gewünschten Job, etwa dem Produktions-Job, auf den Play-Button.
3. Verfolge den Fortschritt im Log. Erscheint kein Play-Button, ist meist ein früherer Job fehlgeschlagen oder die Pipeline läuft noch.

Den Weg von der Änderung bis zur Pipeline beschreibt [Änderungen sichern und veröffentlichen]({{< relref "save-and-publish" >}}), die Fassung mit Branches und Merge Requests [Git-Workflow und Deployment]({{< relref "git-workflow" >}}).

