[{"data":1,"prerenderedAt":1300},["ShallowReactive",2],{"/en-us/blog/tags/cd":3,"navigation-en-us":19,"banner-en-us":419,"footer-en-us":429,"CD-tag-posts-en-us":671},{"id":4,"title":5,"body":6,"category":6,"config":7,"content":9,"description":6,"extension":12,"meta":13,"navigation":14,"path":15,"seo":16,"slug":6,"stem":17,"testContent":6,"type":6,"__hash__":18},"blogTags/en-us/blog/tags/cd.yml","Cd",null,{"template":8},"BlogTag",{"tag":10,"tagSlug":11},"CD","cd","yml",{},true,"/en-us/blog/tags/cd",{},"en-us/blog/tags/cd","qfvtP5NPH5kqKBHNl85kitARfHJgn-ezJK36W0fbiNI",{"data":20},{"logo":21,"freeTrial":26,"sales":31,"login":36,"items":41,"search":349,"minimal":380,"duo":399,"pricingDeployment":409},{"config":22},{"href":23,"dataGaName":24,"dataGaLocation":25},"/","gitlab logo","header",{"text":27,"config":28},"Get free trial",{"href":29,"dataGaName":30,"dataGaLocation":25},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":32,"config":33},"Talk to sales",{"href":34,"dataGaName":35,"dataGaLocation":25},"/sales/","sales",{"text":37,"config":38},"Sign in",{"href":39,"dataGaName":40,"dataGaLocation":25},"https://gitlab.com/users/sign_in/","sign in",[42,69,164,169,270,330],{"text":43,"config":44,"cards":46},"Platform",{"dataNavLevelOne":45},"platform",[47,53,61],{"title":43,"description":48,"link":49},"The intelligent orchestration platform for DevSecOps",{"text":50,"config":51},"Explore our Platform",{"href":52,"dataGaName":45,"dataGaLocation":25},"/platform/",{"title":54,"description":55,"link":56},"GitLab Duo Agent Platform","Agentic AI for the entire software lifecycle",{"text":57,"config":58},"Meet GitLab Duo",{"href":59,"dataGaName":60,"dataGaLocation":25},"/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":62,"description":63,"link":64},"Why GitLab","See the top reasons enterprises choose GitLab",{"text":65,"config":66},"Learn more",{"href":67,"dataGaName":68,"dataGaLocation":25},"/why-gitlab/","why gitlab",{"text":70,"left":14,"config":71,"link":73,"lists":77,"footer":146},"Product",{"dataNavLevelOne":72},"solutions",{"text":74,"config":75},"View all Solutions",{"href":76,"dataGaName":72,"dataGaLocation":25},"/solutions/",[78,102,125],{"title":79,"description":80,"link":81,"items":86},"Automation","CI/CD and automation to accelerate deployment",{"config":82},{"icon":83,"href":84,"dataGaName":85,"dataGaLocation":25},"AutomatedCodeAlt","/solutions/delivery-automation/","automated software delivery",[87,91,94,98],{"text":88,"config":89},"CI/CD",{"href":90,"dataGaLocation":25,"dataGaName":88},"/solutions/continuous-integration/",{"text":54,"config":92},{"href":59,"dataGaLocation":25,"dataGaName":93},"gitlab duo agent platform - product menu",{"text":95,"config":96},"Source Code Management",{"href":97,"dataGaLocation":25,"dataGaName":95},"/solutions/source-code-management/",{"text":99,"config":100},"Automated Software Delivery",{"href":84,"dataGaLocation":25,"dataGaName":101},"Automated software delivery",{"title":103,"description":104,"link":105,"items":110},"Security","Deliver code faster without compromising security",{"config":106},{"href":107,"dataGaName":108,"dataGaLocation":25,"icon":109},"/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[111,115,120],{"text":112,"config":113},"Application Security Testing",{"href":107,"dataGaName":114,"dataGaLocation":25},"Application security testing",{"text":116,"config":117},"Software Supply Chain Security",{"href":118,"dataGaLocation":25,"dataGaName":119},"/solutions/supply-chain/","Software supply chain security",{"text":121,"config":122},"Software Compliance",{"href":123,"dataGaName":124,"dataGaLocation":25},"/solutions/software-compliance/","software compliance",{"title":126,"link":127,"items":132},"Measurement",{"config":128},{"icon":129,"href":130,"dataGaName":131,"dataGaLocation":25},"DigitalTransformation","/solutions/visibility-measurement/","visibility and measurement",[133,137,141],{"text":134,"config":135},"Visibility & Measurement",{"href":130,"dataGaLocation":25,"dataGaName":136},"Visibility and Measurement",{"text":138,"config":139},"Value Stream Management",{"href":140,"dataGaLocation":25,"dataGaName":138},"/solutions/value-stream-management/",{"text":142,"config":143},"Analytics & Insights",{"href":144,"dataGaLocation":25,"dataGaName":145},"/solutions/analytics-and-insights/","Analytics and insights",{"title":147,"items":148},"GitLab for",[149,154,159],{"text":150,"config":151},"Enterprise",{"href":152,"dataGaLocation":25,"dataGaName":153},"/enterprise/","enterprise",{"text":155,"config":156},"Small Business",{"href":157,"dataGaLocation":25,"dataGaName":158},"/small-business/","small business",{"text":160,"config":161},"Public Sector",{"href":162,"dataGaLocation":25,"dataGaName":163},"/solutions/public-sector/","public sector",{"text":165,"config":166},"Pricing",{"href":167,"dataGaName":168,"dataGaLocation":25,"dataNavLevelOne":168},"/pricing/","pricing",{"text":170,"config":171,"link":173,"lists":177,"feature":257},"Resources",{"dataNavLevelOne":172},"resources",{"text":174,"config":175},"View all resources",{"href":176,"dataGaName":172,"dataGaLocation":25},"/resources/",[178,211,229],{"title":179,"items":180},"Getting started",[181,186,191,196,201,206],{"text":182,"config":183},"Install",{"href":184,"dataGaName":185,"dataGaLocation":25},"/install/","install",{"text":187,"config":188},"Quick start guides",{"href":189,"dataGaName":190,"dataGaLocation":25},"/get-started/","quick setup checklists",{"text":192,"config":193},"Learn",{"href":194,"dataGaLocation":25,"dataGaName":195},"https://university.gitlab.com/","learn",{"text":197,"config":198},"Product documentation",{"href":199,"dataGaName":200,"dataGaLocation":25},"https://docs.gitlab.com/","product documentation",{"text":202,"config":203},"Best practice videos",{"href":204,"dataGaName":205,"dataGaLocation":25},"/getting-started-videos/","best practice videos",{"text":207,"config":208},"Integrations",{"href":209,"dataGaName":210,"dataGaLocation":25},"/integrations/","integrations",{"title":212,"items":213},"Discover",[214,219,224],{"text":215,"config":216},"Customer success stories",{"href":217,"dataGaName":218,"dataGaLocation":25},"/customers/","customer success stories",{"text":220,"config":221},"Blog",{"href":222,"dataGaName":223,"dataGaLocation":25},"/blog/","blog",{"text":225,"config":226},"Remote",{"href":227,"dataGaName":228,"dataGaLocation":25},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":230,"items":231},"Connect",[232,237,242,247,252],{"text":233,"config":234},"GitLab Services",{"href":235,"dataGaName":236,"dataGaLocation":25},"/services/","services",{"text":238,"config":239},"Community",{"href":240,"dataGaName":241,"dataGaLocation":25},"/community/","community",{"text":243,"config":244},"Forum",{"href":245,"dataGaName":246,"dataGaLocation":25},"https://forum.gitlab.com/","forum",{"text":248,"config":249},"Events",{"href":250,"dataGaName":251,"dataGaLocation":25},"/events/","events",{"text":253,"config":254},"Partners",{"href":255,"dataGaName":256,"dataGaLocation":25},"/partners/","partners",{"backgroundColor":258,"textColor":259,"text":260,"image":261,"link":265},"#2f2a6b","#fff","Insights for the future of software development",{"altText":262,"config":263},"the source promo card",{"src":264},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758208064/dzl0dbift9xdizyelkk4.svg",{"text":266,"config":267},"Read the latest",{"href":268,"dataGaName":269,"dataGaLocation":25},"/the-source/","the source",{"text":271,"config":272,"lists":274},"Company",{"dataNavLevelOne":273},"company",[275],{"items":276},[277,282,288,290,295,300,305,310,315,320,325],{"text":278,"config":279},"About",{"href":280,"dataGaName":281,"dataGaLocation":25},"/company/","about",{"text":283,"config":284,"footerGa":287},"Jobs",{"href":285,"dataGaName":286,"dataGaLocation":25},"/jobs/","jobs",{"dataGaName":286},{"text":248,"config":289},{"href":250,"dataGaName":251,"dataGaLocation":25},{"text":291,"config":292},"Leadership",{"href":293,"dataGaName":294,"dataGaLocation":25},"/company/team/e-group/","leadership",{"text":296,"config":297},"Team",{"href":298,"dataGaName":299,"dataGaLocation":25},"/company/team/","team",{"text":301,"config":302},"Handbook",{"href":303,"dataGaName":304,"dataGaLocation":25},"https://handbook.gitlab.com/","handbook",{"text":306,"config":307},"Investor relations",{"href":308,"dataGaName":309,"dataGaLocation":25},"https://ir.gitlab.com/","investor relations",{"text":311,"config":312},"Trust Center",{"href":313,"dataGaName":314,"dataGaLocation":25},"/security/","trust center",{"text":316,"config":317},"AI Transparency Center",{"href":318,"dataGaName":319,"dataGaLocation":25},"/ai-transparency-center/","ai transparency center",{"text":321,"config":322},"Newsletter",{"href":323,"dataGaName":324,"dataGaLocation":25},"/company/contact/#contact-forms","newsletter",{"text":326,"config":327},"Press",{"href":328,"dataGaName":329,"dataGaLocation":25},"/press/","press",{"text":331,"config":332,"lists":333},"Contact us",{"dataNavLevelOne":273},[334],{"items":335},[336,339,344],{"text":32,"config":337},{"href":34,"dataGaName":338,"dataGaLocation":25},"talk to sales",{"text":340,"config":341},"Support portal",{"href":342,"dataGaName":343,"dataGaLocation":25},"https://support.gitlab.com","support portal",{"text":345,"config":346},"Customer portal",{"href":347,"dataGaName":348,"dataGaLocation":25},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":350,"login":351,"suggestions":358},"Close",{"text":352,"link":353},"To search repositories and projects, login to",{"text":354,"config":355},"gitlab.com",{"href":39,"dataGaName":356,"dataGaLocation":357},"search login","search",{"text":359,"default":360},"Suggestions",[361,363,367,369,373,377],{"text":54,"config":362},{"href":59,"dataGaName":54,"dataGaLocation":357},{"text":364,"config":365},"Code Suggestions (AI)",{"href":366,"dataGaName":364,"dataGaLocation":357},"/solutions/code-suggestions/",{"text":88,"config":368},{"href":90,"dataGaName":88,"dataGaLocation":357},{"text":370,"config":371},"GitLab on AWS",{"href":372,"dataGaName":370,"dataGaLocation":357},"/partners/technology-partners/aws/",{"text":374,"config":375},"GitLab on Google Cloud",{"href":376,"dataGaName":374,"dataGaLocation":357},"/partners/technology-partners/google-cloud-platform/",{"text":378,"config":379},"Why GitLab?",{"href":67,"dataGaName":378,"dataGaLocation":357},{"freeTrial":381,"mobileIcon":386,"desktopIcon":391,"secondaryButton":394},{"text":382,"config":383},"Start free trial",{"href":384,"dataGaName":30,"dataGaLocation":385},"https://gitlab.com/-/trials/new/","nav",{"altText":387,"config":388},"Gitlab Icon",{"src":389,"dataGaName":390,"dataGaLocation":385},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":387,"config":392},{"src":393,"dataGaName":390,"dataGaLocation":385},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":395,"config":396},"Get Started",{"href":397,"dataGaName":398,"dataGaLocation":385},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/compare/gitlab-vs-github/","get started",{"freeTrial":400,"mobileIcon":405,"desktopIcon":407},{"text":401,"config":402},"Learn more about GitLab Duo",{"href":403,"dataGaName":404,"dataGaLocation":385},"/gitlab-duo/","gitlab duo",{"altText":387,"config":406},{"src":389,"dataGaName":390,"dataGaLocation":385},{"altText":387,"config":408},{"src":393,"dataGaName":390,"dataGaLocation":385},{"freeTrial":410,"mobileIcon":415,"desktopIcon":417},{"text":411,"config":412},"Back to pricing",{"href":167,"dataGaName":413,"dataGaLocation":385,"icon":414},"back to pricing","GoBack",{"altText":387,"config":416},{"src":389,"dataGaName":390,"dataGaLocation":385},{"altText":387,"config":418},{"src":393,"dataGaName":390,"dataGaLocation":385},{"title":420,"button":421,"config":426},"See how agentic AI transforms software delivery",{"text":422,"config":423},"Watch GitLab Transcend now",{"href":424,"dataGaName":425,"dataGaLocation":25},"/events/transcend/virtual/","transcend event",{"layout":427,"icon":428},"release","AiStar",{"data":430},{"text":431,"source":432,"edit":438,"contribute":443,"config":448,"items":453,"minimal":660},"Git is a trademark of Software Freedom Conservancy and our use of 'GitLab' is under license",{"text":433,"config":434},"View page source",{"href":435,"dataGaName":436,"dataGaLocation":437},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":439,"config":440},"Edit this page",{"href":441,"dataGaName":442,"dataGaLocation":437},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":444,"config":445},"Please contribute",{"href":446,"dataGaName":447,"dataGaLocation":437},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":449,"facebook":450,"youtube":451,"linkedin":452},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[454,501,555,599,626],{"title":165,"links":455,"subMenu":470},[456,460,465],{"text":457,"config":458},"View plans",{"href":167,"dataGaName":459,"dataGaLocation":437},"view plans",{"text":461,"config":462},"Why Premium?",{"href":463,"dataGaName":464,"dataGaLocation":437},"/pricing/premium/","why premium",{"text":466,"config":467},"Why Ultimate?",{"href":468,"dataGaName":469,"dataGaLocation":437},"/pricing/ultimate/","why ultimate",[471],{"title":472,"links":473},"Contact Us",[474,477,479,481,486,491,496],{"text":475,"config":476},"Contact sales",{"href":34,"dataGaName":35,"dataGaLocation":437},{"text":340,"config":478},{"href":342,"dataGaName":343,"dataGaLocation":437},{"text":345,"config":480},{"href":347,"dataGaName":348,"dataGaLocation":437},{"text":482,"config":483},"Status",{"href":484,"dataGaName":485,"dataGaLocation":437},"https://status.gitlab.com/","status",{"text":487,"config":488},"Terms of use",{"href":489,"dataGaName":490,"dataGaLocation":437},"/terms/","terms of use",{"text":492,"config":493},"Privacy statement",{"href":494,"dataGaName":495,"dataGaLocation":437},"/privacy/","privacy statement",{"text":497,"config":498},"Cookie preferences",{"dataGaName":499,"dataGaLocation":437,"id":500,"isOneTrustButton":14},"cookie preferences","ot-sdk-btn",{"title":70,"links":502,"subMenu":511},[503,507],{"text":504,"config":505},"DevSecOps platform",{"href":52,"dataGaName":506,"dataGaLocation":437},"devsecops platform",{"text":508,"config":509},"AI-Assisted Development",{"href":403,"dataGaName":510,"dataGaLocation":437},"ai-assisted development",[512],{"title":513,"links":514},"Topics",[515,520,525,530,535,540,545,550],{"text":516,"config":517},"CICD",{"href":518,"dataGaName":519,"dataGaLocation":437},"/topics/ci-cd/","cicd",{"text":521,"config":522},"GitOps",{"href":523,"dataGaName":524,"dataGaLocation":437},"/topics/gitops/","gitops",{"text":526,"config":527},"DevOps",{"href":528,"dataGaName":529,"dataGaLocation":437},"/topics/devops/","devops",{"text":531,"config":532},"Version Control",{"href":533,"dataGaName":534,"dataGaLocation":437},"/topics/version-control/","version control",{"text":536,"config":537},"DevSecOps",{"href":538,"dataGaName":539,"dataGaLocation":437},"/topics/devsecops/","devsecops",{"text":541,"config":542},"Cloud Native",{"href":543,"dataGaName":544,"dataGaLocation":437},"/topics/cloud-native/","cloud native",{"text":546,"config":547},"AI for Coding",{"href":548,"dataGaName":549,"dataGaLocation":437},"/topics/devops/ai-for-coding/","ai for coding",{"text":551,"config":552},"Agentic AI",{"href":553,"dataGaName":554,"dataGaLocation":437},"/topics/agentic-ai/","agentic ai",{"title":556,"links":557},"Solutions",[558,560,562,567,571,574,578,581,583,586,589,594],{"text":112,"config":559},{"href":107,"dataGaName":112,"dataGaLocation":437},{"text":101,"config":561},{"href":84,"dataGaName":85,"dataGaLocation":437},{"text":563,"config":564},"Agile development",{"href":565,"dataGaName":566,"dataGaLocation":437},"/solutions/agile-delivery/","agile delivery",{"text":568,"config":569},"SCM",{"href":97,"dataGaName":570,"dataGaLocation":437},"source code management",{"text":516,"config":572},{"href":90,"dataGaName":573,"dataGaLocation":437},"continuous integration & delivery",{"text":575,"config":576},"Value stream management",{"href":140,"dataGaName":577,"dataGaLocation":437},"value stream management",{"text":521,"config":579},{"href":580,"dataGaName":524,"dataGaLocation":437},"/solutions/gitops/",{"text":150,"config":582},{"href":152,"dataGaName":153,"dataGaLocation":437},{"text":584,"config":585},"Small business",{"href":157,"dataGaName":158,"dataGaLocation":437},{"text":587,"config":588},"Public sector",{"href":162,"dataGaName":163,"dataGaLocation":437},{"text":590,"config":591},"Education",{"href":592,"dataGaName":593,"dataGaLocation":437},"/solutions/education/","education",{"text":595,"config":596},"Financial services",{"href":597,"dataGaName":598,"dataGaLocation":437},"/solutions/finance/","financial services",{"title":170,"links":600},[601,603,605,607,610,612,614,616,618,620,622,624],{"text":182,"config":602},{"href":184,"dataGaName":185,"dataGaLocation":437},{"text":187,"config":604},{"href":189,"dataGaName":190,"dataGaLocation":437},{"text":192,"config":606},{"href":194,"dataGaName":195,"dataGaLocation":437},{"text":197,"config":608},{"href":199,"dataGaName":609,"dataGaLocation":437},"docs",{"text":220,"config":611},{"href":222,"dataGaName":223,"dataGaLocation":437},{"text":215,"config":613},{"href":217,"dataGaName":218,"dataGaLocation":437},{"text":225,"config":615},{"href":227,"dataGaName":228,"dataGaLocation":437},{"text":233,"config":617},{"href":235,"dataGaName":236,"dataGaLocation":437},{"text":238,"config":619},{"href":240,"dataGaName":241,"dataGaLocation":437},{"text":243,"config":621},{"href":245,"dataGaName":246,"dataGaLocation":437},{"text":248,"config":623},{"href":250,"dataGaName":251,"dataGaLocation":437},{"text":253,"config":625},{"href":255,"dataGaName":256,"dataGaLocation":437},{"title":271,"links":627},[628,630,632,634,636,638,640,644,649,651,653,655],{"text":278,"config":629},{"href":280,"dataGaName":273,"dataGaLocation":437},{"text":283,"config":631},{"href":285,"dataGaName":286,"dataGaLocation":437},{"text":291,"config":633},{"href":293,"dataGaName":294,"dataGaLocation":437},{"text":296,"config":635},{"href":298,"dataGaName":299,"dataGaLocation":437},{"text":301,"config":637},{"href":303,"dataGaName":304,"dataGaLocation":437},{"text":306,"config":639},{"href":308,"dataGaName":309,"dataGaLocation":437},{"text":641,"config":642},"Sustainability",{"href":643,"dataGaName":641,"dataGaLocation":437},"/sustainability/",{"text":645,"config":646},"Diversity, inclusion and belonging (DIB)",{"href":647,"dataGaName":648,"dataGaLocation":437},"/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":311,"config":650},{"href":313,"dataGaName":314,"dataGaLocation":437},{"text":321,"config":652},{"href":323,"dataGaName":324,"dataGaLocation":437},{"text":326,"config":654},{"href":328,"dataGaName":329,"dataGaLocation":437},{"text":656,"config":657},"Modern Slavery Transparency Statement",{"href":658,"dataGaName":659,"dataGaLocation":437},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":661},[662,665,668],{"text":663,"config":664},"Terms",{"href":489,"dataGaName":490,"dataGaLocation":437},{"text":666,"config":667},"Cookies",{"dataGaName":499,"dataGaLocation":437,"id":500,"isOneTrustButton":14},{"text":669,"config":670},"Privacy",{"href":494,"dataGaName":495,"dataGaLocation":437},[672,683,692,703,714,725,735,746,756,767,777,787,797,807,818,829,839,847,858,868,877,886,895,904,914,924,933,943,952,961,970,981,991,1001,1012,1022,1032,1042,1052,1061,1071,1081,1091,1099,1109,1119,1128,1136,1147,1157,1166,1176,1185,1195,1204,1213,1223,1231,1240,1250,1259,1270,1280,1290],{"content":673,"config":681},{"title":674,"heroImage":675,"category":676,"description":677,"authors":678,"date":680},"Getting started with GitLab: Working with CI/CD variables","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659525/Blog/Hero%20Images/blog-getting-started-with-gitlab-banner-0497-option4-fy25.png","product","Learn what CI/CD variables are, why they are important in DevSecOps, and best practices for utilizing them.",[679],"GitLab Team","2025-05-27",{"slug":682,"externalUrl":-1},"getting-started-with-gitlab-working-with-ci-cd-variables",{"content":684,"config":690},{"title":685,"heroImage":675,"category":676,"description":686,"authors":687,"date":689},"Getting started with GitLab: Understanding CI/CD","Learn the basics of continuous integration/continuous delivery in this beginner's guide, including what CI/CD components are and how to create them.",[688],"GitLab","2025-04-25",{"slug":691,"externalUrl":-1},"getting-started-with-gitlab-understanding-ci-cd",{"content":693,"config":701},{"title":694,"heroImage":695,"category":676,"description":696,"authors":697,"date":700},"From code to production: A guide to continuous deployment with GitLab","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659478/Blog/Hero%20Images/REFERENCE_-_Use_this_page_as_a_reference_for_thumbnail_sizes.png","Learn how to get started building a robust continuous deployment pipeline in GitLab. Follow these step-by-step instructions, practical examples, and best practices.",[698,699],"Benjamin Skierlak","James Wormwell","2025-01-28",{"slug":702,"externalUrl":-1},"from-code-to-production-a-guide-to-continuous-deployment-with-gitlab",{"content":704,"config":712},{"title":705,"heroImage":706,"category":707,"description":708,"authors":709,"date":711},"Using child pipelines to continuously deploy to five environments","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097012/Blog/Hero%20Images/Blog/Hero%20Images/AdobeStock_397632156_3Ldy1urjMStQCl4qnOBvE0_1750097011626.jpg","engineering","Learn how to manage continuous deployment to multiple environments, including temporary, on-the-fly sandboxes, with a minimalist GitLab workflow.",[710],"Olivier Dupré","2024-09-26",{"slug":713,"externalUrl":-1},"using-child-pipelines-to-continuously-deploy-to-five-environments",{"content":715,"config":723},{"title":716,"heroImage":717,"category":707,"description":718,"authors":719,"date":722},"Building GitLab with GitLab: A multi-region service to deliver AI features","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098664/Blog/Hero%20Images/Blog/Hero%20Images/building-gitlab-with-gitlab-no-type_building-gitlab-with-gitlab-no-type.png_1750098663794.png","Discover how we built our first multi-region deployment for teams at GitLab using the platform's many features, helping create a frictionless developer experience for GitLab Duo users.",[720,721],"Chance Feick","Sam Wiskow","2024-09-12",{"slug":724,"externalUrl":-1},"building-gitlab-with-gitlab-a-multi-region-service-to-deliver-ai-features",{"content":726,"config":733},{"title":727,"heroImage":728,"category":676,"description":729,"authors":730,"date":732},"Introducing CI/CD Steps, a programming language for DevSecOps automation","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665151/Blog/Hero%20Images/blog-image-template-1800x945__27_.png","Inside GitLab’s vision for CI/CD programmability and a look at how we simplified workflow automation.",[731],"Darren Eastman","2024-08-06",{"slug":734,"externalUrl":-1},"introducing-ci-cd-steps-a-programming-language-for-devsecops-automation",{"content":736,"config":744},{"title":737,"heroImage":738,"category":739,"description":740,"authors":741,"date":743},"A CI/CD component builder's journey","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663857/Blog/Hero%20Images/blog-image-template-1800x945__12_.png","open-source","Learn how a creator of shared, includable templates upskilled by migrating the templates to GitLab CI/CD components and the CI/CD Catalog.",[742],"Darwin Sanoy","2024-06-04",{"slug":745,"externalUrl":-1},"a-ci-component-builders-journey",{"content":747,"config":754},{"title":748,"heroImage":749,"category":707,"description":750,"authors":751,"date":753},"Inside the improved CI logs management experience for multi-line commands","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099499/Blog/Hero%20Images/Blog/Hero%20Images/AdobeStock_639935439_3oqldo5Yt5wPonEJYZOLTM_1750099498739.jpg","Reviewing log output for CI/CD jobs with multi-line commands is now easier than ever. Find out why, how to configure your pipelines, and what's ahead.\n\n",[752],"Romuald Atchadé","2024-01-25",{"slug":755,"externalUrl":-1},"inside-the-improved-ci-logs-management-experience-for-multi-line-commands",{"content":757,"config":765},{"title":758,"heroImage":759,"category":707,"description":760,"authors":761,"date":764},"How to host VueJS apps using GitLab Pages","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683489/Blog/Hero%20Images/hosting.png","Follow this tutorial, including detailed configuration guidance, to quickly get your application up and running for free.",[762,763],"Sophia Manicor","Noah Ing","2023-09-13",{"slug":766,"externalUrl":-1},"hosting-vuejs-apps-using-gitlab-pages",{"content":768,"config":775},{"title":769,"heroImage":770,"category":539,"description":771,"authors":772,"date":774},"5 ways to streamline your cloud adoption","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663930/Blog/Hero%20Images/daytime-clouds_1800x945.png","As companies migrate to the cloud, consider these helpful tips for making the move smoother and more efficient.",[773],"Sharon Gaudin","2023-09-05",{"slug":776,"externalUrl":-1},"five-ways-to-streamline-cloud-adoption",{"content":778,"config":785},{"title":779,"heroImage":780,"category":707,"description":781,"authors":782,"date":784},"How to create efficient DevSecOps workflows with rules for conditional CI/CD pipelines","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669673/Blog/Hero%20Images/engineering.png","CI/CD pipelines can be simple or complex, what makes them efficient are CI rules that define when and how they run.",[783],"Abubakar Siddiq Ango","2023-06-27",{"slug":786,"externalUrl":-1},"efficient-devsecops-workflows-with-rules-for-conditional-pipelines",{"content":788,"config":795},{"title":789,"heroImage":790,"category":791,"description":792,"authors":793,"date":794},"Guide to pre_clone_script changes on GitLab SaaS Linux Runners","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664087/Blog/Hero%20Images/tanukicover.jpg","news","Learn about the change from CI_PRE_CLONE_SCRIPT to pre_get_sources_script on GitLab SaaS Linux Runners.",[731],"2023-03-27",{"slug":796,"externalUrl":-1},"changes-to-the-preclonescript",{"content":798,"config":805},{"title":799,"heroImage":800,"category":707,"description":801,"authors":802,"date":804},"How to automate a Twitter bot using GitLab CI/CD","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749661856/Blog/Hero%20Images/ci-cd-demo.jpg","This tutorial shows how to use the DevSecOps platform to create a set-and-forget Twitter bot.",[803],"Siddharth Mathur","2023-03-21",{"slug":806,"externalUrl":-1},"automating-a-twitter-bot-using-gitlab-cicd",{"content":808,"config":816},{"title":809,"heroImage":810,"category":707,"description":811,"authors":812,"date":815},"Getting started with GitLab application security","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663993/Blog/Hero%20Images/2018-developer-report-cover.jpg","This tutorial shows how to incorporate GitLab security scan templates into a .gitlab-ci.yml file and view scan results.",[813,814],"Victor Hernandez","Julie Byrne","2023-03-15",{"slug":817,"externalUrl":-1},"getting-started-with-gitlab-application-security",{"content":819,"config":827},{"title":820,"heroImage":821,"category":822,"description":823,"authors":824,"date":826},"How to action security vulnerabilities in GitLab Premium","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750099637/Blog/Hero%20Images/Blog/Hero%20Images/security-pipelines_security-pipelines.jpg_1750099637178.jpg","security","Learn step-by-step how to process detected vulnerabilities and spawn merge request approval rules from critical vulnerabilities.",[825,763],"Sam Morris","2023-03-13",{"slug":828,"externalUrl":-1},"actioning-security-vulnerabilities-in-gitlab-premium",{"content":830,"config":837},{"title":831,"heroImage":832,"category":539,"description":833,"authors":834,"date":836},"Secure GitLab CI/CD workflows using OIDC JWT on a DevSecOps platform","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667094/Blog/Hero%20Images/container-security.jpg","Learn a new method to authenticate using JWT to increase the security of CI/CD workflows.",[835],"Dov Hershkovitch","2023-02-28",{"slug":838,"externalUrl":-1},"oidc",{"content":840,"config":845},{"title":841,"heroImage":790,"category":791,"description":842,"authors":843,"date":844},"Understanding the file type variable expansion change in GitLab 15.7","Learn how the change to file type variable expansion can impact CI jobs that rely on the file contents and what to do.",[731],"2023-02-13",{"slug":846,"externalUrl":-1},"impact-of-the-file-type-variable-change-15-7",{"content":848,"config":856},{"title":849,"heroImage":850,"category":851,"description":852,"authors":853,"date":855},"Vestiaire Collective VP shares wins, insights, and what's next with DevSecOps migration","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670278/Blog/Hero%20Images/fasttrack.jpg","customer-stories","Support for container registries and integrations with existing tools were the top reasons for the ecommerce company's migration to GitLab.",[854],"Chandler Gibbons","2023-01-05",{"slug":857,"externalUrl":-1},"vestiaire-collective-on-moving-to-a-devsecops-platform",{"content":859,"config":866},{"title":860,"heroImage":861,"category":707,"description":862,"authors":863,"date":865},"DRY development: A cheatsheet on reusability throughout GitLab","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749683555/Blog/Hero%20Images/drylights.jpg","How to follow the DevOps principle of 'don't repeat yourself' to optimize CI/CD.",[763,864],"Joe Randazzo","2023-01-03",{"slug":867,"externalUrl":-1},"keeping-your-development-dry",{"content":869,"config":875},{"title":870,"heroImage":871,"category":707,"description":872,"authors":873,"date":874},"How to use Ruby 3.1 as the default container image on GitLab SaaS Runners on Linux","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670766/Blog/Hero%20Images/container-reg-cdn-blog.jpg","Learn about the new image and how to ensure CI job compatibility.",[731],"2022-12-13",{"slug":876,"externalUrl":-1},"new-default-container-image-gitlab-saas-linux-runnners",{"content":878,"config":884},{"title":879,"heroImage":880,"category":539,"description":881,"authors":882,"date":883},"How automation is making DevOps pros’ jobs easier","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662504/Blog/Hero%20Images/devsecops-automated-security.jpg","Six ways automation in a DevSecOps platform aids security, monitoring, compliance, and CI/CD.",[773],"2022-12-12",{"slug":885,"externalUrl":-1},"how-automation-is-making-devops-pros-jobs-easier",{"content":887,"config":893},{"title":888,"heroImage":889,"category":707,"description":890,"authors":891,"date":892},"Simple Kubernetes management with GitLab","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749670037/Blog/Hero%20Images/auto-deploy-google-cloud.jpg","Follow our tutorial to provision a Kubernetes cluster and manage it with IAC using Terraform and Helm in 20 minutes or less.",[763],"2022-11-15",{"slug":894,"externalUrl":-1},"simple-kubernetes-management-with-gitlab",{"content":896,"config":902},{"title":897,"heroImage":898,"category":676,"description":899,"authors":900,"date":901},"GitLab introduces new machine types for GitLab SaaS Linux Runners","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749672836/Blog/Hero%20Images/multiple-machine-types-cover.png","GitLab SaaS now offers larger machine types for running CI jobs on Linux.",[731],"2022-09-22",{"slug":903,"externalUrl":-1},"new-machine-types-for-gitlab-saas-runners",{"content":905,"config":912},{"title":906,"heroImage":907,"category":707,"description":908,"authors":909,"date":911},"A visual guide to GitLab CI/CD caching","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682443/Blog/Hero%20Images/cover.jpg","Learn cache types, as well as when and how to use them.",[910],"Matthieu Fronton","2022-09-12",{"slug":913,"externalUrl":-1},"a-visual-guide-to-gitlab-ci-caching",{"content":915,"config":922},{"title":916,"heroImage":917,"category":707,"description":918,"authors":919,"date":921},"An SA story about hyperscaling GitLab Runner workloads using Kubernetes","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669897/Blog/Hero%20Images/kaleidico-26MJGnCM0Wc-unsplash.jpg","It is important to have the complete picture of scaled effects in view when designing automation.",[742,920],"Brian Wald","2022-06-29",{"slug":923,"externalUrl":-1},"a-story-of-runner-scaling",{"content":925,"config":931},{"title":926,"heroImage":927,"category":539,"description":928,"authors":929,"date":930},"GitLab is the single source of truth for eCommerce provider","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668755/Blog/Hero%20Images/swelllogo3.png","Swell uses GitLab company-wide and says the biggest advantage so far is the review operations capability.",[688],"2022-06-23",{"slug":932,"externalUrl":-1},"gitlab-is-the-single-source-of-truth-for-ecommerce-provider",{"content":934,"config":941},{"title":935,"heroImage":936,"category":539,"description":937,"authors":938,"date":940},"How what we learned at KubeCon EU 2022 will impact our product roadmaps","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097776/Blog/Hero%20Images/Blog/Hero%20Images/2_2.png_1750097776369.png","Platform integrations and secrets management are among our product team's primary takeaways. Find out why.",[939],"Viktor Nagy","2022-05-31",{"slug":942,"externalUrl":-1},"the-kubecon-summary-from-a-product-perspective",{"content":944,"config":950},{"title":945,"heroImage":946,"category":707,"description":947,"authors":948,"date":949},"When the pursuit of simplicity creates complexity in container-based CI pipelines","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663397/Blog/Hero%20Images/logoforblogpost.jpg","Simplicity always has a certain player in mind - learn how to avoid antipatterns by ensuring simplicity themes do not compromise your productivity by over-focusing on machine efficiencies.",[742],"2022-05-24",{"slug":951,"externalUrl":-1},"second-law-of-complexity-dynamics",{"content":953,"config":959},{"title":954,"heroImage":955,"category":539,"description":956,"authors":957,"date":958},"Manager of France's .fr domain selects GitLab for its DevSecOps capabilities","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667869/Blog/Hero%20Images/afniclogo.png","Afnic looks to The One DevOps Platform to modernize its software development with automation, security and compliance, and support for multi-cloud environments.",[688],"2022-05-19",{"slug":960,"externalUrl":-1},"manager-of-frances-fr-domain-selects-gitlab",{"content":962,"config":968},{"title":963,"heroImage":964,"category":791,"description":965,"authors":966,"date":967},"Amazon Linux 2 support and distro-specific packages for GitLab","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682299/Blog/Hero%20Images/gitlab-blog-banner.png","Learn how to do early testing as well as how to peg your automation to the EL 7 packages until you are able to properly integrate the changes into your automation.",[742],"2022-05-02",{"slug":969,"externalUrl":-1},"amazon-linux-2-support-and-distro-specific-packages",{"content":971,"config":979},{"title":972,"heroImage":973,"category":822,"description":974,"authors":975,"date":978},"How to ensure separation of duties and enforce compliance with GitLab","https://res.cloudinary.com/about-gitlab-com/image/upload/v1750098232/Blog/Hero%20Images/Blog/Hero%20Images/AdobeStock_479904468%20%281%29_4lmOEVlaXP0YC3hSFmOw6i_1750098232241.jpg","Use your DevSecOps platform to help maintain compliance without compromising on development speed.",[976,977],"Beatriz Barbosa","Fernando Diaz","2022-04-04",{"slug":980,"externalUrl":-1},"ensuring-compliance",{"content":982,"config":989},{"title":983,"heroImage":984,"category":707,"description":985,"authors":986,"date":988},"Extract greater efficiency from your CI pipelines","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667534/Blog/Hero%20Images/ci-pipeline.jpg","Learn some techniques to find the balance between pipeline performance and resource utilization.",[987],"Vlad Budica","2022-03-09",{"slug":990,"externalUrl":-1},"efficient-pipelines",{"content":992,"config":999},{"title":993,"heroImage":994,"category":707,"description":995,"authors":996,"date":998},"Breaking down CI/CD complexity with parent-child and multi-project pipelines","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659961/Blog/Hero%20Images/parent-child-multi-project-pipelines-unsplash.jpg","Parent-child pipelines inherit a lot of the design from multi-project pipelines, but they also have differences that make them unique.",[997],"Fabio Pitino","2022-02-22",{"slug":1000,"externalUrl":-1},"parent-child-vs-multi-project-pipelines",{"content":1002,"config":1010},{"title":1003,"heroImage":1004,"category":1005,"description":1006,"authors":1007,"date":1009},"How to keep up with CI/CD best practices","https://res.cloudinary.com/about-gitlab-com/image/upload/v1756989645/fojzxakmfdea6jfqjkrl.png","insights","In this post, we look at continuous integration/continuous delivery (CI/CD), how to implement some best practices, and why it is important.",[1008],"Itzik Gan Baruch","2022-02-03",{"slug":1011,"externalUrl":-1},"how-to-keep-up-with-ci-cd-best-practices",{"content":1013,"config":1020},{"title":1014,"heroImage":1015,"category":707,"description":1016,"authors":1017,"date":1019},"How to use fine-grained permissions via generic impersonation in CI/CD Tunnel","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667435/Blog/Hero%20Images/tunnel.jpg","Learn how to use use fine-grained permissions via generic impersonation in CI/CD Tunnel",[1018],"Cesar Saavedra","2022-02-01",{"slug":1021,"externalUrl":-1},"cicd-tunnel-impersonation",{"content":1023,"config":1030},{"title":1024,"heroImage":1025,"category":707,"description":1026,"authors":1027,"date":1029},"How to bring DevOps to the database with GitLab and Liquibase","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749672677/Blog/Hero%20Images/metalgears_databasecasestudy.jpg","Learn how to build a continuous delivery pipeline for database code changes with this tutorial.",[1028],"Tsvi Zandany","2022-01-05",{"slug":1031,"externalUrl":-1},"how-to-bring-devops-to-the-database-with-gitlab-and-liquibase",{"content":1033,"config":1040},{"title":1034,"heroImage":1035,"category":791,"description":1036,"authors":1037,"date":1039},"Changes to GitLab.com public project CI/CD minute quotas","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666275/Blog/Hero%20Images/ci_minutes.jpg","How cryptomining has shaped our pipeline consumption visibility approach and our forward-looking changes.",[1038],"Jackie Porter","2021-11-11",{"slug":1041,"externalUrl":-1},"public-project-minute-limits",{"content":1043,"config":1050},{"title":1044,"heroImage":1045,"category":539,"description":1046,"authors":1047,"date":1049},"Get started with GitLab's Helm Package Registry","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749668078/Blog/Hero%20Images/cover-image-helm-registry.jpg","Improve CD workflows and speed up application deployment using our new Helm Package Registry.",[1048],"Philip Welz","2021-10-18",{"slug":1051,"externalUrl":-1},"improve-cd-workflows-helm-chart-registry",{"content":1053,"config":1059},{"title":1054,"heroImage":1055,"category":707,"description":1056,"authors":1057,"date":1058},"Write a stageless CI/CD pipeline using GitLab 14.2","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679507/Blog/Hero%20Images/ci-cd.png","With GitLab 14.2, you can write a complete CI/CD pipeline without defining any stages.",[835],"2021-08-24",{"slug":1060,"externalUrl":-1},"stageless-pipelines",{"content":1062,"config":1069},{"title":1063,"heroImage":1064,"category":707,"description":1065,"authors":1066,"date":1068},"How to provision 100 AWS Graviton GitLab Spot Runners in 10 Minutes for $2/hour","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669882/Blog/Hero%20Images/hundredgitlabspotrunner.png","Utilizing the GitLab HA Scaling Runner Vending Machine for AWS Automation to setup 100 GitLab runners on AWS Spot.",[742,1067],"Nupur Sharma","2021-08-17",{"slug":1070,"externalUrl":-1},"100-runners-in-less-than-10mins-and-less-than-10-clicks",{"content":1072,"config":1079},{"title":1073,"heroImage":1074,"category":707,"description":1075,"authors":1076,"date":1078},"How GitLab 14 satisfies the need for speed with modern DevOps","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682089/Blog/Hero%20Images/racecar_devops.jpg","GitLab 14: Ship with velocity, ship with confidence",[1077],"Parker Ennis","2021-07-29",{"slug":1080,"externalUrl":-1},"velocity-with-confidence",{"content":1082,"config":1089},{"title":1083,"heroImage":1084,"category":707,"description":1085,"authors":1086,"date":1088},"How to become more productive with Gitlab CI","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667358/Blog/Hero%20Images/gitlab-productivity.jpg","Explore some CI/CD strategies that can make your team more efficient and productive.",[1087],"Veethika Mishra","2021-06-21",{"slug":1090,"externalUrl":-1},"how-to-become-more-productive-with-gitlab-ci",{"content":1092,"config":1097},{"title":1093,"heroImage":1055,"category":791,"description":1094,"authors":1095,"date":1096},"How to use GitLab with OCI ARM-based compute instances","We explain two ways to set up GitLab on Oracle ARM-based instances.",[783],"2021-05-25",{"slug":1098,"externalUrl":-1},"gitlab-oracle-cloud-arm-based",{"content":1100,"config":1107},{"title":1101,"heroImage":1102,"category":707,"description":1103,"authors":1104,"date":1106},"3 Ways to approach GitOps","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669635/Blog/Hero%20Images/gitops-cover.jpg","Learn about how GitLab users can employ GitOps to cover both Kubernetes and non-Kubernetes environments",[1105,835],"Saumya Upadhyaya","2021-04-27",{"slug":1108,"externalUrl":-1},"gitops-done-3-ways",{"content":1110,"config":1117},{"title":1111,"heroImage":1112,"category":707,"description":1113,"authors":1114,"date":1116},"How to achieve a GitLab Jira integration","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667260/Blog/Hero%20Images/twopeasinapod.jpg","Check out how to integrate GitLab self-managed with Atlassian Jira to connect your merge requests, branches, and commits to a Jira issue.",[1115],"Tye Davis","2021-04-12",{"slug":1118,"externalUrl":-1},"gitlab-jira-integration-selfmanaged",{"content":1120,"config":1126},{"title":1121,"heroImage":1122,"category":707,"description":1123,"authors":1124,"date":1125},"GitLab environment variables demystified","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664679/Blog/Hero%20Images/blog-image-template-1800x945__24_.png","CI/CD variables are useful (and flexible) tools to control jobs and pipelines. We unpack everything you need to know about GitLab environment variables.",[1087],"2021-04-09",{"slug":1127,"externalUrl":-1},"demystifying-ci-cd-variables",{"content":1129,"config":1134},{"title":1130,"heroImage":1112,"category":707,"description":1131,"authors":1132,"date":1133},"How to integrate GitLab.com with Jira Cloud","Check out how to use the GitLab App on the Atlassian Marketplace to connect your merge requests, branches, and commits to a Jira issue.",[1115],"2021-03-25",{"slug":1135,"externalUrl":-1},"integrating-gitlab-com-with-atlassian-jira-cloud",{"content":1137,"config":1145},{"title":1138,"heroImage":1139,"category":1140,"description":1141,"authors":1142,"date":1144},"We are very far from a better Heroku for production apps in a hyper cloud","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749672405/Blog/Hero%20Images/spacex-unsplash.jpg","unfiltered","GitLab is building Heroku for production apps in hyper clouds, integrated into your DevSecOps workflow: The 5 minute production app.",[1143],"Michael Friedrich","2021-03-22",{"slug":1146,"externalUrl":-1},"we-are-building-a-better-heroku",{"content":1148,"config":1155},{"title":1149,"heroImage":1150,"category":707,"description":1151,"authors":1152,"date":1154},"Production-grade infrastructure, GitOps convergence, and DevSecOps in under 5 minutes","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665839/Blog/Hero%20Images/devops.png","Unlock production-grade infrastructure and development workflows in under five minutes with Five Minute Production App: a blend of solutions offered by AWS, Hashicorp Terraform, and GitLab.",[1153],"Sri Rangan","2021-02-24",{"slug":1156,"externalUrl":-1},"production-grade-infra-devsecops-with-five-minute-production",{"content":1158,"config":1164},{"title":1159,"heroImage":1160,"category":707,"description":1161,"authors":1162,"date":1163},"Meet Pipeline Editor, your one-stop shop for building a CI/CD pipeline","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665961/Blog/Hero%20Images/image_cover.jpg","The Pipeline Editor reduces the complexity of configuring your CI/CD pipelines.",[835],"2021-02-22",{"slug":1165,"externalUrl":-1},"pipeline-editor-overview",{"content":1167,"config":1174},{"title":1168,"heroImage":1169,"category":707,"description":1170,"authors":1171,"date":1173},"How to use GitLab CI to deploy to multiple environments","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749662033/Blog/Hero%20Images/intro.jpg","We walk you through different scenarios to demonstrate the versatility and power of GitLab CI.",[1172,1018],"Ivan Nemytchenko","2021-02-05",{"slug":1175,"externalUrl":-1},"ci-deployment-and-environments",{"content":1177,"config":1183},{"title":1178,"heroImage":1179,"category":1140,"description":1180,"authors":1181,"date":1182},"GitLab’s automated and integrated continuous delivery","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681872/Blog/Hero%20Images/CD-2st-mkt-diff-cover-1275x849.jpg","Learn about how the power of GitLab Auto DevOps can help increase productivity and speed up releases.",[1018],"2021-01-22",{"slug":1184,"externalUrl":-1},"cd-automated-integrated",{"content":1186,"config":1193},{"title":1187,"heroImage":1188,"category":707,"description":1189,"authors":1190,"date":1192},"How we used parallel CI/CD jobs to increase our productivity","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666717/Blog/Hero%20Images/cover-image.jpg","GitLab uses parallel jobs to help long-running jobs run faster.",[1191],"Miguel Rincon","2021-01-20",{"slug":1194,"externalUrl":-1},"using-run-parallel-jobs",{"content":1196,"config":1202},{"title":1197,"heroImage":1198,"category":707,"description":1199,"authors":1200,"date":1201},"How to use GitLab tools for continuous delivery","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749682956/Blog/Hero%20Images/CD-continuous-nature-cover-880x586.jpg","Learn how to use GitLab technology to release software faster and with less risk.",[1018],"2020-12-17",{"slug":1203,"externalUrl":-1},"cd-solution-overview",{"content":1205,"config":1211},{"title":1206,"heroImage":1207,"category":707,"description":1208,"authors":1209,"date":1201},"How to use GitLab for Agile, CI/CD, GitOps, and more","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749681825/Blog/Hero%20Images/triangle_geo.jpg","Read our example engineering stories from the past two years that show how to use GitLab for you DevOps cycle, including GitOps, CI/CD and more.",[1210],"Sara Kassabian",{"slug":1212,"externalUrl":-1},"gitlab-for-cicd-agile-gitops-cloudnative",{"content":1214,"config":1221},{"title":1215,"heroImage":1216,"category":707,"description":1217,"authors":1218,"date":1220},"How to deploy to AWS with GitLab","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749672124/Blog/Hero%20Images/aws_rocket.jpg","We believe deploying to the cloud should be easy and boring. The deployment process is the same regardless of what tech stack you're using so why not automate it?",[1219],"Orit Golowinski","2020-12-15",{"slug":1222,"externalUrl":-1},"deploy-aws",{"content":1224,"config":1229},{"title":1225,"heroImage":1226,"category":1140,"description":1227,"authors":1228,"date":1220},"A journey from the first code to CI/CD deployments in 5 minutes?","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749665823/Blog/Hero%20Images/snow-speed-unsplash.jpg","From writing, building, and testing code to reviewing, releasing, and deploying in 5 minutes. Is this possible? Learn which hurdles you might encounter and how to solve them. Spoiler: Without Kubernetes.",[1143],{"slug":1230,"externalUrl":-1},"first-code-to-ci-cd-deployments-in-5-minutes",{"content":1232,"config":1238},{"title":1233,"heroImage":1234,"category":707,"description":1235,"authors":1236,"date":1237},"How to use merge train pipelines with GitLab","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749667210/Blog/Hero%20Images/merge-train-explained-banner.jpg","Read here an introduction on what merge trains are, how to use them and how to incorporate them to your GitLab project.",[1087],"2020-12-14",{"slug":1239,"externalUrl":-1},"merge-trains-explained",{"content":1241,"config":1248},{"title":1242,"heroImage":1243,"category":1005,"description":1244,"authors":1245,"date":1247},"How we're improving migrations from Jenkins to GitLab CI/CD","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749679556/Blog/Hero%20Images/insights.png","Learn more about our Jenkins Importer category and see what's in the works for easier Jenkins migrations.",[1246],"Chrissie Buchanan","2020-12-08",{"slug":1249,"externalUrl":-1},"migrate-from-jenkins-update",{"content":1251,"config":1257},{"title":1252,"heroImage":1253,"category":791,"description":1254,"authors":1255,"date":1256},"GitLab and The Forrester Wave: Continuous Delivery and Release Automation Q2 2020","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749666262/Blog/Hero%20Images/default-blog-image.png","GitLab named a Strong Performer in Forrester Wave for Continuous Delivery and Release Automation",[1077],"2020-07-08",{"slug":1258,"externalUrl":-1},"forrester-cdra2020",{"content":1260,"config":1268},{"title":1261,"heroImage":1262,"category":1140,"description":1263,"authors":1264,"date":1267},"13.0 Contributor Experience Update","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749669604/Blog/Hero%20Images/tanuki-bg-sm.gif","We're continually improving the tooling that helps our community of contributors build GitLab. Here's what's new over the last month!",[1265,1266],"Patrick Deuley","Taurie Davis","2020-06-01",{"slug":1269,"externalUrl":-1},"13-0-contributor-experience-update",{"content":1271,"config":1278},{"title":1272,"heroImage":1273,"category":1005,"description":1274,"authors":1275,"date":1277},"Securing the journey to continuous delivery","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749678442/Blog/Hero%20Images/londoncommit.png","The UK Dept for Work and Pensions bring security best practices to the forefront of a massive transition to continuous delivery.",[1276],"Vanessa Wegner","2019-10-30",{"slug":1279,"externalUrl":-1},"secure-journey-continuous-delivery",{"content":1281,"config":1288},{"title":1282,"heroImage":1283,"category":273,"description":1284,"authors":1285,"date":1287},"GitLab leads the industry forward with the CD Foundation","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663648/Blog/Hero%20Images/gitlab-joins-cd-foundation.jpg","Today we're proud to announce we've joined the CD Foundation as a founding member.",[1286],"Sid Sijbrandij","2019-03-12",{"slug":1289,"externalUrl":-1},"gitlab-joins-cd-foundation",{"content":1291,"config":1298},{"title":1292,"heroImage":1293,"category":707,"description":1294,"authors":1295,"date":1297},"How to create a CI/CD pipeline with Auto Deploy to Kubernetes using GitLab and Helm","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749664472/Blog/Hero%20Images/gitlabflatlogomap.png","One user walks through how he tried GitLab caching and split the job into multiple steps to get better feedback.",[1296],"Sergey Nuzhdin","2017-09-21",{"slug":1299,"externalUrl":-1},"how-to-create-a-ci-cd-pipeline-with-auto-deploy-to-kubernetes-using-gitlab",1772652102506]