[{"data":1,"prerenderedAt":991},["ShallowReactive",2],{"/blog/beginner-guide-ci-cd":3,"navigation-en-us":207,"banner-en-us":634,"footer-en-us":644,"blog-post-authors-en-us-Valerie Silverthorne":886,"blog-related-posts-en-us-beginner-guide-ci-cd":901,"blog-promotions-en-us":927,"next-steps-en-us":981},{"id":4,"title":5,"authors":6,"body":8,"category":187,"date":188,"description":189,"extension":190,"externalUrl":191,"faq":191,"featured":192,"heroImage":193,"meta":194,"navigation":195,"path":196,"seo":197,"slug":201,"stem":202,"tags":203,"template":205,"updatedDate":191,"__hash__":206},"blogPosts/en-us/blog/beginner-guide-ci-cd.md","GitLab’s guide to CI/CD for beginners",[7],"Valerie Silverthorne",{"type":9,"value":10,"toc":176},"minimark",[11,31,36,49,53,61,65,79,83,96,100,108,112,126,130,138,144,150,156,162],[12,13,14,15,20,21,25,26,30],"p",{},"Continuous integration and ",[16,17,19],"a",{"href":18},"/topics/continuous-delivery/","continuous delivery/deployment"," (most often referred to as CI/CD) are the cornerstones of ",[16,22,24],{"href":23},"/topics/devops/","DevOps"," and any modern software development practice. Here’s everything you need to know about ",[16,27,29],{"href":28},"/blog/how-to-keep-up-with-ci-cd-best-practices/","CI/CD for beginners",".",[32,33,35],"h2",{"id":34},"what-cicd-means","What CI/CD means",[12,37,38,39,43,44,48],{},"If your software development process involves a lot of stopping, starting and handoffs, ",[16,40,42],{"href":41},"/topics/ci-cd/","CI/CD"," may be just what you’re looking for. A CI/CD pipeline is a seamless way for developers to make changes to code that are then automatically tested and pushed out for delivery and deployment. The goal is to eliminate downtime. Get CI/CD right and you’re well on the road to successful DevOps and dramatically faster code release. In our ",[16,45,47],{"href":46},"/blog/devsecops-survey-released/","2020 Global DevSecOps Survey",", nearly 83% of survey takers said they’re getting code out the door more quickly thanks to DevOps.",[32,50,52],{"id":51},"understand-cicd-basics","Understand CI/CD basics",[12,54,55,56,60],{},"If you’re not sure what a pipeline is, or how the entire process works, here’s a ",[16,57,59],{"href":58},"/blog/a-beginners-guide-to-continuous-integration/","detailed explanation"," of how all the moving parts work together to make software development quicker and easier.",[32,62,64],{"id":63},"four-benefits-of-cicd","Four benefits of CI/CD",[12,66,67,68,73,74,78],{},"Yes, CI/CD helps speed up delivery of code but it also makes for happier software developers. At a time when there continues to be ",[16,69,72],{"href":70,"rel":71},"https://www.gartner.com/en/newsroom/press-releases/2019-01-17-gartner-survey-shows-global-talent-shortage-is-now-the-top-emerging-risk-facing-organizations",[],"a worldwide shortage of software developers",", it’s critical to retain technical talent. Developer job satisfaction is just one of ",[16,75,77],{"href":76},"/blog/positive-outcomes-ci-cd/","four key benefits"," that come from implementing a CI/CD process.",[32,80,82],{"id":81},"how-to-pick-the-right-cicd-tool","How to pick the right CI/CD tool",[12,84,85,86,90,91,95],{},"Now that you’re sold on the ",[16,87,89],{"href":88},"/topics/ci-cd/benefits-continuous-integration/","benefits of CI/CD"," it’s time to choose a tool. There are a number of considerations, from ",[16,92,94],{"href":93},"/topics/ci-cd/choose-continuous-integration-tool/","budget to room for growth"," so it’s worth taking the time to think it through.",[32,97,99],{"id":98},"how-to-make-the-business-case-for-cicd","How to make the business case for CI/CD",[12,101,102,103,107],{},"To tie a CI/CD process to ROI isn’t difficult, but it’s an important step to take to get management buy-in. Here are ",[16,104,106],{"href":105},"/blog/modernize-your-ci-cd/","three factors to consider"," – including the hidden cost of toolchain sprawl – as you make the case for CI/CD.",[32,109,111],{"id":110},"take-20-minutes-and-build-a-cicd-pipeline","Take 20 minutes and build a CI/CD pipeline",[12,113,114,115,120,121,125],{},"Ok, enough talking about theoreticals... it’s time to do something. Using GitLab’s ",[16,116,119],{"href":117,"rel":118},"https://docs.gitlab.com/topics/autodevops/",[],"Auto DevOps"," functionality, you can ",[16,122,124],{"href":123},"/blog/building-a-cicd-pipeline-in-20-mins/","move from code to production"," in just two simple steps and in only 20 minutes (no, really, just 20 minutes).",[32,127,129],{"id":128},"next-stop-kubernetes","Next stop: Kubernetes!",[12,131,132,133,137],{},"Finally, you can tie your GitLab CI pipeline into Google Kubernetes Engine (GKE) and as a bonus it takes only 15 minutes. Our ",[16,134,136],{"href":135},"/blog/gitlab-ci-on-google-kubernetes-engine/","step-by-step tutorial"," is completely beginner-friendly.",[12,139,140],{},[141,142,143],"strong",{},"Level up your CI/CD knowledge:",[12,145,146],{},[16,147,149],{"href":148},"/blog/solve-devsecops-challenges-with-gitlab-ci-cd/","How CI can put the \"Sec\" in DevSecOps",[12,151,152],{},[16,153,155],{"href":154},"/blog/introducing-autoscaling-gitlab-runners-on-aws-fargate/","Autoscale GitLab CI with AWS Fargate",[12,157,158],{},[16,159,161],{"href":160},"/blog/parent-child-pipelines/","Get started with parent-child pipelines",[12,163,164,165,170,171],{},"Cover image by ",[16,166,169],{"href":167,"rel":168},"https://unsplash.com/@kylejglenn",[],"Kyle Glenn"," on ",[16,172,175],{"href":173,"rel":174},"https://www.unsplash.com",[],"Unsplash",{"title":177,"searchDepth":178,"depth":178,"links":179},"",2,[180,181,182,183,184,185,186],{"id":34,"depth":178,"text":35},{"id":51,"depth":178,"text":52},{"id":63,"depth":178,"text":64},{"id":81,"depth":178,"text":82},{"id":98,"depth":178,"text":99},{"id":110,"depth":178,"text":111},{"id":128,"depth":178,"text":129},"engineering","2020-07-06","CI/CD is a key part of the DevOps journey. Here’s everything you need to understand about this game-changing process.","md",null,false,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681391/Blog/Hero%20Images/beginnercicd.jpg",{},true,"/en-us/blog/beginner-guide-ci-cd",{"title":5,"description":189,"ogTitle":5,"ogDescription":189,"noIndex":192,"ogImage":193,"ogUrl":198,"ogSiteName":199,"ogType":200,"canonicalUrls":198},"https://about.gitlab.com/blog/beginner-guide-ci-cd","https://about.gitlab.com","article","beginner-guide-ci-cd","en-us/blog/beginner-guide-ci-cd",[42,24,204],"kubernetes","BlogPost","ELcfKuDpoURcrmFh9IR4LxFQwbfMl_eDIrXLSkQY8ok",{"logo":208,"freeTrial":213,"sales":218,"login":223,"items":228,"search":554,"minimal":585,"duo":604,"switchNav":613,"pricingDeployment":624},{"config":209},{"href":210,"dataGaName":211,"dataGaLocation":212},"/","gitlab logo","header",{"text":214,"config":215},"Get free trial",{"href":216,"dataGaName":217,"dataGaLocation":212},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":219,"config":220},"Request a demo",{"href":221,"dataGaName":222,"dataGaLocation":212},"/sales/?contact-topic=request-demo","sales",{"text":224,"config":225},"Sign in",{"href":226,"dataGaName":227,"dataGaLocation":212},"https://gitlab.com/users/sign_in/","sign in",[229,258,357,362,476,532],{"text":230,"config":231,"menu":233},"Platform",{"dataNavLevelOne":232},"platform",{"type":234,"columns":235},"cards",[236,242,250],{"title":230,"description":237,"link":238},"The intelligent orchestration platform for DevSecOps",{"text":239,"config":240},"Explore our Platform",{"href":241,"dataGaName":232,"dataGaLocation":212},"/platform/",{"title":243,"description":244,"link":245},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":246,"config":247},"Meet GitLab Duo",{"href":248,"dataGaName":249,"dataGaLocation":212},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":251,"description":252,"link":253},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":254,"config":255},"Learn more",{"href":256,"dataGaName":257,"dataGaLocation":212},"/why-gitlab/","why gitlab",{"text":259,"left":195,"config":260,"menu":262},"Product",{"dataNavLevelOne":261},"solutions",{"type":263,"link":264,"columns":268,"feature":336},"lists",{"text":265,"config":266},"View all Solutions",{"href":267,"dataGaName":261,"dataGaLocation":212},"/solutions/",[269,292,315],{"title":270,"description":271,"link":272,"items":277},"Automation","CI/CD and automation to accelerate deployment",{"config":273},{"icon":274,"href":275,"dataGaName":276,"dataGaLocation":212},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[278,281,284,288],{"text":42,"config":279},{"href":280,"dataGaLocation":212,"dataGaName":42},"/solutions/continuous-integration/",{"text":243,"config":282},{"href":248,"dataGaLocation":212,"dataGaName":283},"gitlab duo agent platform - product menu",{"text":285,"config":286},"Source Code Management",{"href":287,"dataGaLocation":212,"dataGaName":285},"/solutions/source-code-management/",{"text":289,"config":290},"Automated Software Delivery",{"href":275,"dataGaLocation":212,"dataGaName":291},"Automated software delivery",{"title":293,"description":294,"link":295,"items":300},"Security","Deliver code faster without compromising security",{"config":296},{"href":297,"dataGaName":298,"dataGaLocation":212,"icon":299},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[301,305,310],{"text":302,"config":303},"Application Security Testing",{"href":297,"dataGaName":304,"dataGaLocation":212},"Application security testing",{"text":306,"config":307},"Software Supply Chain Security",{"href":308,"dataGaLocation":212,"dataGaName":309},"/solutions/supply-chain/","Software supply chain security",{"text":311,"config":312},"Software Compliance",{"href":313,"dataGaName":314,"dataGaLocation":212},"/solutions/software-compliance/","software compliance",{"title":316,"link":317,"items":322},"Measurement",{"config":318},{"icon":319,"href":320,"dataGaName":321,"dataGaLocation":212},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[323,327,331],{"text":324,"config":325},"Visibility & Measurement",{"href":320,"dataGaLocation":212,"dataGaName":326},"Visibility and Measurement",{"text":328,"config":329},"Value Stream Management",{"href":330,"dataGaLocation":212,"dataGaName":328},"/solutions/value-stream-management/",{"text":332,"config":333},"Analytics & Insights",{"href":334,"dataGaLocation":212,"dataGaName":335},"/solutions/analytics-and-insights/","Analytics and insights",{"title":337,"type":263,"items":338},"GitLab for",[339,345,351],{"text":340,"config":341},"Enterprise",{"icon":342,"href":343,"dataGaLocation":212,"dataGaName":344},"Building","/enterprise/","enterprise",{"text":346,"config":347},"Small Business",{"icon":348,"href":349,"dataGaLocation":212,"dataGaName":350},"Work","/small-business/","small business",{"text":352,"config":353},"Public Sector",{"icon":354,"href":355,"dataGaLocation":212,"dataGaName":356},"Organization","/solutions/public-sector/","public sector",{"text":358,"config":359},"Pricing",{"href":360,"dataGaName":361,"dataGaLocation":212,"dataNavLevelOne":361},"/pricing/","pricing",{"text":363,"config":364,"menu":366},"Resources",{"dataNavLevelOne":365},"resources",{"type":263,"link":367,"columns":371,"feature":465},{"text":368,"config":369},"View all resources",{"href":370,"dataGaName":365,"dataGaLocation":212},"/resources/",[372,405,432],{"title":373,"items":374},"Getting started",[375,380,385,390,395,400],{"text":376,"config":377},"Install",{"href":378,"dataGaName":379,"dataGaLocation":212},"/install/","install",{"text":381,"config":382},"Quick start guides",{"href":383,"dataGaName":384,"dataGaLocation":212},"/get-started/","quick setup checklists",{"text":386,"config":387},"Learn",{"href":388,"dataGaLocation":212,"dataGaName":389},"https://university.gitlab.com/","learn",{"text":391,"config":392},"Product documentation",{"href":393,"dataGaName":394,"dataGaLocation":212},"https://docs.gitlab.com/","product documentation",{"text":396,"config":397},"Best practice videos",{"href":398,"dataGaName":399,"dataGaLocation":212},"/getting-started-videos/","best practice videos",{"text":401,"config":402},"Integrations",{"href":403,"dataGaName":404,"dataGaLocation":212},"/integrations/","integrations",{"title":406,"items":407},"Discover",[408,413,418,423,427],{"text":409,"config":410},"Customer success stories",{"href":411,"dataGaName":412,"dataGaLocation":212},"/customers/","customer success stories",{"text":414,"config":415},"Blog",{"href":416,"dataGaName":417,"dataGaLocation":212},"/blog/","blog",{"text":419,"config":420},"Demo Hub",{"href":421,"dataGaName":422,"dataGaLocation":212},"/demo-hub/","demo hub",{"text":424,"config":425},"The Source",{"href":426,"dataGaName":417,"dataGaLocation":212},"/the-source/",{"text":428,"config":429},"Remote",{"href":430,"dataGaName":431,"dataGaLocation":212},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":433,"items":434},"Connect",[435,440,445,450,455,460],{"text":436,"config":437},"GitLab Services",{"href":438,"dataGaName":439,"dataGaLocation":212},"/services/","services",{"text":441,"config":442},"Contribute",{"href":443,"dataGaName":444,"dataGaLocation":212},"https://contributors.gitlab.com","contribute",{"text":446,"config":447},"Community",{"href":448,"dataGaName":449,"dataGaLocation":212},"/community/","community",{"text":451,"config":452},"Forum",{"href":453,"dataGaName":454,"dataGaLocation":212},"https://forum.gitlab.com/","forum",{"text":456,"config":457},"Events",{"href":458,"dataGaName":459,"dataGaLocation":212},"/events/","events",{"text":461,"config":462},"Partners",{"href":463,"dataGaName":464,"dataGaLocation":212},"/partners/","partners",{"config":466,"title":469,"text":470,"link":471},{"background":467,"textColor":468},"url('https://res.cloudinary.com/about-gitlab-com/image/upload/v1777322348/qpq8yrgn8knii57omj0c.png')","#000","What’s new in GitLab","Stay updated with our latest features and improvements.",{"text":472,"config":473},"Read the latest",{"href":474,"dataGaName":475,"dataGaLocation":212},"/whats-new/","whats new",{"text":477,"config":478,"menu":480},"Company",{"dataNavLevelOne":479},"company",{"type":263,"columns":481},[482],{"items":483},[484,489,495,497,502,507,512,517,522,527],{"text":485,"config":486},"About",{"href":487,"dataGaName":488,"dataGaLocation":212},"/company/","about",{"text":490,"config":491,"footerGa":494},"Jobs",{"href":492,"dataGaName":493,"dataGaLocation":212},"/jobs/","jobs",{"dataGaName":493},{"text":456,"config":496},{"href":458,"dataGaName":459,"dataGaLocation":212},{"text":498,"config":499},"Leadership",{"href":500,"dataGaName":501,"dataGaLocation":212},"/company/team/e-group/","leadership",{"text":503,"config":504},"Handbook",{"href":505,"dataGaName":506,"dataGaLocation":212},"https://handbook.gitlab.com/","handbook",{"text":508,"config":509},"Investor relations",{"href":510,"dataGaName":511,"dataGaLocation":212},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":513,"config":514},"Trust Center",{"href":515,"dataGaName":516,"dataGaLocation":212},"/security/","trust center",{"text":518,"config":519},"AI Transparency Center",{"href":520,"dataGaName":521,"dataGaLocation":212},"/ai-transparency-center/","ai transparency center",{"text":523,"config":524},"Newsletter",{"href":525,"dataGaName":526,"dataGaLocation":212},"/company/contact/#contact-forms","newsletter",{"text":528,"config":529},"Press",{"href":530,"dataGaName":531,"dataGaLocation":212},"/press/","press",{"text":533,"config":534,"menu":535},"Contact us",{"dataNavLevelOne":479},{"type":263,"columns":536},[537],{"items":538},[539,544,549],{"text":540,"config":541},"Talk to sales",{"href":542,"dataGaName":543,"dataGaLocation":212},"/sales/","talk to sales",{"text":545,"config":546},"Support portal",{"href":547,"dataGaName":548,"dataGaLocation":212},"https://support.gitlab.com/hc/en-us","support portal",{"text":550,"config":551},"Customer portal",{"href":552,"dataGaName":553,"dataGaLocation":212},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":555,"login":556,"suggestions":563},"Close",{"text":557,"link":558},"To search repositories and projects, login to",{"text":559,"config":560},"gitlab.com",{"href":226,"dataGaName":561,"dataGaLocation":562},"search login","search",{"text":564,"default":565},"Suggestions",[566,568,572,574,578,582],{"text":243,"config":567},{"href":248,"dataGaName":243,"dataGaLocation":562},{"text":569,"config":570},"Code Suggestions (AI)",{"href":571,"dataGaName":569,"dataGaLocation":562},"/solutions/code-suggestions/",{"text":42,"config":573},{"href":280,"dataGaName":42,"dataGaLocation":562},{"text":575,"config":576},"GitLab on AWS",{"href":577,"dataGaName":575,"dataGaLocation":562},"/partners/technology-partners/aws/",{"text":579,"config":580},"GitLab on Google Cloud",{"href":581,"dataGaName":579,"dataGaLocation":562},"/partners/technology-partners/google-cloud-platform/",{"text":583,"config":584},"Why GitLab?",{"href":256,"dataGaName":583,"dataGaLocation":562},{"freeTrial":586,"mobileIcon":591,"desktopIcon":596,"secondaryButton":599},{"text":587,"config":588},"Start free trial",{"href":589,"dataGaName":217,"dataGaLocation":590},"https://gitlab.com/-/trials/new/","nav",{"altText":592,"config":593},"Gitlab Icon",{"src":594,"dataGaName":595,"dataGaLocation":590},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":592,"config":597},{"src":598,"dataGaName":595,"dataGaLocation":590},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":600,"config":601},"Get Started",{"href":602,"dataGaName":603,"dataGaLocation":590},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/get-started/","get started",{"freeTrial":605,"mobileIcon":609,"desktopIcon":611},{"text":606,"config":607},"Learn more about GitLab Duo",{"href":248,"dataGaName":608,"dataGaLocation":590},"gitlab duo",{"altText":592,"config":610},{"src":594,"dataGaName":595,"dataGaLocation":590},{"altText":592,"config":612},{"src":598,"dataGaName":595,"dataGaLocation":590},{"button":614,"mobileIcon":619,"desktopIcon":621},{"text":615,"config":616},"/switch",{"href":617,"dataGaName":618,"dataGaLocation":590},"#contact","switch",{"altText":592,"config":620},{"src":594,"dataGaName":595,"dataGaLocation":590},{"altText":592,"config":622},{"src":623,"dataGaName":595,"dataGaLocation":590},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":625,"mobileIcon":630,"desktopIcon":632},{"text":626,"config":627},"Back to pricing",{"href":360,"dataGaName":628,"dataGaLocation":590,"icon":629},"back to pricing","GoBack",{"altText":592,"config":631},{"src":594,"dataGaName":595,"dataGaLocation":590},{"altText":592,"config":633},{"src":598,"dataGaName":595,"dataGaLocation":590},{"title":635,"titleMobile":636,"button":637,"config":642},"Duo Agent Platform delivers 400% ROI, per new Forrester Consulting study.","400% ROI: Forrester TEI for GitLab Duo",{"text":254,"config":638},{"href":639,"dataGaName":640,"dataGaLocation":641},"https://about.gitlab.com/blog/gitlab-duo-agent-platform-delivers-400-percent-roi/","forrester-tei-dap-banner","global-banner",{"layout":643,"disabled":192},"release",{"data":645},{"text":646,"source":647,"edit":653,"contribute":658,"config":663,"items":668,"minimal":875},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":648,"config":649},"View page source",{"href":650,"dataGaName":651,"dataGaLocation":652},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":654,"config":655},"Edit this page",{"href":656,"dataGaName":657,"dataGaLocation":652},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":659,"config":660},"Please contribute",{"href":661,"dataGaName":662,"dataGaLocation":652},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":664,"facebook":665,"youtube":666,"linkedin":667},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[669,716,767,811,843],{"title":358,"links":670,"subMenu":685},[671,675,680],{"text":672,"config":673},"View plans",{"href":360,"dataGaName":674,"dataGaLocation":652},"view plans",{"text":676,"config":677},"Why Premium?",{"href":678,"dataGaName":679,"dataGaLocation":652},"/pricing/premium/","why premium",{"text":681,"config":682},"Why Ultimate?",{"href":683,"dataGaName":684,"dataGaLocation":652},"/pricing/ultimate/","why ultimate",[686],{"title":687,"links":688},"Contact Us",[689,692,694,696,701,706,711],{"text":690,"config":691},"Contact sales",{"href":542,"dataGaName":222,"dataGaLocation":652},{"text":545,"config":693},{"href":547,"dataGaName":548,"dataGaLocation":652},{"text":550,"config":695},{"href":552,"dataGaName":553,"dataGaLocation":652},{"text":697,"config":698},"Status",{"href":699,"dataGaName":700,"dataGaLocation":652},"https://status.gitlab.com/","status",{"text":702,"config":703},"Terms of use",{"href":704,"dataGaName":705,"dataGaLocation":652},"/terms/","terms of use",{"text":707,"config":708},"Privacy statement",{"href":709,"dataGaName":710,"dataGaLocation":652},"/privacy/","privacy statement",{"text":712,"config":713},"Cookie preferences",{"dataGaName":714,"dataGaLocation":652,"id":715,"isOneTrustButton":195},"cookie preferences","ot-sdk-btn",{"title":259,"links":717,"subMenu":726},[718,722],{"text":719,"config":720},"DevSecOps platform",{"href":241,"dataGaName":721,"dataGaLocation":652},"devsecops platform",{"text":723,"config":724},"AI-Assisted Development",{"href":248,"dataGaName":725,"dataGaLocation":652},"ai-assisted development",[727],{"title":728,"links":729},"Topics",[730,734,739,742,747,752,757,762],{"text":731,"config":732},"CICD",{"href":41,"dataGaName":733,"dataGaLocation":652},"cicd",{"text":735,"config":736},"GitOps",{"href":737,"dataGaName":738,"dataGaLocation":652},"/topics/gitops/","gitops",{"text":24,"config":740},{"href":23,"dataGaName":741,"dataGaLocation":652},"devops",{"text":743,"config":744},"Version Control",{"href":745,"dataGaName":746,"dataGaLocation":652},"/topics/version-control/","version control",{"text":748,"config":749},"DevSecOps",{"href":750,"dataGaName":751,"dataGaLocation":652},"/topics/devsecops/","devsecops",{"text":753,"config":754},"Cloud Native",{"href":755,"dataGaName":756,"dataGaLocation":652},"/topics/cloud-native/","cloud native",{"text":758,"config":759},"AI for Coding",{"href":760,"dataGaName":761,"dataGaLocation":652},"/topics/devops/ai-for-coding/","ai for coding",{"text":763,"config":764},"Agentic AI",{"href":765,"dataGaName":766,"dataGaLocation":652},"/topics/agentic-ai/","agentic ai",{"title":768,"links":769},"Solutions",[770,772,774,779,783,786,790,793,795,798,801,806],{"text":302,"config":771},{"href":297,"dataGaName":302,"dataGaLocation":652},{"text":291,"config":773},{"href":275,"dataGaName":276,"dataGaLocation":652},{"text":775,"config":776},"Agile development",{"href":777,"dataGaName":778,"dataGaLocation":652},"/solutions/agile-delivery/","agile delivery",{"text":780,"config":781},"SCM",{"href":287,"dataGaName":782,"dataGaLocation":652},"source code management",{"text":731,"config":784},{"href":280,"dataGaName":785,"dataGaLocation":652},"continuous integration & delivery",{"text":787,"config":788},"Value stream management",{"href":330,"dataGaName":789,"dataGaLocation":652},"value stream management",{"text":735,"config":791},{"href":792,"dataGaName":738,"dataGaLocation":652},"/solutions/gitops/",{"text":340,"config":794},{"href":343,"dataGaName":344,"dataGaLocation":652},{"text":796,"config":797},"Small business",{"href":349,"dataGaName":350,"dataGaLocation":652},{"text":799,"config":800},"Public sector",{"href":355,"dataGaName":356,"dataGaLocation":652},{"text":802,"config":803},"Education",{"href":804,"dataGaName":805,"dataGaLocation":652},"/solutions/education/","education",{"text":807,"config":808},"Financial services",{"href":809,"dataGaName":810,"dataGaLocation":652},"/solutions/finance/","financial services",{"title":363,"links":812},[813,815,817,819,822,824,827,829,831,833,835,837,839,841],{"text":376,"config":814},{"href":378,"dataGaName":379,"dataGaLocation":652},{"text":381,"config":816},{"href":383,"dataGaName":384,"dataGaLocation":652},{"text":386,"config":818},{"href":388,"dataGaName":389,"dataGaLocation":652},{"text":391,"config":820},{"href":393,"dataGaName":821,"dataGaLocation":652},"docs",{"text":414,"config":823},{"href":416,"dataGaName":417,"dataGaLocation":652},{"text":825,"config":826},"What's new",{"href":474,"dataGaName":475,"dataGaLocation":652},{"text":409,"config":828},{"href":411,"dataGaName":412,"dataGaLocation":652},{"text":428,"config":830},{"href":430,"dataGaName":431,"dataGaLocation":652},{"text":436,"config":832},{"href":438,"dataGaName":439,"dataGaLocation":652},{"text":441,"config":834},{"href":443,"dataGaName":444,"dataGaLocation":652},{"text":446,"config":836},{"href":448,"dataGaName":449,"dataGaLocation":652},{"text":451,"config":838},{"href":453,"dataGaName":454,"dataGaLocation":652},{"text":456,"config":840},{"href":458,"dataGaName":459,"dataGaLocation":652},{"text":461,"config":842},{"href":463,"dataGaName":464,"dataGaLocation":652},{"title":477,"links":844},[845,847,849,851,853,855,859,864,866,868,870],{"text":485,"config":846},{"href":487,"dataGaName":479,"dataGaLocation":652},{"text":490,"config":848},{"href":492,"dataGaName":493,"dataGaLocation":652},{"text":498,"config":850},{"href":500,"dataGaName":501,"dataGaLocation":652},{"text":503,"config":852},{"href":505,"dataGaName":506,"dataGaLocation":652},{"text":508,"config":854},{"href":510,"dataGaName":511,"dataGaLocation":652},{"text":856,"config":857},"Sustainability",{"href":858,"dataGaName":856,"dataGaLocation":652},"/sustainability/",{"text":860,"config":861},"Diversity, inclusion and belonging (DIB)",{"href":862,"dataGaName":863,"dataGaLocation":652},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":513,"config":865},{"href":515,"dataGaName":516,"dataGaLocation":652},{"text":523,"config":867},{"href":525,"dataGaName":526,"dataGaLocation":652},{"text":528,"config":869},{"href":530,"dataGaName":531,"dataGaLocation":652},{"text":871,"config":872},"Modern Slavery Transparency Statement",{"href":873,"dataGaName":874,"dataGaLocation":652},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":876},[877,880,883],{"text":878,"config":879},"Terms",{"href":704,"dataGaName":705,"dataGaLocation":652},{"text":881,"config":882},"Cookies",{"dataGaName":714,"dataGaLocation":652,"id":715,"isOneTrustButton":195},{"text":884,"config":885},"Privacy",{"href":709,"dataGaName":710,"dataGaLocation":652},[887],{"id":888,"title":7,"body":191,"config":889,"content":891,"description":191,"extension":895,"meta":896,"navigation":195,"path":897,"seo":898,"stem":899,"__hash__":900},"blogAuthors/en-us/blog/authors/valerie-silverthorne.yml",{"template":890},"BlogAuthor",{"name":7,"config":892},{"headshot":893,"ctfId":894},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659488/Blog/Author%20Headshots/gitlab-logo-extra-whitespace.png","vsilverthorne","yml",{},"/en-us/blog/authors/valerie-silverthorne",{},"en-us/blog/authors/valerie-silverthorne","r2glbOZCR5HOKEwYKJRy7sOVW6u0oTjxVRg28ZvHJ-I",[902,911,919],{"title":903,"description":904,"heroImage":905,"category":187,"date":906,"authors":907,"slug":910,"externalUrl":191},"Confidential AI for GitLab Self-Hosted","Give developers AI coding agents in GitLab Duo without source code leaving a hardware-encrypted boundary — no GPUs needed.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1773866173/vte9qh8rriznvyclhkes.png","2026-08-06",[908,909],"Mathias Ewald","Martin Paloncy, Edgeless Systems","confidential-ai-for-gitlab-self-hosted",{"title":912,"description":913,"heroImage":914,"category":187,"date":915,"authors":916,"slug":918,"externalUrl":191},"Green DevOps: Why carbon measurement belongs in your CI/CD pipeline","CI/CD pipelines have a hidden carbon cost. Here's why measuring it matters, and how you can get started with Eco CI and Carmen in GitLab.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1765809212/noh0mdfn9o94ry9ykura.png","2026-07-09",[917],"Lysanne Pinto","green-devops-carbon-measurement-cicd-pipeline",{"title":920,"description":921,"heroImage":922,"category":187,"date":923,"authors":924,"slug":926,"externalUrl":191},"How to build CI/CD observability at scale","This practical guide to GitLab pipeline analytics helps self-managed users gain operational insights using Prometheus and Grafana.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1774465167/n5hlvrsrheadeccyr1oz.png","2026-04-28",[925],"Paul Meresanu","how-to-build-ci-cd-observability-at-scale",{"promotions":928},[929,943,955,967],{"id":930,"categories":931,"header":933,"text":934,"button":935,"image":940},"ai-modernization",[932],"ai","Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":936,"config":937},"Get your AI maturity score",{"href":938,"dataGaName":939,"dataGaLocation":417},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":941},{"src":942},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":944,"categories":945,"header":947,"text":934,"button":948,"image":952},"devops-modernization",[946,751],"product","Are you just managing tools or shipping innovation?",{"text":949,"config":950},"Get your DevOps maturity score",{"href":951,"dataGaName":939,"dataGaLocation":417},"/assessments/devops-modernization-assessment/",{"config":953},{"src":954},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":956,"categories":957,"header":959,"text":934,"button":960,"image":964},"security-modernization",[958],"security","Are you trading speed for security?",{"text":961,"config":962},"Get your security maturity score",{"href":963,"dataGaName":939,"dataGaLocation":417},"/assessments/security-modernization-assessment/",{"config":965},{"src":966},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":968,"paths":969,"header":972,"text":973,"button":974,"image":979},"github-azure-migration",[970,971],"migration-from-azure-devops-to-gitlab","integrating-azure-devops-scm-and-gitlab","Is your team ready for GitHub's Azure move?","GitHub is already rebuilding around Azure. Find out what it means for you.",{"text":975,"config":976},"See how GitLab compares to GitHub",{"href":977,"dataGaName":978,"dataGaLocation":417},"/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":980},{"src":954},{"header":982,"blurb":983,"button":984,"secondaryButton":989},"Start building faster today","See what your team can do with the intelligent orchestration platform for DevSecOps.\n",{"text":985,"config":986},"Get your free trial",{"href":987,"dataGaName":217,"dataGaLocation":988},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":690,"config":990},{"href":542,"dataGaName":222,"dataGaLocation":988},1786734898217]