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