[{"data":1,"prerenderedAt":1819},["ShallowReactive",2],{"/de-de/blog/getting-started-with-gitlab-understanding-ci-cd":3,"navigation-de-de":1039,"banner-de-de":1469,"footer-de-de":1477,"blog-post-authors-de-de-GitLab":1718,"blog-related-posts-de-de-getting-started-with-gitlab-understanding-ci-cd":1733,"blog-promotions-de-de":1756,"next-steps-de-de":1809},{"id":4,"title":5,"authors":6,"body":8,"category":1014,"date":1015,"description":1016,"extension":1017,"externalUrl":1018,"faq":1018,"featured":268,"heroImage":1019,"meta":1020,"navigation":268,"path":1021,"seo":1022,"slug":1028,"stem":1029,"tags":1030,"template":1036,"updatedDate":1037,"__hash__":1038},"blogPosts/de-de/blog/getting-started-with-gitlab-understanding-ci-cd.md","Erste Schritte mit GitLab: Grundlegendes zu CI/CD",[7],"GitLab",{"type":9,"value":10,"toc":1000},"minimark",[11,22,27,91,108,112,141,144,147,185,188,243,246,252,441,444,447,450,455,470,643,648,657,835,838,846,849,865,871,874,888,893,896,905,908,929,932,935,952,956,959,996],[12,13,14,15,21],"p",{},"Stell dir einen Workflow vor, bei dem jede Codeänderung automatisch erstellt, getestet und für deine Benutzer(innen) bereitgestellt wird. Genau das macht ",[16,17,20],"a",{"href":18,"rel":19},"https://about.gitlab.com/de-de/topics/ci-cd/",[],"CI/CD (Kontinuierliche Integration/Kontinuierliche Lieferung)","! Mit CI/CD kannst du Fehler frühzeitig erkennen, die Qualität des Codes sicherstellen und Software schneller und häufiger bereitstellen.",[23,24,26],"h2",{"id":25},"inhaltsverzeichnis","Inhaltsverzeichnis",[28,29,30,37,43,49,55,61,67,73,79,85],"ul",{},[31,32,33],"li",{},[16,34,36],{"href":35},"#was-ist-cicd%3F","Was ist CI/CD?",[31,38,39],{},[16,40,42],{"href":41},"#vorteile-von-gitlab-cicd","Vorteile von GitLab CI/CD",[31,44,45],{},[16,46,48],{"href":47},"#die-elemente-von-gitlab-cicd","Die Elemente von GitLab CI/CD",[31,50,51],{},[16,52,54],{"href":53},"#gitlab-ci-einrichten","GitLab CI einrichten",[31,56,57],{},[16,58,60],{"href":59},"#beispiele-f%C3%BCr-die-cicd-konfiguration","Beispiele für die CI/CD-Konfiguration",[31,62,63],{},[16,64,66],{"href":65},"#gitlab-auto-devops","GitLab Auto-DevOps",[31,68,69],{},[16,70,72],{"href":71},"#cicd-katalog","CI/CD-Katalog",[31,74,75],{},[16,76,78],{"href":77},"#ci-vorlagen","CI-Vorlagen",[31,80,81],{},[16,82,84],{"href":83},"#entwicklung-der-n%C3%A4chsten-generation","Entwicklung der nächsten Generation",[31,86,87],{},[16,88,90],{"href":89},"#reihe-%E2%80%9Eerste-schritte-mit-gitlab%E2%80%9C","Reihe „Erste Schritte mit GitLab\"",[92,93,94],"blockquote",{},[12,95,96,100,101],{},[97,98,99],"strong",{},"12x kürzere Bereitstellungszeit: Dank GitLabs vollständiger Integration lebt Hilti Effizienz."," GitLab bringt vollständige Transparenz, eine umfassende Codeverwaltung und umfangreiche Sicherheitsscans mit, um Hilti neue Softwarefähigkeiten zu ermöglichen. Erfahre, wie Hilti seine Softwareentwicklung revolutioniert hat. ",[97,102,103],{},[16,104,107],{"href":105,"rel":106},"https://about.gitlab.com/de-de/customers/hilti/",[],"Erfolgsstory lesen",[109,110,36],"h3",{"id":111},"was-ist-cicd",[28,113,114,120,131],{},[31,115,116,119],{},[97,117,118],{},"Kontinuierliche Integration"," ist eine Entwicklungsmethode, bei der Entwickler(innen) häufig, nach Möglichkeit mehrmals am Tag, Codeänderungen in ein gemeinsames Repository integrieren. Jede Integration wird dann durch einen automatisierten Build- und Testprozess überprüft, so dass die Teams Probleme frühzeitig erkennen können.",[31,121,122,125,126,130],{},[97,123,124],{},"Kontinuierliche Lieferung"," erweitert CI, indem sie die Bereitstellungspipeline automatisiert und dafür sorgt, dass dein Code ",[127,128,129],"em",{},"immer"," in einem einsatzfähigen Zustand ist. Du kannst deine Anwendung mit einem einzigen Klick oder automatisch in verschiedenen Umgebungen (z. B. Staging, Produktion) bereitstellen.",[31,132,133,136,137,140],{},[97,134,135],{},"Kontinuierliche Bereitstellung"," geht noch einen Schritt weiter, indem sie ",[127,138,139],{},"jeden erfolgreichen Build"," automatisch für die Produktion bereitstellt. Dies erfordert ein hohes Maß an Vertrauen in deine automatisierten Tests und deinen Bereitstellungsprozess.",[109,142,42],{"id":143},"vorteile-von-gitlab-cicd",[12,145,146],{},"GitLab CI/CD ist ein leistungsstarkes, eingegliedertes System, das in GitLab integriert ist. Es bietet ein nahtloses Erlebnis für die Automatisierung deines gesamten Software-Entwicklungsprozesses. Mit GitLab CI/CD kannst du:",[28,148,149,155,161,167,173,179],{},[31,150,151,154],{},[97,152,153],{},"Alles automatisieren:"," Erstelle, teste und stelle deine Anwendungen mit Leichtigkeit bereit.",[31,156,157,160],{},[97,158,159],{},"Bugs frühzeitig erkennen:"," Erkenne und behebe Fehler, bevor sie die Produktion erreichen.",[31,162,163,166],{},[97,164,165],{},"Schnelleres Feedback erhalten:"," Du erhältst sofortige Rückmeldung zu deinen Code-Änderungen.",[31,168,169,172],{},[97,170,171],{},"Die Zusammenarbeit verbessern:"," Arbeite mit automatisierten Workflows effektiver im Team zusammen.",[31,174,175,178],{},[97,176,177],{},"Die Bereitstellung beschleunigen:"," Veröffentliche Software schneller und häufiger.",[31,180,181,184],{},[97,182,183],{},"Risiken reduzieren:"," Minimiere Fehler bei der Bereitstellung und vermeide Rollbacks.",[109,186,48],{"id":187},"die-elemente-von-gitlab-cicd",[28,189,190,206,219,231],{},[31,191,192,196,199,200,205],{},[193,194,195],"code",{},".gitlab-ci.yml",[97,197,198],{},":"," Diese ",[16,201,204],{"href":202,"rel":203},"https://docs.gitlab.com/ci/yaml/",[],"YAML-Datei (nur in englischer Sprache verfügbar)",", die sich im Stammverzeichnis deines Projekts befindet, definiert deine CI/CD-Pipeline, einschließlich Phasen, Jobs und Runner.",[31,207,208,216,218],{},[16,209,212,215],{"href":210,"rel":211},"https://docs.gitlab.com/runner/",[],[97,213,214],{},"GitLab Runner"," (nur in englischer Sprache verfügbar)",[97,217,198],{}," Dieser Agent führt deine CI/CD-Jobs auf deiner Infrastruktur aus (z. B. auf physischen Computern, virtuellen Maschinen, Docker-Containern oder Kubernetes-Clustern).",[31,220,221,228,230],{},[16,222,225,215],{"href":223,"rel":224},"https://docs.gitlab.com/ci/yaml/#stages",[],[97,226,227],{},"Phasen",[97,229,198],{}," Phasen definieren die Reihenfolge der Ausführung deiner Jobs (z. B. Erstellen, Testen und Bereitstellen).",[31,232,233,240,242],{},[16,234,237,215],{"href":235,"rel":236},"https://docs.gitlab.com/ci/yaml/#job-keywords",[],[97,238,239],{},"Jobs",[97,241,198],{}," Jobs sind einzelne Arbeitseinheiten innerhalb einer Phase (z. B. Code kompilieren, Tests ausführen und für das Staging bereitstellen).",[109,244,54],{"id":245},"gitlab-ci-einrichten",[12,247,248,249,251],{},"Die ersten Schritte mit GitLab CI sind einfach. Hier ist ein einfaches Beispiel für eine ",[193,250,195],{},"-Datei:",[253,254,259],"pre",{"className":255,"code":256,"language":257,"meta":258,"style":258},"language-yaml shiki shiki-themes github-light","\nstages:\n  - build\n  - test\n  - deploy\n\nbuild_job:\n  stage: build\n  script:\n    - echo \"Building the application...\"\n\ntest_job:\n  stage: test\n  script:\n    - echo \"Running tests...\"\n\ndeploy_job:\n  stage: deploy\n  script:\n    - echo \"Deploying to production...\"\n  environment:\n    name: production\n\n","yaml","",[193,260,261,270,281,291,299,307,312,320,331,339,348,353,361,370,377,385,390,398,407,414,422,430],{"__ignoreMap":258},[262,263,266],"span",{"class":264,"line":265},"line",1,[262,267,269],{"emptyLinePlaceholder":268},true,"\n",[262,271,273,277],{"class":264,"line":272},2,[262,274,276],{"class":275},"shJU0","stages",[262,278,280],{"class":279},"sgsFI",":\n",[262,282,284,287],{"class":264,"line":283},3,[262,285,286],{"class":279},"  - ",[262,288,290],{"class":289},"sYBdl","build\n",[262,292,294,296],{"class":264,"line":293},4,[262,295,286],{"class":279},[262,297,298],{"class":289},"test\n",[262,300,302,304],{"class":264,"line":301},5,[262,303,286],{"class":279},[262,305,306],{"class":289},"deploy\n",[262,308,310],{"class":264,"line":309},6,[262,311,269],{"emptyLinePlaceholder":268},[262,313,315,318],{"class":264,"line":314},7,[262,316,317],{"class":275},"build_job",[262,319,280],{"class":279},[262,321,323,326,329],{"class":264,"line":322},8,[262,324,325],{"class":275},"  stage",[262,327,328],{"class":279},": ",[262,330,290],{"class":289},[262,332,334,337],{"class":264,"line":333},9,[262,335,336],{"class":275},"  script",[262,338,280],{"class":279},[262,340,342,345],{"class":264,"line":341},10,[262,343,344],{"class":279},"    - ",[262,346,347],{"class":289},"echo \"Building the application...\"\n",[262,349,351],{"class":264,"line":350},11,[262,352,269],{"emptyLinePlaceholder":268},[262,354,356,359],{"class":264,"line":355},12,[262,357,358],{"class":275},"test_job",[262,360,280],{"class":279},[262,362,364,366,368],{"class":264,"line":363},13,[262,365,325],{"class":275},[262,367,328],{"class":279},[262,369,298],{"class":289},[262,371,373,375],{"class":264,"line":372},14,[262,374,336],{"class":275},[262,376,280],{"class":279},[262,378,380,382],{"class":264,"line":379},15,[262,381,344],{"class":279},[262,383,384],{"class":289},"echo \"Running tests...\"\n",[262,386,388],{"class":264,"line":387},16,[262,389,269],{"emptyLinePlaceholder":268},[262,391,393,396],{"class":264,"line":392},17,[262,394,395],{"class":275},"deploy_job",[262,397,280],{"class":279},[262,399,401,403,405],{"class":264,"line":400},18,[262,402,325],{"class":275},[262,404,328],{"class":279},[262,406,306],{"class":289},[262,408,410,412],{"class":264,"line":409},19,[262,411,336],{"class":275},[262,413,280],{"class":279},[262,415,417,419],{"class":264,"line":416},20,[262,418,344],{"class":279},[262,420,421],{"class":289},"echo \"Deploying to production...\"\n",[262,423,425,428],{"class":264,"line":424},21,[262,426,427],{"class":275},"  environment",[262,429,280],{"class":279},[262,431,433,436,438],{"class":264,"line":432},22,[262,434,435],{"class":275},"    name",[262,437,328],{"class":279},[262,439,440],{"class":289},"production\n",[12,442,443],{},"Diese Konfiguration definiert drei Phasen: „build“, „test“ und „deploy“. Jede Phase enthält einen Job, der ein einfaches Skript ausführt.",[109,445,60],{"id":446},"beispiele-für-die-cicd-konfiguration",[12,448,449],{},"Sehen wir uns einige realistischere Beispiele an.",[12,451,452],{},[97,453,454],{},"Erstellen und Bereitstellen einer Node.js-Anwendung",[12,456,457,458,463,464,469],{},"Die folgende Pipelinedefinition beschreibt die Verwendung von npm, um eine Node.js-Anwendung zu erstellen und zu testen, und ",[16,459,462],{"href":460,"rel":461},"https://docs.gitlab.com/ci/examples/deployment/",[],"dpl (nur in englischer Sprache verfügbar)",", um die Anwendung in Heroku bereitzustellen. In der Bereitstellungsphase der Pipeline werden die ",[16,465,468],{"href":466,"rel":467},"https://docs.gitlab.com/ci/variables/",[],"GitLab-CI/CD-Variablen (nur in englischer Sprache verfügbar)"," verwendet, mit denen Entwickler(innen) vertrauliche Informationen (z. B. Zugangsdaten) speichern und sicher in CI/CD-Prozessen verwenden können. In diesem Beispiel wird ein API-Schlüssel für die Bereitstellung in Heroku unter dem variablen Schlüsselnamen '$HEROKU_API_KEY` gespeichert, den das dpl-Tool verwendet.",[253,471,473],{"className":255,"code":472,"language":257,"meta":258,"style":258},"\nstages:\n  - build\n  - test\n  - deploy\n\nbuild:\n  stage: build\n  image: node:latest\n  script:\n    - npm install\n    - npm run build\n\ntest:\n  stage: test\n  image: node:latest\n  script:\n    - npm run test\n\ndeploy:\n  stage: deploy\n  image: ruby:latest\n  script:\n    - gem install dpl\n    - dpl --provider=heroku --app=$HEROKU_APP_NAME --api-key=$HEROKU_API_KEY\n\n",[193,474,475,479,485,491,497,503,507,514,522,532,538,545,552,556,563,571,579,585,592,596,603,611,620,627,635],{"__ignoreMap":258},[262,476,477],{"class":264,"line":265},[262,478,269],{"emptyLinePlaceholder":268},[262,480,481,483],{"class":264,"line":272},[262,482,276],{"class":275},[262,484,280],{"class":279},[262,486,487,489],{"class":264,"line":283},[262,488,286],{"class":279},[262,490,290],{"class":289},[262,492,493,495],{"class":264,"line":293},[262,494,286],{"class":279},[262,496,298],{"class":289},[262,498,499,501],{"class":264,"line":301},[262,500,286],{"class":279},[262,502,306],{"class":289},[262,504,505],{"class":264,"line":309},[262,506,269],{"emptyLinePlaceholder":268},[262,508,509,512],{"class":264,"line":314},[262,510,511],{"class":275},"build",[262,513,280],{"class":279},[262,515,516,518,520],{"class":264,"line":322},[262,517,325],{"class":275},[262,519,328],{"class":279},[262,521,290],{"class":289},[262,523,524,527,529],{"class":264,"line":333},[262,525,526],{"class":275},"  image",[262,528,328],{"class":279},[262,530,531],{"class":289},"node:latest\n",[262,533,534,536],{"class":264,"line":341},[262,535,336],{"class":275},[262,537,280],{"class":279},[262,539,540,542],{"class":264,"line":350},[262,541,344],{"class":279},[262,543,544],{"class":289},"npm install\n",[262,546,547,549],{"class":264,"line":355},[262,548,344],{"class":279},[262,550,551],{"class":289},"npm run build\n",[262,553,554],{"class":264,"line":363},[262,555,269],{"emptyLinePlaceholder":268},[262,557,558,561],{"class":264,"line":372},[262,559,560],{"class":275},"test",[262,562,280],{"class":279},[262,564,565,567,569],{"class":264,"line":379},[262,566,325],{"class":275},[262,568,328],{"class":279},[262,570,298],{"class":289},[262,572,573,575,577],{"class":264,"line":387},[262,574,526],{"class":275},[262,576,328],{"class":279},[262,578,531],{"class":289},[262,580,581,583],{"class":264,"line":392},[262,582,336],{"class":275},[262,584,280],{"class":279},[262,586,587,589],{"class":264,"line":400},[262,588,344],{"class":279},[262,590,591],{"class":289},"npm run test\n",[262,593,594],{"class":264,"line":409},[262,595,269],{"emptyLinePlaceholder":268},[262,597,598,601],{"class":264,"line":416},[262,599,600],{"class":275},"deploy",[262,602,280],{"class":279},[262,604,605,607,609],{"class":264,"line":424},[262,606,325],{"class":275},[262,608,328],{"class":279},[262,610,306],{"class":289},[262,612,613,615,617],{"class":264,"line":432},[262,614,526],{"class":275},[262,616,328],{"class":279},[262,618,619],{"class":289},"ruby:latest\n",[262,621,623,625],{"class":264,"line":622},23,[262,624,336],{"class":275},[262,626,280],{"class":279},[262,628,630,632],{"class":264,"line":629},24,[262,631,344],{"class":279},[262,633,634],{"class":289},"gem install dpl\n",[262,636,638,640],{"class":264,"line":637},25,[262,639,344],{"class":279},[262,641,642],{"class":289},"dpl --provider=heroku --app=$HEROKU_APP_NAME --api-key=$HEROKU_API_KEY\n",[12,644,645],{},[97,646,647],{},"Bereitstellung in verschiedenen Umgebungen (Staging und Produktivumgebung)",[12,649,650,651,656],{},"GitLab bietet auch ",[16,652,655],{"href":653,"rel":654},"https://docs.gitlab.com/ci/environments/",[],"Umgebungen (nur in englischer Sprache verfügbar)"," mit CI/CD. Mit dieser Funktion können Benutzer(innen) die Bereitstellung von CI/CD auf Infrastrukturziele verfolgen. Im folgenden Beispiel fügt die Pipeline Phasen mit einer Umgebungseigenschaft für eine Staging- und eine Produktivumgebung hinzu. Während die Phase „deploy_staging“ ihr Skript immer ausführt, erfordert die Phase „deploy_production“ eine manuelle Genehmigung, um eine versehentliche Bereitstellung in der Produktionsumgebung zu verhindern.",[253,658,660],{"className":255,"code":659,"language":257,"meta":258,"style":258},"\nstages:\n  - build\n  - test\n  - deploy_staging\n  - deploy_production\n\nbuild:\n  # ...\n\ntest:\n  # ...\n\ndeploy_staging:\n  stage: deploy_staging\n  script:\n    - echo \"Deploying to staging...\"\n  environment:\n    name: staging\n\ndeploy_production:\n  stage: deploy_production\n  script:\n    - echo \"Deploying to production...\"\n  environment:\n    name: production\n  when: manual  # Requires manual approval\n\n",[193,661,662,666,672,678,684,691,698,702,708,714,718,724,728,732,739,747,753,760,766,775,779,786,794,800,806,812,821],{"__ignoreMap":258},[262,663,664],{"class":264,"line":265},[262,665,269],{"emptyLinePlaceholder":268},[262,667,668,670],{"class":264,"line":272},[262,669,276],{"class":275},[262,671,280],{"class":279},[262,673,674,676],{"class":264,"line":283},[262,675,286],{"class":279},[262,677,290],{"class":289},[262,679,680,682],{"class":264,"line":293},[262,681,286],{"class":279},[262,683,298],{"class":289},[262,685,686,688],{"class":264,"line":301},[262,687,286],{"class":279},[262,689,690],{"class":289},"deploy_staging\n",[262,692,693,695],{"class":264,"line":309},[262,694,286],{"class":279},[262,696,697],{"class":289},"deploy_production\n",[262,699,700],{"class":264,"line":314},[262,701,269],{"emptyLinePlaceholder":268},[262,703,704,706],{"class":264,"line":322},[262,705,511],{"class":275},[262,707,280],{"class":279},[262,709,710],{"class":264,"line":333},[262,711,713],{"class":712},"sAwPA","  # ...\n",[262,715,716],{"class":264,"line":341},[262,717,269],{"emptyLinePlaceholder":268},[262,719,720,722],{"class":264,"line":350},[262,721,560],{"class":275},[262,723,280],{"class":279},[262,725,726],{"class":264,"line":355},[262,727,713],{"class":712},[262,729,730],{"class":264,"line":363},[262,731,269],{"emptyLinePlaceholder":268},[262,733,734,737],{"class":264,"line":372},[262,735,736],{"class":275},"deploy_staging",[262,738,280],{"class":279},[262,740,741,743,745],{"class":264,"line":379},[262,742,325],{"class":275},[262,744,328],{"class":279},[262,746,690],{"class":289},[262,748,749,751],{"class":264,"line":387},[262,750,336],{"class":275},[262,752,280],{"class":279},[262,754,755,757],{"class":264,"line":392},[262,756,344],{"class":279},[262,758,759],{"class":289},"echo \"Deploying to staging...\"\n",[262,761,762,764],{"class":264,"line":400},[262,763,427],{"class":275},[262,765,280],{"class":279},[262,767,768,770,772],{"class":264,"line":409},[262,769,435],{"class":275},[262,771,328],{"class":279},[262,773,774],{"class":289},"staging\n",[262,776,777],{"class":264,"line":416},[262,778,269],{"emptyLinePlaceholder":268},[262,780,781,784],{"class":264,"line":424},[262,782,783],{"class":275},"deploy_production",[262,785,280],{"class":279},[262,787,788,790,792],{"class":264,"line":432},[262,789,325],{"class":275},[262,791,328],{"class":279},[262,793,697],{"class":289},[262,795,796,798],{"class":264,"line":622},[262,797,336],{"class":275},[262,799,280],{"class":279},[262,801,802,804],{"class":264,"line":629},[262,803,344],{"class":279},[262,805,421],{"class":289},[262,807,808,810],{"class":264,"line":637},[262,809,427],{"class":275},[262,811,280],{"class":279},[262,813,815,817,819],{"class":264,"line":814},26,[262,816,435],{"class":275},[262,818,328],{"class":279},[262,820,440],{"class":289},[262,822,824,827,829,832],{"class":264,"line":823},27,[262,825,826],{"class":275},"  when",[262,828,328],{"class":279},[262,830,831],{"class":289},"manual",[262,833,834],{"class":712},"  # Requires manual approval\n",[109,836,66],{"id":837},"gitlab-auto-devops",[12,839,840,845],{},[16,841,844],{"href":842,"rel":843},"https://docs.gitlab.com/topics/autodevops/",[],"GitLab Auto-DevOps (nur in englischer Sprache verfügbar)"," vereinfacht CI/CD, indem es eine vordefinierte Konfiguration bereitstellt, mit der deine Anwendungen automatisch erstellt, getestet und bereitgestellt werden. Es nutzt bewährte Methoden und Branchenstandards, um deinen Workflow zu optimieren.",[12,847,848],{},"So aktivierst du Auto-DevOps:",[850,851,852,859],"ol",{},[31,853,854,855,858],{},"Gehe in deinem Projekt zu ",[97,856,857],{},"Einstellungen > CI/CD > Allgemeine Pipelines",".",[31,860,861,862,858],{},"Aktiviere die Option ",[97,863,864],{},"Auto-DevOps",[12,866,867,868,870],{},"Auto-DevOps erkennt automatisch die Sprache und das Framework deines Projekts und konfiguriert die erforderlichen Build-, Test- und Bereitstellungsphasen. Du musst nicht einmal eine ",[193,869,195],{},"-Datei erstellen.",[109,872,72],{"id":873},"cicd-katalog",[12,875,876,877,882,883,887],{},"Der CI/CD-Katalog (nur in englischer Sprache verfügbar) ist eine Liste von Projekten mit veröffentlichten ",[16,878,881],{"href":879,"rel":880},"https://docs.gitlab.com/ci/components/",[],"CI/CD-Komponenten (nur in englischer Sprache verfügbar)",", die du zur Erweiterung deines CI/CD-Workflows nutzen kannst. Jeder kann ein Komponentenprojekt erstellen und es zum CI/CD-Katalog hinzufügen oder zu einem bestehenden Projekt beitragen, um die verfügbaren Komponenten zu verbessern. Die veröffentlichten Komponenten findest du im ",[16,884,72],{"href":885,"rel":886},"https://gitlab.com/explore/catalog",[]," auf GitLab.com.",[92,889,890],{},[12,891,892],{},"Tutorial: So richtest du deine erste GitLab-CI/CD-Komponente ein (nur in englischer Sprache verfügbar)",[109,894,78],{"id":895},"ci-vorlagen",[12,897,898,899,904],{},"Du kannst auch deine eigenen ",[16,900,903],{"href":901,"rel":902},"https://docs.gitlab.com/ci/examples/",[],"CI-Vorlagen (nur in englischer Sprache verfügbar)"," erstellen, um CI/CD-Konfigurationen zu standardisieren und über mehrere Projekte hinweg wiederzuverwenden. Das fördert die Konsistenz und reduziert doppelte Arbeit.",[12,906,907],{},"So erstellst du eine CI-Vorlage:",[850,909,910,916,919],{},[31,911,912,913,915],{},"Erstelle eine ",[193,914,195],{},"-Datei in einem eigenen Projekt oder Repository.",[31,917,918],{},"Definiere deine CI/CD-Konfiguration in der Vorlage.",[31,920,921,922,924,925,928],{},"Verwende in der ",[193,923,195],{},"-Datei deines Projekts das Schlüsselwort ",[193,926,927],{},"include",", um die Vorlage einzuschließen.",[23,930,84],{"id":931},"entwicklung-der-nächsten-generation",[12,933,934],{},"GitLab CI/CD ist ein leistungsstarkes Tool, das deinen Workflow bei der Entwicklung verbessern kann. Wenn du die Konzepte von CI/CD verstehst, deine Pipelines konfigurierst und Funktionen wie Auto-DevOps, den CI/CD-Katalog und CI-Vorlagen nutzt, kannst du deinen gesamten Software-Entwicklungsprozess automatisieren und schneller und effizienter hochwertige Software liefern.",[92,936,937],{},[12,938,939,940,945,946,951],{},"Willst du dein Wissen vertiefen? Registriere dich für die ",[16,941,944],{"href":942,"rel":943},"https://university.gitlab.com/",[],"englischsprachigen Kurse der GitLab University",". Du kannst auch sofort mit der ",[16,947,950],{"href":948,"rel":949},"https://about.gitlab.com/de-de/free-trial/?hosted=saas",[],"kostenlosen Testversion von GitLab Ultimate"," loslegen.",[23,953,955],{"id":954},"reihe-erste-schritte-mit-gitlab","Reihe „Erste Schritte mit GitLab“",[12,957,958],{},"Weitere Artikel in unserer Serie „Erste Schritte mit GitLab“:",[28,960,961,968,975,982,989],{},[31,962,963],{},[16,964,967],{"href":965,"rel":966},"https://about.gitlab.com/de-de/blog/getting-started-with-gitlab-how-to-manage-users/",[],"Benutzerverwaltung",[31,969,970],{},[16,971,974],{"href":972,"rel":973},"https://about.gitlab.com/de-de/blog/getting-started-with-gitlab-how-to-import-your-projects-to-gitlab/",[],"Projekte in GitLab importieren",[31,976,977],{},[16,978,981],{"href":979,"rel":980},"https://about.gitlab.com/de-de/blog/getting-started-with-gitlab-mastering-project-management/",[],"Projektmanagement",[31,983,984],{},[16,985,988],{"href":986,"rel":987},"https://about.gitlab.com/de-de/blog/getting-started-with-gitlab-working-with-ci-cd-variables/",[],"CI/CD-Variablen in GitLab",[31,990,991],{},[16,992,995],{"href":993,"rel":994},"https://about.gitlab.com/de-de/blog/automating-agile-workflows-with-the-gitlab-triage-gem/",[],"Automatisiere Agile-Workflows mit dem gem gitlab-triage",[997,998,999],"style",{},"html pre.shiki code .shJU0, html code.shiki .shJU0{--shiki-default:#22863A}html pre.shiki code .sgsFI, html code.shiki .sgsFI{--shiki-default:#24292E}html pre.shiki code .sYBdl, html code.shiki .sYBdl{--shiki-default:#032F62}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html pre.shiki code .sAwPA, html code.shiki .sAwPA{--shiki-default:#6A737D}",{"title":258,"searchDepth":272,"depth":272,"links":1001},[1002,1012,1013],{"id":25,"depth":272,"text":26,"children":1003},[1004,1005,1006,1007,1008,1009,1010,1011],{"id":111,"depth":283,"text":36},{"id":143,"depth":283,"text":42},{"id":187,"depth":283,"text":48},{"id":245,"depth":283,"text":54},{"id":446,"depth":283,"text":60},{"id":837,"depth":283,"text":66},{"id":873,"depth":283,"text":72},{"id":895,"depth":283,"text":78},{"id":931,"depth":272,"text":84},{"id":954,"depth":272,"text":955},"product","2025-04-25","In diesem Leitfaden für Einsteiger(innen) lernst du die Grundlagen der kontinuierlichen Integration und kontinuierlichen Lieferung kennen. Du erfährst, was CI/CD-Komponenten sind und wie du sie erstellst.","md",null,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659525/Blog/Hero%20Images/blog-getting-started-with-gitlab-banner-0497-option4-fy25.png",{},"/de-de/blog/getting-started-with-gitlab-understanding-ci-cd",{"title":5,"description":1023,"ogTitle":5,"ogDescription":1016,"noIndex":1024,"ogImage":1019,"ogUrl":1025,"ogSiteName":1026,"ogType":1027,"canonicalUrls":1025},"Lerne die Grundlagen von CI/CD mit GitLab: Pipelines, Jobs, Runner und Auto-DevOps – für schnellere, zuverlässigere Softwarelieferung.",false,"https://about.gitlab.com/blog/getting-started-with-gitlab-understanding-ci-cd","https://about.gitlab.com","article","getting-started-with-gitlab-understanding-ci-cd","de-de/blog/getting-started-with-gitlab-understanding-ci-cd",[1031,1032,1033,1034,1014,1035],"CI/CD","CI","CD","DevSecOps platform","tutorial","BlogPost","2025-06-02","jB7thU7UwXzKiejDbyKHICorwqJky_crGfT08z6s3pk",{"logo":1040,"freeTrial":1045,"sales":1050,"login":1055,"items":1060,"search":1387,"minimal":1421,"duo":1439,"switchNav":1448,"pricingDeployment":1459},{"config":1041},{"href":1042,"dataGaName":1043,"dataGaLocation":1044},"/de-de/","gitlab logo","header",{"text":1046,"config":1047},"Kostenlose Testversion anfordern",{"href":1048,"dataGaName":1049,"dataGaLocation":1044},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/de-de&glm_content=default-saas-trial/","free trial",{"text":1051,"config":1052},"Demo anfordern",{"href":1053,"dataGaName":1054,"dataGaLocation":1044},"/de-de/sales/?contact-topic=request-demo","sales",{"text":1056,"config":1057},"Anmelden",{"href":1058,"dataGaName":1059,"dataGaLocation":1044},"https://gitlab.com/users/sign_in/","sign in",[1061,1090,1191,1196,1309,1365],{"text":1062,"config":1063,"menu":1065},"Plattform",{"dataNavLevelOne":1064},"platform",{"type":1066,"columns":1067},"cards",[1068,1074,1082],{"title":1062,"description":1069,"link":1070},"Die intelligente Orchestrierungsplattform für DevSecOps",{"text":1071,"config":1072},"Die Plattform erkunden",{"href":1073,"dataGaName":1064,"dataGaLocation":1044},"/de-de/platform/",{"title":1075,"description":1076,"link":1077},"GitLab Duo Agent Platform","Agentische KI für den gesamten Software-Lebenszyklus",{"text":1078,"config":1079},"Lerne GitLab Duo kennen",{"href":1080,"dataGaName":1081,"dataGaLocation":1044},"/de-de/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":1083,"description":1084,"link":1085},"Warum GitLab?","Erfahre, warum sich Unternehmen für GitLab entscheiden",{"text":1086,"config":1087},"Mehr erfahren",{"href":1088,"dataGaName":1089,"dataGaLocation":1044},"/de-de/why-gitlab/","why gitlab",{"text":1091,"left":268,"config":1092,"menu":1094},"Produkt",{"dataNavLevelOne":1093},"solutions",{"type":1095,"link":1096,"columns":1100,"feature":1170},"lists",{"text":1097,"config":1098},"Alle Lösungen anzeigen",{"href":1099,"dataGaName":1093,"dataGaLocation":1044},"/de-de/solutions/",[1101,1125,1148],{"title":1102,"description":1103,"link":1104,"items":1109},"Automatisierung","CI/CD und Automatisierung zur Beschleunigung der Bereitstellung",{"config":1105},{"icon":1106,"href":1107,"dataGaName":1108,"dataGaLocation":1044},"AutomatedCodeAlt","/de-de/solutions/delivery-automation/","automated software delivery",[1110,1113,1116,1121],{"text":1031,"config":1111},{"href":1112,"dataGaLocation":1044,"dataGaName":1031},"/de-de/solutions/continuous-integration/",{"text":1075,"config":1114},{"href":1080,"dataGaLocation":1044,"dataGaName":1115},"gitlab duo agent platform - product menu",{"text":1117,"config":1118},"Quellcodeverwaltung",{"href":1119,"dataGaLocation":1044,"dataGaName":1120},"/de-de/solutions/source-code-management/","Source Code Management",{"text":1122,"config":1123},"Automatische Softwarebereitstellung",{"href":1107,"dataGaLocation":1044,"dataGaName":1124},"Automated software delivery",{"title":1126,"description":1127,"link":1128,"items":1133},"Sicherheit","Entwickle Code schneller ohne Abstriche bei der Sicherheit",{"config":1129},{"href":1130,"dataGaName":1131,"dataGaLocation":1044,"icon":1132},"/de-de/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[1134,1138,1143],{"text":1135,"config":1136},"Anwendungssicherheitstests",{"href":1130,"dataGaName":1137,"dataGaLocation":1044},"Application security testing",{"text":1139,"config":1140},"Schutz der Software-Lieferkette",{"href":1141,"dataGaLocation":1044,"dataGaName":1142},"/de-de/solutions/supply-chain/","Software supply chain security",{"text":1144,"config":1145},"Software-Compliance",{"href":1146,"dataGaName":1147,"dataGaLocation":1044},"/de-de/solutions/software-compliance/","software compliance",{"title":1149,"link":1150,"items":1155},"Messung",{"config":1151},{"icon":1152,"href":1153,"dataGaName":1154,"dataGaLocation":1044},"DigitalTransformation","/de-de/solutions/visibility-measurement/","visibility and measurement",[1156,1160,1165],{"text":1157,"config":1158},"Sichtbarkeit und Messung",{"href":1153,"dataGaLocation":1044,"dataGaName":1159},"Visibility and Measurement",{"text":1161,"config":1162},"Wertstrommanagement",{"href":1163,"dataGaLocation":1044,"dataGaName":1164},"/de-de/solutions/value-stream-management/","Value Stream Management",{"text":1166,"config":1167},"Analysen und Einblicke",{"href":1168,"dataGaLocation":1044,"dataGaName":1169},"/de-de/solutions/analytics-and-insights/","Analytics and insights",{"title":1171,"type":1095,"items":1172},"GitLab für",[1173,1179,1185],{"text":1174,"config":1175},"Enterprise",{"icon":1176,"href":1177,"dataGaLocation":1044,"dataGaName":1178},"Building","/de-de/enterprise/","enterprise",{"text":1180,"config":1181},"Kleinunternehmen",{"icon":1182,"href":1183,"dataGaLocation":1044,"dataGaName":1184},"Work","/de-de/small-business/","small business",{"text":1186,"config":1187},"Öffentlicher Sektor",{"icon":1188,"href":1189,"dataGaLocation":1044,"dataGaName":1190},"Organization","/de-de/solutions/public-sector/","public sector",{"text":1192,"config":1193},"Preise",{"href":1194,"dataGaName":1195,"dataGaLocation":1044,"dataNavLevelOne":1195},"/de-de/pricing/","pricing",{"text":1197,"config":1198,"menu":1200},"Ressourcen",{"dataNavLevelOne":1199},"resources",{"type":1095,"link":1201,"columns":1205,"feature":1298},{"text":1202,"config":1203},"Alle Ressourcen anzeigen",{"href":1204,"dataGaName":1199,"dataGaLocation":1044},"/de-de/resources/",[1206,1238,1265],{"title":1207,"items":1208},"Erste Schritte",[1209,1214,1219,1223,1228,1233],{"text":1210,"config":1211},"Installieren",{"href":1212,"dataGaName":1213,"dataGaLocation":1044},"/de-de/install/","install",{"text":1215,"config":1216},"Kurzanleitungen",{"href":1217,"dataGaName":1218,"dataGaLocation":1044},"/de-de/get-started/","quick setup checklists",{"text":1220,"config":1221},"Lernen",{"href":942,"dataGaLocation":1044,"dataGaName":1222},"learn",{"text":1224,"config":1225},"Produktdokumentation",{"href":1226,"dataGaName":1227,"dataGaLocation":1044},"https://docs.gitlab.com/","product documentation",{"text":1229,"config":1230},"Best-Practice-Videos",{"href":1231,"dataGaName":1232,"dataGaLocation":1044},"/de-de/getting-started-videos/","best practice videos",{"text":1234,"config":1235},"Integrationen",{"href":1236,"dataGaName":1237,"dataGaLocation":1044},"/de-de/integrations/","integrations",{"title":1239,"items":1240},"Entdecken",[1241,1246,1251,1256,1260],{"text":1242,"config":1243},"Kundenerfolge",{"href":1244,"dataGaName":1245,"dataGaLocation":1044},"/de-de/customers/","customer success stories",{"text":1247,"config":1248},"Blog",{"href":1249,"dataGaName":1250,"dataGaLocation":1044},"/de-de/blog/","blog",{"text":1252,"config":1253},"Demo-Hub",{"href":1254,"dataGaName":1255,"dataGaLocation":1044},"/de-de/demo-hub/","demo hub",{"text":1257,"config":1258},"The Source",{"href":1259,"dataGaName":1250,"dataGaLocation":1044},"/de-de/the-source/",{"text":1261,"config":1262},"Remote",{"href":1263,"dataGaName":1264,"dataGaLocation":1044},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":1266,"items":1267},"Vernetzen",[1268,1273,1278,1283,1288,1293],{"text":1269,"config":1270},"GitLab-Services",{"href":1271,"dataGaName":1272,"dataGaLocation":1044},"/de-de/services/","services",{"text":1274,"config":1275},"Beitragen",{"href":1276,"dataGaName":1277,"dataGaLocation":1044},"https://contributors.gitlab.com","contribute",{"text":1279,"config":1280},"Community",{"href":1281,"dataGaName":1282,"dataGaLocation":1044},"/community/","community",{"text":1284,"config":1285},"Forum",{"href":1286,"dataGaName":1287,"dataGaLocation":1044},"https://forum.gitlab.com/","forum",{"text":1289,"config":1290},"Veranstaltungen",{"href":1291,"dataGaName":1292,"dataGaLocation":1044},"/events/","events",{"text":1294,"config":1295},"Partner",{"href":1296,"dataGaName":1297,"dataGaLocation":1044},"/de-de/partners/","partners",{"config":1299,"title":1302,"text":1303,"link":1304},{"background":1300,"textColor":1301},"url('https://res.cloudinary.com/about-gitlab-com/image/upload/v1777322348/qpq8yrgn8knii57omj0c.png')","#000","Neues bei GitLab","Über die neuesten Funktionen und Verbesserungen auf dem Laufenden bleiben.",{"text":1305,"config":1306},"Aktuelle Nachrichten",{"href":1307,"dataGaName":1308,"dataGaLocation":1044},"/de-de/whats-new/","whats new",{"text":1310,"config":1311,"menu":1313},"Unternehmen",{"dataNavLevelOne":1312},"company",{"type":1095,"columns":1314},[1315],{"items":1316},[1317,1322,1328,1330,1335,1340,1345,1350,1355,1360],{"text":1318,"config":1319},"Über",{"href":1320,"dataGaName":1321,"dataGaLocation":1044},"/de-de/company/","about",{"text":1323,"config":1324,"footerGa":1327},"Karriere",{"href":1325,"dataGaName":1326,"dataGaLocation":1044},"/jobs/","jobs",{"dataGaName":1326},{"text":1289,"config":1329},{"href":1291,"dataGaName":1292,"dataGaLocation":1044},{"text":1331,"config":1332},"Geschäftsführung",{"href":1333,"dataGaName":1334,"dataGaLocation":1044},"/company/team/e-group/","leadership",{"text":1336,"config":1337},"Handbuch",{"href":1338,"dataGaName":1339,"dataGaLocation":1044},"https://handbook.gitlab.com/","handbook",{"text":1341,"config":1342},"Investor Relations",{"href":1343,"dataGaName":1344,"dataGaLocation":1044},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":1346,"config":1347},"Trust Center",{"href":1348,"dataGaName":1349,"dataGaLocation":1044},"/de-de/security/","trust center",{"text":1351,"config":1352},"AI Transparency Center",{"href":1353,"dataGaName":1354,"dataGaLocation":1044},"/de-de/ai-transparency-center/","ai transparency center",{"text":1356,"config":1357},"Newsletter",{"href":1358,"dataGaName":1359,"dataGaLocation":1044},"/company/contact/#contact-forms","newsletter",{"text":1361,"config":1362},"Presse",{"href":1363,"dataGaName":1364,"dataGaLocation":1044},"/press/","press",{"text":1366,"config":1367,"menu":1368},"Kontakt",{"dataNavLevelOne":1312},{"type":1095,"columns":1369},[1370],{"items":1371},[1372,1377,1382],{"text":1373,"config":1374},"Vertrieb kontaktieren",{"href":1375,"dataGaName":1376,"dataGaLocation":1044},"/de-de/sales/","talk to sales",{"text":1378,"config":1379},"Support-Portal",{"href":1380,"dataGaName":1381,"dataGaLocation":1044},"https://support.gitlab.com/hc/en-us","support portal",{"text":1383,"config":1384},"Kundenportal",{"href":1385,"dataGaName":1386,"dataGaLocation":1044},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":1388,"login":1389,"suggestions":1396},"Schließen",{"text":1390,"link":1391},"Um Repositorys und Projekte zu durchsuchen, melde dich an bei",{"text":1392,"config":1393},"gitlab.com",{"href":1058,"dataGaName":1394,"dataGaLocation":1395},"search login","search",{"text":1397,"default":1398},"Vorschläge",[1399,1401,1406,1408,1413,1418],{"text":1075,"config":1400},{"href":1080,"dataGaName":1075,"dataGaLocation":1395},{"text":1402,"config":1403},"Codevorschläge (KI)",{"href":1404,"dataGaName":1405,"dataGaLocation":1395},"/de-de/solutions/code-suggestions/","Code Suggestions (AI)",{"text":1031,"config":1407},{"href":1112,"dataGaName":1031,"dataGaLocation":1395},{"text":1409,"config":1410},"GitLab auf AWS",{"href":1411,"dataGaName":1412,"dataGaLocation":1395},"/de-de/partners/technology-partners/aws/","GitLab on AWS",{"text":1414,"config":1415},"GitLab auf Google Cloud",{"href":1416,"dataGaName":1417,"dataGaLocation":1395},"/de-de/partners/technology-partners/google-cloud-platform/","GitLab on Google Cloud",{"text":1083,"config":1419},{"href":1088,"dataGaName":1420,"dataGaLocation":1395},"Why GitLab?",{"freeTrial":1422,"mobileIcon":1427,"desktopIcon":1432,"secondaryButton":1435},{"text":1423,"config":1424},"Kostenlos testen",{"href":1425,"dataGaName":1049,"dataGaLocation":1426},"https://gitlab.com/-/trials/new/","nav",{"altText":1428,"config":1429},"GitLab-Symbol",{"src":1430,"dataGaName":1431,"dataGaLocation":1426},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":1428,"config":1433},{"src":1434,"dataGaName":1431,"dataGaLocation":1426},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":1207,"config":1436},{"href":1437,"dataGaName":1438,"dataGaLocation":1426},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/de-de/get-started/","get started",{"freeTrial":1440,"mobileIcon":1444,"desktopIcon":1446},{"text":1441,"config":1442},"Mehr über GitLab Duo erfahren",{"href":1080,"dataGaName":1443,"dataGaLocation":1426},"gitlab duo",{"altText":1428,"config":1445},{"src":1430,"dataGaName":1431,"dataGaLocation":1426},{"altText":1428,"config":1447},{"src":1434,"dataGaName":1431,"dataGaLocation":1426},{"button":1449,"mobileIcon":1454,"desktopIcon":1456},{"text":1450,"config":1451},"/Option",{"href":1452,"dataGaName":1453,"dataGaLocation":1426},"#contact","switch",{"altText":1428,"config":1455},{"src":1430,"dataGaName":1431,"dataGaLocation":1426},{"altText":1428,"config":1457},{"src":1458,"dataGaName":1431,"dataGaLocation":1426},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":1460,"mobileIcon":1465,"desktopIcon":1467},{"text":1461,"config":1462},"Zurück zur Preisübersicht",{"href":1194,"dataGaName":1463,"dataGaLocation":1426,"icon":1464},"back to pricing","GoBack",{"altText":1428,"config":1466},{"src":1430,"dataGaName":1431,"dataGaLocation":1426},{"altText":1428,"config":1468},{"src":1434,"dataGaName":1431,"dataGaLocation":1426},{"title":1470,"button":1471,"config":1475},"GitLab Orbit ist da: die Kontextebene für KI-Agenten",{"text":1086,"config":1472},{"href":1473,"dataGaName":1474,"dataGaLocation":1044},"/de-de/gitlab-orbit/","orbit",{"layout":1476,"disabled":1024},"release",{"data":1478},{"text":1479,"source":1480,"edit":1486,"contribute":1491,"config":1496,"items":1501,"minimal":1707},"Git ist eine Marke von Software Freedom Conservancy und unsere Verwendung von „GitLab“ erfolgt unter Lizenz.",{"text":1481,"config":1482},"Quelltext der Seite anzeigen",{"href":1483,"dataGaName":1484,"dataGaLocation":1485},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":1487,"config":1488},"Diese Seite bearbeiten",{"href":1489,"dataGaName":1490,"dataGaLocation":1485},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":1492,"config":1493},"Beteilige dich",{"href":1494,"dataGaName":1495,"dataGaLocation":1485},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":1497,"facebook":1498,"youtube":1499,"linkedin":1500},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[1502,1547,1600,1642,1674],{"title":1192,"links":1503,"subMenu":1518},[1504,1508,1513],{"text":1505,"config":1506},"Tarife anzeigen",{"href":1194,"dataGaName":1507,"dataGaLocation":1485},"view plans",{"text":1509,"config":1510},"Vorteile von Premium",{"href":1511,"dataGaName":1512,"dataGaLocation":1485},"/de-de/pricing/premium/","why premium",{"text":1514,"config":1515},"Vorteile von Ultimate",{"href":1516,"dataGaName":1517,"dataGaLocation":1485},"/de-de/pricing/ultimate/","why ultimate",[1519],{"title":1366,"links":1520},[1521,1523,1525,1527,1532,1537,1542],{"text":1373,"config":1522},{"href":1375,"dataGaName":1054,"dataGaLocation":1485},{"text":1378,"config":1524},{"href":1380,"dataGaName":1381,"dataGaLocation":1485},{"text":1383,"config":1526},{"href":1385,"dataGaName":1386,"dataGaLocation":1485},{"text":1528,"config":1529},"Status",{"href":1530,"dataGaName":1531,"dataGaLocation":1485},"https://status.gitlab.com/","status",{"text":1533,"config":1534},"Nutzungsbedingungen",{"href":1535,"dataGaName":1536,"dataGaLocation":1485},"/terms/","terms of use",{"text":1538,"config":1539},"Datenschutzerklärung",{"href":1540,"dataGaName":1541,"dataGaLocation":1485},"/de-de/privacy/","privacy statement",{"text":1543,"config":1544},"Cookie-Einstellungen",{"dataGaName":1545,"dataGaLocation":1485,"id":1546,"isOneTrustButton":268},"cookie preferences","ot-sdk-btn",{"title":1091,"links":1548,"subMenu":1557},[1549,1553],{"text":1550,"config":1551},"DevSecOps-Plattform",{"href":1073,"dataGaName":1552,"dataGaLocation":1485},"devsecops platform",{"text":1554,"config":1555},"KI-unterstützte Entwicklung",{"href":1080,"dataGaName":1556,"dataGaLocation":1485},"ai-assisted development",[1558],{"title":1559,"links":1560},"Themen",[1561,1565,1570,1575,1580,1585,1590,1595],{"text":1031,"config":1562},{"href":1563,"dataGaName":1564,"dataGaLocation":1485},"/de-de/topics/ci-cd/","cicd",{"text":1566,"config":1567},"GitOps",{"href":1568,"dataGaName":1569,"dataGaLocation":1485},"/de-de/topics/gitops/","gitops",{"text":1571,"config":1572},"DevOps",{"href":1573,"dataGaName":1574,"dataGaLocation":1485},"/de-de/topics/devops/","devops",{"text":1576,"config":1577},"Versionskontrolle",{"href":1578,"dataGaName":1579,"dataGaLocation":1485},"/de-de/topics/version-control/","version control",{"text":1581,"config":1582},"DevSecOps",{"href":1583,"dataGaName":1584,"dataGaLocation":1485},"/de-de/topics/devsecops/","devsecops",{"text":1586,"config":1587},"Cloud-nativ",{"href":1588,"dataGaName":1589,"dataGaLocation":1485},"/de-de/topics/cloud-native/","cloud native",{"text":1591,"config":1592},"KI für das Programmieren",{"href":1593,"dataGaName":1594,"dataGaLocation":1485},"/de-de/topics/devops/ai-for-coding/","ai for coding",{"text":1596,"config":1597},"Agentische KI",{"href":1598,"dataGaName":1599,"dataGaLocation":1485},"/de-de/topics/agentic-ai/","agentic ai",{"title":1601,"links":1602},"Lösungen",[1603,1606,1608,1613,1617,1620,1623,1626,1628,1630,1632,1637],{"text":1135,"config":1604},{"href":1130,"dataGaName":1605,"dataGaLocation":1485},"Application Security Testing",{"text":1122,"config":1607},{"href":1107,"dataGaName":1108,"dataGaLocation":1485},{"text":1609,"config":1610},"Agile Entwicklung",{"href":1611,"dataGaName":1612,"dataGaLocation":1485},"/de-de/solutions/agile-delivery/","agile delivery",{"text":1614,"config":1615},"SCM",{"href":1119,"dataGaName":1616,"dataGaLocation":1485},"source code management",{"text":1031,"config":1618},{"href":1112,"dataGaName":1619,"dataGaLocation":1485},"continuous integration & delivery",{"text":1161,"config":1621},{"href":1163,"dataGaName":1622,"dataGaLocation":1485},"value stream management",{"text":1566,"config":1624},{"href":1625,"dataGaName":1569,"dataGaLocation":1485},"/de-de/solutions/gitops/",{"text":1174,"config":1627},{"href":1177,"dataGaName":1178,"dataGaLocation":1485},{"text":1180,"config":1629},{"href":1183,"dataGaName":1184,"dataGaLocation":1485},{"text":1186,"config":1631},{"href":1189,"dataGaName":1190,"dataGaLocation":1485},{"text":1633,"config":1634},"Bildungswesen",{"href":1635,"dataGaName":1636,"dataGaLocation":1485},"/de-de/solutions/education/","education",{"text":1638,"config":1639},"Finanzdienstleistungen",{"href":1640,"dataGaName":1641,"dataGaLocation":1485},"/de-de/solutions/finance/","financial services",{"title":1197,"links":1643},[1644,1646,1648,1650,1653,1655,1658,1660,1662,1664,1666,1668,1670,1672],{"text":1210,"config":1645},{"href":1212,"dataGaName":1213,"dataGaLocation":1485},{"text":1215,"config":1647},{"href":1217,"dataGaName":1218,"dataGaLocation":1485},{"text":1220,"config":1649},{"href":942,"dataGaName":1222,"dataGaLocation":1485},{"text":1224,"config":1651},{"href":1226,"dataGaName":1652,"dataGaLocation":1485},"docs",{"text":1247,"config":1654},{"href":1249,"dataGaName":1250,"dataGaLocation":1485},{"text":1656,"config":1657},"Neuerungen",{"href":1307,"dataGaName":1308,"dataGaLocation":1485},{"text":1242,"config":1659},{"href":1244,"dataGaName":1245,"dataGaLocation":1485},{"text":1261,"config":1661},{"href":1263,"dataGaName":1264,"dataGaLocation":1485},{"text":1269,"config":1663},{"href":1271,"dataGaName":1272,"dataGaLocation":1485},{"text":1274,"config":1665},{"href":1276,"dataGaName":1277,"dataGaLocation":1485},{"text":1279,"config":1667},{"href":1281,"dataGaName":1282,"dataGaLocation":1485},{"text":1284,"config":1669},{"href":1286,"dataGaName":1287,"dataGaLocation":1485},{"text":1289,"config":1671},{"href":1291,"dataGaName":1292,"dataGaLocation":1485},{"text":1294,"config":1673},{"href":1296,"dataGaName":1297,"dataGaLocation":1485},{"title":1310,"links":1675},[1676,1678,1680,1682,1684,1686,1691,1696,1698,1700,1702],{"text":1318,"config":1677},{"href":1320,"dataGaName":1312,"dataGaLocation":1485},{"text":1323,"config":1679},{"href":1325,"dataGaName":1326,"dataGaLocation":1485},{"text":1331,"config":1681},{"href":1333,"dataGaName":1334,"dataGaLocation":1485},{"text":1336,"config":1683},{"href":1338,"dataGaName":1339,"dataGaLocation":1485},{"text":1341,"config":1685},{"href":1343,"dataGaName":1344,"dataGaLocation":1485},{"text":1687,"config":1688},"Nachhaltigkeit",{"href":1689,"dataGaName":1690,"dataGaLocation":1485},"/sustainability/","Sustainability",{"text":1692,"config":1693},"Vielfalt, Inklusion und Zugehörigkeit",{"href":1694,"dataGaName":1695,"dataGaLocation":1485},"/de-de/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":1346,"config":1697},{"href":1348,"dataGaName":1349,"dataGaLocation":1485},{"text":1356,"config":1699},{"href":1358,"dataGaName":1359,"dataGaLocation":1485},{"text":1361,"config":1701},{"href":1363,"dataGaName":1364,"dataGaLocation":1485},{"text":1703,"config":1704},"Transparenzerklärung zu moderner Sklaverei",{"href":1705,"dataGaName":1706,"dataGaLocation":1485},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":1708},[1709,1712,1715],{"text":1710,"config":1711},"Terms",{"href":1535,"dataGaName":1536,"dataGaLocation":1485},{"text":1713,"config":1714},"Cookies",{"dataGaName":1545,"dataGaLocation":1485,"id":1546,"isOneTrustButton":268},{"text":1716,"config":1717},"Datenschutz",{"href":1540,"dataGaName":1541,"dataGaLocation":1485},[1719],{"id":1720,"title":1721,"body":1018,"config":1722,"content":1724,"description":1018,"extension":1727,"meta":1728,"navigation":268,"path":1729,"seo":1730,"stem":1731,"__hash__":1732},"blogAuthors/en-us/blog/authors/gitlab.yml","Gitlab",{"template":1723},"BlogAuthor",{"name":7,"config":1725},{"headshot":1726,"ctfId":7},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659488/Blog/Author%20Headshots/gitlab-logo-extra-whitespace.png","yml",{},"/en-us/blog/authors/gitlab",{},"en-us/blog/authors/gitlab","XCBKIcPoCs6zi2oHG7o-bAp52Jhaw8_zGhIJ2jNrEjU",[1734,1742,1749],{"title":1735,"description":1736,"heroImage":1737,"category":1014,"date":1738,"authors":1739,"slug":1741,"externalUrl":1018},"DevOps Stack aufbauen: Häufige Fehler und Best Practices für moderne Toolchains","Ein DevOps Stack sollte mehr sein als eine Tool-Sammlung. Lerne, wie Teams häufige Fehler vermeiden und mit GitLab Toolchain-Komplexität reduzieren.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1775561395/bhe1as7ttjvzltxwgo5m.png","2026-08-07",[1740],"GitLab Germany Team","devops-stack",{"title":1743,"description":1744,"heroImage":1745,"category":1014,"date":1746,"authors":1747,"slug":1748,"externalUrl":1018},"Sechs Möglichkeiten, die DevOps Kosten zu senken, zu sparen und zu optimieren","Wir zeigen dir sechs Möglichkeiten, wie du deine DevOps Kosten senken kannst.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1775486753/cswmwtygkgkbdsibo09v.png","2026-07-20",[1740],"reduce-devops-costs",{"title":1750,"description":1751,"heroImage":1752,"category":1014,"date":1746,"authors":1753,"slug":1755,"externalUrl":1018},"Work Items automatisch zuweisen mit dem Trigger \"Work item created\"","Eine Schritt-für-Schritt-Anleitung zum neuen Trigger, der Work Items automatisch zuweist – skalierbare Triage ohne manuelles Eingreifen.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1773866173/vte9qh8rriznvyclhkes.png",[1754],"Cesar Saavedra","how-to-use-a-work-item-created-trigger",{"promotions":1757},[1758,1772,1783,1795],{"id":1759,"categories":1760,"header":1762,"text":1763,"button":1764,"image":1769},"ai-modernization",[1761],"ai","Hält KI, was uns versprochen wurde?","Das Quiz dauert maximal 5 Minuten.",{"text":1765,"config":1766},"Ermittle deinen KI-Reifegrad",{"href":1767,"dataGaName":1768,"dataGaLocation":1250},"/de-de/assessments/ai-modernization-assessment/","modernization assessment",{"config":1770},{"src":1771},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":1773,"categories":1774,"header":1775,"text":1763,"button":1776,"image":1780},"devops-modernization",[1014,1584],"Verwaltest du Tool-Chaos oder stellst du Innovationen bereit?",{"text":1777,"config":1778},"Ermittle deinen DevOps-Reifegrad",{"href":1779,"dataGaName":1768,"dataGaLocation":1250},"/de-de/assessments/devops-modernization-assessment/",{"config":1781},{"src":1782},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":1784,"categories":1785,"header":1787,"text":1763,"button":1788,"image":1792},"security-modernization",[1786],"security","Tauschst du Schnelligkeit gegen Sicherheit ein?",{"text":1789,"config":1790},"Ermittle deinen Sicherheitsreifegrad",{"href":1791,"dataGaName":1768,"dataGaLocation":1250},"/de-de/assessments/security-modernization-assessment/",{"config":1793},{"src":1794},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":1796,"paths":1797,"header":1800,"text":1801,"button":1802,"image":1807},"github-azure-migration",[1798,1799],"migration-from-azure-devops-to-gitlab","integrating-azure-devops-scm-and-gitlab","Ist dein Team bereit für den Umzug von GitHub nach Azure?","GitHub stellt bereits auf Azure um. Finde heraus, was das für dich bedeutet.",{"text":1803,"config":1804},"Erfahre, wie GitLab im Vergleich zu GitHub abschneidet",{"href":1805,"dataGaName":1806,"dataGaLocation":1250},"/de-de/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":1808},{"src":1782},{"header":1810,"blurb":1811,"button":1812,"secondaryButton":1817},"Beginne noch heute, schneller zu entwickeln","Entdecke, was dein Team mit der intelligenten Orchestrierungsplattform für DevSecOps erreichen kann.\n",{"text":1813,"config":1814},"Kostenlosen Test starten",{"href":1815,"dataGaName":1049,"dataGaLocation":1816},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/de-de/","feature",{"text":1373,"config":1818},{"href":1375,"dataGaName":1054,"dataGaLocation":1816},1786803749105]