Was dieser Builder macht
Eine .gitlab-ci.yml lebt im Root deines GitLab-Repos und beschreibt die volle Pipeline: geordnete Stages (install, test, deploy), einzelne Jobs mit ihren Skripten, was gecacht und was als Artifact publiziert wird, und wann jeder Job tatsaechlich laeuft (nur auf main? nur bei Tags? nur wenn eine Datei sich aenderte?). Eine Datei, keine separate UI, mit dem Rest des Codes versioniert.
Dieser Builder schreibt sie fuer dich. Preset waehlen (Test + Deploy, Docker-Registry-Push, GitLab Pages), Stages und Jobs in Formularen bearbeiten, und das rechte Panel zeigt das exakte YAML, das du in `.gitlab-ci.yml` einfuegen kannst. Der Validator prueft die typischen Fallen: ein Job, der einen Job in einer spaeteren Stage braucht, ein Job, der eine nicht in `stages:` gelistete Stage referenziert, doppelte Job-Namen, Jobs ohne Script.
Alles laeuft im Browser. Kein Upload, kein Account, keine echte Pipeline wird hier gestartet. Der Output ist derselbe Text, den du von Hand schreiben wuerdest.
So benutzt du es
- Ein Preset oben waehlen: Test + Deploy, Docker-Registry-Push oder GitLab Pages. Das Formular fuellt sinnvolle Defaults.
- Das Default-Image setzen (von jedem Job genutzt, der es nicht ueberschreibt), die geordnete Liste der Stages und beliebige globale Variablen als `KEY=value`-Paare.
- Jobs in Tabs ergaenzen. Pro Job setzen: eindeutiger Name, Stage (muss in der Stages-Liste vorkommen), optionales Image-Override, optionale Variablen und needs.
- Das Script schreiben (ein Befehl pro Zeile). Optional ein before_script fuer Setup-Befehle, die mehrere Runs teilen.
- artifacts setzen (Pfade und `expire_in`) fuer den Build-Output. cache mit Key und Pfaden setzen, um Wiederholungen zu beschleunigen.
- rules mit `if:`-Ausdruecken ergaenzen, z. B. `$CI_COMMIT_BRANCH == "main"`. `on_success`, `always`, `manual` (braucht Klick zum Start) oder `never` waehlen.
- allow_failure fuer Jobs toggeln, die die Pipeline beim Scheitern nicht blocken sollen (Linter, Security-Scanner, die advisory sind).
- Im Vorschau-Panel Copy klicken oder Download zum Speichern als `.gitlab-ci.yml`, dann ins Root deines Repos committen. Der naechste Push triggert die Pipeline.
Wann das nuetzlich ist
Sieben konkrete Situationen, in denen ein GitLab-CI-Builder echte Zeit spart:
- Erste Pipeline in einem neuen Projekt. "Test + Deploy" waehlen, den Test-Befehl aendern, committen. In zwei Minuten erledigt statt in der langen GitLab-Doku zu fischen.
- Docker-Registry-Push an eine bestehende Pipeline anhaengen. Der Login-+-Tag-+-Push-Tanz ist eine bekannte Sequenz; der Builder schreibt sie, du fuellst nur den Image-Namen.
- Deploy-Job, der nur auf main laeuft. Die `rules:`-Syntax mit `if:` ist der moderne Weg (ersetzt das alte `only:` / `except:`), und kleine Tippfehler kosten einen ganzen Pipeline-Run.
- node_modules oder pip ueber Pipeline-Runs cachen. Die Cache-Stanza ist kurz, aber leicht falsch zu formatieren. Der Builder schreibt einen funktionierenden Cache mit Default-Key `$CI_COMMIT_REF_SLUG`.
- Multi-Stage-Pipeline mit parallelen Jobs in test. Mehrere Jobs in der `test`-Stage laufen automatisch parallel. Der Builder macht die Struktur offensichtlich, damit du sie nicht versehentlich serialisierst.
- Manueller Deploy-Gate. Die Regel des Deploy-Jobs auf `when: manual` setzen, nur ein expliziter Klick in der GitLab-UI startet den Deploy. Typisches Prod-Pattern.
- GitLab-Pages-Site-Deploy. Der spezielle `pages`-Job muss als Artifact in `public/` publishen. Das "Pages Deploy"-Preset codiert die Konvention exakt.