Files
nexus/sreweekly/articles/123/05-canary-deployment-what-is-it-and-how-can-i-use-it.html
2026-09-12 17:23:01 +08:00

1854 lines
158 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html><!-- Last Published: Thu Sep 10 2026 16:27:10 GMT+0000 (Coordinated Universal Time) --><html data-wf-domain="webflow.cloudbees.com" data-wf-page="6a1fe2a5a11dca1afc48dd2b" data-wf-site="695e1939655d6c0175b126da" data-wf-intellimize-customer-id="117374858" lang="en" data-wf-collection="6a1fe2a4a11dca1afc48dd15" data-wf-item-slug="advanced-deployment-strategies-with-argo-rollouts"><head><meta charset="utf-8"/><link href="https://cdn.prod.website-files.com" rel="preconnect" crossorigin="anonymous"/><title>Advanced Deployment Strategies with Argo Rollouts</title><meta content="CloudBees CD/RO now integrates with Argo Rollouts, enabling canary and blue-green deployments in Kubernetes with full orchestration and rollback control." name="description"/><meta content="Advanced Deployment Strategies with Argo Rollouts" property="og:title"/><meta content="CloudBees CD/RO now integrates with Argo Rollouts, enabling canary and blue-green deployments in Kubernetes with full orchestration and rollback control." property="og:description"/><meta content="Advanced Deployment Strategies with Argo Rollouts" name="twitter:title"/><meta content="CloudBees CD/RO now integrates with Argo Rollouts, enabling canary and blue-green deployments in Kubernetes with full orchestration and rollback control." name="twitter:description"/><meta property="og:type" content="website"/><meta content="summary_large_image" name="twitter:card"/><meta content="width=device-width, initial-scale=1" name="viewport"/><link href="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/css/cloudbees-staging.shared.de709e9b8.min.css" rel="stylesheet" type="text/css" integrity="sha384-3nCem4UuiZHajW+HR0KDQRVI46PykPFAtPxnct426b/xTCCmlGUsL0dDDMM+wvJt" crossorigin="anonymous"/><style>@media (min-width:992px) {html.w-mod-js:not(.w-mod-ix) [data-w-id="0199c7fc-edc8-ee9f-99d2-5aa4a810855b"] {-webkit-transform:translate3d(0, 2rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-moz-transform:translate3d(0, 2rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-ms-transform:translate3d(0, 2rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);transform:translate3d(0, 2rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);opacity:0;}html.w-mod-js:not(.w-mod-ix) [data-w-id="0199c7fc-edc8-ee9f-99d2-5aa4a810855d"] {-webkit-transform:translate3d(0, 1rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-moz-transform:translate3d(0, 1rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-ms-transform:translate3d(0, 1rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);transform:translate3d(0, 1rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);opacity:0;}html.w-mod-js:not(.w-mod-ix) [data-w-id="e08e7190-573b-1ed5-0f56-04bb938f6aff"] {-webkit-transform:translate3d(0, 2rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-moz-transform:translate3d(0, 2rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-ms-transform:translate3d(0, 2rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);transform:translate3d(0, 2rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);opacity:0;}}@media (max-width:991px) and (min-width:768px) {html.w-mod-js:not(.w-mod-ix) [data-w-id="0199c7fc-edc8-ee9f-99d2-5aa4a810855b"] {-webkit-transform:translate3d(0, 2rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-moz-transform:translate3d(0, 2rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-ms-transform:translate3d(0, 2rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);transform:translate3d(0, 2rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);opacity:0;}html.w-mod-js:not(.w-mod-ix) [data-w-id="0199c7fc-edc8-ee9f-99d2-5aa4a810855d"] {-webkit-transform:translate3d(0, 1rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-moz-transform:translate3d(0, 1rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-ms-transform:translate3d(0, 1rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);transform:translate3d(0, 1rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);opacity:0;}html.w-mod-js:not(.w-mod-ix) [data-w-id="e08e7190-573b-1ed5-0f56-04bb938f6aff"] {-webkit-transform:translate3d(0, 2rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-moz-transform:translate3d(0, 2rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-ms-transform:translate3d(0, 2rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);transform:translate3d(0, 2rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);opacity:0;}}@media (max-width:767px) and (min-width:480px) {html.w-mod-js:not(.w-mod-ix) [data-w-id="0199c7fc-edc8-ee9f-99d2-5aa4a810855b"] {-webkit-transform:translate3d(0, 2rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-moz-transform:translate3d(0, 2rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-ms-transform:translate3d(0, 2rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);transform:translate3d(0, 2rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);opacity:0;}html.w-mod-js:not(.w-mod-ix) [data-w-id="0199c7fc-edc8-ee9f-99d2-5aa4a810855d"] {-webkit-transform:translate3d(0, 1rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-moz-transform:translate3d(0, 1rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-ms-transform:translate3d(0, 1rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);transform:translate3d(0, 1rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);opacity:0;}html.w-mod-js:not(.w-mod-ix) [data-w-id="e08e7190-573b-1ed5-0f56-04bb938f6aff"] {-webkit-transform:translate3d(0, 2rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-moz-transform:translate3d(0, 2rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-ms-transform:translate3d(0, 2rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);transform:translate3d(0, 2rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);opacity:0;}}</style><link href="https://fonts.googleapis.com" rel="preconnect"/><link href="https://fonts.gstatic.com" rel="preconnect" crossorigin="anonymous"/><script src="https://ajax.googleapis.com/ajax/libs/webfont/1.6.26/webfont.js" type="text/javascript"></script><script type="text/javascript">WebFont.load({ google: { families: ["Inconsolata:400,700","Inter:300,400,500,600,700"] }});</script><script type="text/javascript">!function(o,c){var n=c.documentElement,t=" w-mod-";n.className+=t+"js",("ontouchstart"in o||o.DocumentTouch&&c instanceof DocumentTouch)&&(n.className+=t+"touch")}(window,document);</script><link href="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/69712fa082fbe845b939a243_CloudBees-favicon.png" rel="shortcut icon" type="image/x-icon"/><link href="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/69712fc6dc61f354e7d8715e_CloudBees-webclip.svg" rel="apple-touch-icon"/><link href="https://www.cloudbees.com/blog/advanced-deployment-strategies-with-argo-rollouts" rel="canonical"/><script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "BlogPosting",
"headline": "Advanced Deployment Strategies with Argo Rollouts",
"name": "Blog - Advanced Deployment Strategies with Argo Rollouts",
"description": "CloudBees CD/RO now integrates with Argo Rollouts, enabling canary and blue-green deployments in Kubernetes with full orchestration and rollback control.",
"url": "/blog/advanced-deployment-strategies-with-argo-rollouts",
"image": "",
"datePublished": "2023-03-30",
"dateModified": "2026-08-21T17:45:13.001Z",
"author": {
"@type": "Person",
"name": "Drew Piland",
"image": "https://cdn.prod.website-files.com/6964c3f9b6de03a57eb64454/6a214aa8ec5e4bb6527dbf78_DrewPiland-Headshot.jpeg",
"jobTitle": "Senior Product Marketing Manager"
},
"publisher": {
"@type": "Organization",
"name": "CloudBees",
"logo": {
"@type": "ImageObject",
"url": "https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696254cf9924a1df0698d83e_Brand%20Logo.svg"
}
},
"articleSection": "Product Updates",
"inLanguage": "en"
}
</script><style>.anti-flicker, .anti-flicker * {visibility: hidden !important; opacity: 0 !important;}</style><style>[data-wf-hidden-variation], [data-wf-hidden-variation] * {
display: none !important;
}</style><script type="text/javascript">if (localStorage.getItem('intellimize_data_tracking_type') !== 'disabled') { localStorage.setItem('intellimize_opt_out_117374858', 'true'); } if (localStorage.getItem('intellimize_data_tracking_type') !== 'disabled') { localStorage.setItem('intellimize_data_tracking_type', 'disabled'); }</script><script type="text/javascript">(function(e){var s={r:[]};e.wf={r:s.r,ready:t=>{s.r.push(t)}}})(window)</script><script type="text/javascript">(function(e){var s={p:[],r:[]};e.intellimize={p:s.p,r:s.r,push:function(t){s.p.push(t)},ready:function(t){s.r.push(t)}}})(window)</script><script type="text/javascript">(function(t,p){var n=document.documentElement;n.className+=" "+p,setTimeout(function(){n.className=n.className.replace(RegExp(" ?"+p),"")},t)})(4000, 'anti-flicker')</script><link href="https://cdn.intellimize.co/snippet/117374858.js" rel="preload" as="script"/><script type="text/javascript">var wfClientScript=document.createElement("script");wfClientScript.src="https://cdn.intellimize.co/snippet/117374858.js",wfClientScript.async=!0,wfClientScript.onerror=function(){document.documentElement.className=document.documentElement.className.replace(RegExp(" ?anti-flicker"),"")},document.head.appendChild(wfClientScript);</script><link href="https://api.intellimize.co" rel="preconnect" crossorigin="true"/><link href="https://log.intellimize.co" rel="preconnect" crossorigin="true"/><link href="https://117374858.intellimizeio.com" rel="preconnect"/><link href="rss.xml" rel="alternate" title="RSS Feed" type="application/rss+xml"/><!-- OneTrust Cookies Consent Notice start for cloudbees.com -->
<script src="https://cdn.cookielaw.org/scripttemplates/otSDKStub.js" type="text/javascript" charset="UTF-8" data-domain-script="30e8c8b5-5f2b-4d72-a544-f68ac4b5ebe8" ></script>
<script type="text/javascript">
function OptanonWrapper() {
// Get initial OnetrustActiveGroups ids
if(typeof OptanonWrapperCount == "undefined"){
otGetInitialGrps();
}
//Delete cookies
otDeleteCookie(otIniGrps);
// Assign OnetrustActiveGroups to custom variable
function otGetInitialGrps(){
OptanonWrapperCount = '';
otIniGrps = OnetrustActiveGroups;
// console.log("otGetInitialGrps", otIniGrps)
}
function otDeleteCookie(iniOptGrpId)
{
var otDomainGrps = JSON.parse(JSON.stringify(Optanon.GetDomainData().Groups));
var otDeletedGrpIds = otGetInactiveId(iniOptGrpId, OnetrustActiveGroups);
if(otDeletedGrpIds.length != 0 && otDomainGrps.length !=0){
for(var i=0; i < otDomainGrps.length; i++){
//Check if CustomGroupId matches
if(otDomainGrps[i]['CustomGroupId'] != '' && otDeletedGrpIds.includes(otDomainGrps[i]['CustomGroupId'])){
for(var j=0; j < otDomainGrps[i]['Cookies'].length; j++){
// console.log("otDeleteCookie",otDomainGrps[i]['Cookies'][j]['Name'])
//Delete cookie
eraseCookie(otDomainGrps[i]['Cookies'][j]['Name']);
}
}
//Check if Hostid matches
if(otDomainGrps[i]['Hosts'].length != 0){
for(var j=0; j < otDomainGrps[i]['Hosts'].length; j++){
//Check if HostId presents in the deleted list and cookie array is not blank
if(otDeletedGrpIds.includes(otDomainGrps[i]['Hosts'][j]['HostId']) && otDomainGrps[i]['Hosts'][j]['Cookies'].length !=0){
for(var k=0; k < otDomainGrps[i]['Hosts'][j]['Cookies'].length; k++){
//Delete cookie
eraseCookie(otDomainGrps[i]['Hosts'][j]['Cookies'][k]['Name']);
}
}
}
}
}
}
otGetInitialGrps(); //Reassign new group ids
}
//Get inactive ids
function otGetInactiveId(customIniId, otActiveGrp){
//Initial OnetrustActiveGroups
// console.log("otGetInactiveId",customIniId)
customIniId = customIniId.split(",");
customIniId = customIniId.filter(Boolean);
//After action OnetrustActiveGroups
otActiveGrp = otActiveGrp.split(",");
otActiveGrp = otActiveGrp.filter(Boolean);
var result=[];
for (var i=0; i < customIniId.length; i++){
if ( otActiveGrp.indexOf(customIniId[i]) <= -1 ){
result.push(customIniId[i]);
}
}
return result;
}
//Delete Cookies by Name Pattern
function findCookiesByPattern(cookieNamePattern){
var cookies = document.cookie.split(';');
var dataCookies = cookies.filter(function(cookie){
if (cookie.trim().indexOf(cookieNamePattern) === 0) {
var cookieName = cookie.substr(0,cookie.indexOf('='));
eraseCookie(cookieName)
return true;
} else {
return false;
}
});
}
//Delete cookie
function eraseCookie(name) {
if (name === '_ga_xxxxxxxxxx') {
findCookiesByPattern('_ga_')
}
if (name === '_gclxxxx') {
findCookiesByPattern('_gcl')
}
//Delete root path cookies
domainName = window.location.hostname;
domainNameDot = '.'+domainName.replace(/www./g, "");
document.cookie = name+'=; Max-Age=-99999999; Path=/;Domain='+ domainNameDot;
document.cookie = name+'=; Max-Age=-99999999; Path=/;Domain='+ domainName;
document.cookie = name+'=; Max-Age=-99999999; Path=/;';
//Delete LSO incase LSO being used, cna be commented out.
localStorage.removeItem(name);
//Check for the current path of the page
pathArray = window.location.pathname.split('/');
//Loop through path hierarchy and delete potential cookies at each path.
for (var i=0; i < pathArray.length; i++){
if (pathArray[i]){
//Build the path string from the Path Array e.g /site/login
var currentPath = pathArray.slice(0,i+1).join('/');
document.cookie = name+'=; Max-Age=-99999999; Path=' + currentPath + ';Domain='+ domainNameDot;
document.cookie = name+'=; Max-Age=-99999999; Path=' + currentPath + ';Domain='+ domainName;
document.cookie = name+'=; Max-Age=-99999999; Path=' + currentPath + ';';
//Maybe path has a trailing slash!
document.cookie = name+'=; Max-Age=-99999999; Path=' + currentPath + '/;Domain='+ domainNameDot;
document.cookie = name+'=; Max-Age=-99999999; Path=' + currentPath + '/;Domain='+ domainName;
document.cookie = name+'=; Max-Age=-99999999; Path=' + currentPath + '/;';
}
}
}
}
</script>
<!-- OneTrust Cookies Consent Notice end for cloudbees.com -->
<!-- WebFlow OneTrust Cookies Consent Integration -->
<script>
const runConsentMode = () => {
wf.ready(() => {
// Function to opt in or out based on consent preferences
const handleWebflowAnalyticsConsent = () => {
try {
// Logic to check consent groups from the OneTrust cookie
const otCookieKey = 'OptanonConsent=';
const otCookie = document.cookie.split('; ').find(row => row.startsWith(otCookieKey));
if (!otCookie) {
throw new Error('OneTrust cookie not found.');
}
const otGroupsKey = 'groups=';
const otGroups = decodeURIComponent(otCookie.split('&').find(row => row.startsWith(otGroupsKey)).split('=')[1]);
// OneTrust groups: 1 = necessary, 2 = performance, 3 = functional, 4 = targeting
const OT_FUNCTIONAL_CONSENT = 'C0003:1'; // Ensure this matches your expected consent group
// Check for functional cookies group
const hasOptedIn = otGroups.indexOf(OT_FUNCTIONAL_CONSENT) !== -1;
// Adjust Webflow Analytics opt-in/out based on consent
if (hasOptedIn) {
wf.allowUserTracking();
} else {
wf.denyUserTracking();
}
} catch (e) {
console.error('Error handling OneTrust consent:', e);
}
};
// Set up the OneTrust consent change listener to check when preferences change
if (typeof OneTrust !== 'undefined' && OneTrust.OnConsentChanged) {
OneTrust.OnConsentChanged(() => {
handleWebflowAnalyticsConsent();
});
}
// Initial check when the page loads
handleWebflowAnalyticsConsent();
});
};
if (typeof window.wf !== "undefined" && typeof window.wf.ready === "function") {
window.wf.ready(runConsentMode);
} else {
// fallback so your code still runs
document.addEventListener("DOMContentLoaded", runConsentMode);
console.warn("wf is not defined; using DOMContentLoaded fallback");
}
</script>
<!-- WebFlow OneTrust Cookies Consent Integration -->
<!-- Initial Google Consent Set to denied to match OneTrust -->
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
// Default is DENIED (matches your OneTrust default reject)
gtag('consent', 'default', {
ad_storage: 'denied',
ad_user_data: 'denied',
ad_personalization: 'denied',
analytics_storage: 'denied',
functionality_storage: 'denied',
personalization_storage: 'denied',
security_storage: 'granted',
wait_for_update: 500
});
</script>
<!-- End Initial Google Consent Set to denied to match OneTrust -->
<!-- Navattic JS (MKT-2104) — queue stub + async SDK, loaded for ALL visitors.
Moved here from the GTM "Navattic JS" tag so consent can be signalled via
setCookieConsent (see the OneTrust->Google sync below). Remove the GTM tag when this ships. -->
<script>
void 0===window.navatticQueue&&(window.navatticQueue=[],window.navattic=new Proxy({},{get:function n(t,u,e){return function(){for(var n=arguments.length,t=Array(n),e=0;e<n;e++)t[e]=arguments[e];return navatticQueue.push({function:u,arguments:t})}}}));
</script>
<script async src="https://js.navattic.com/sdk.js?key=pkey_cm9vjdepy000j04l4hexl9p18"></script>
<!-- End Navattic JS -->
<!-- Update Google Consent to match OneTrust Consent Categories-->
<script>
(function(){
const OT_ANALYTICS = "C0002"; // OneTrust Performance Cookies Group ID
const OT_FUNCTIONALITY = "C0003"; // OneTrust Functional Cookies Group ID
const OT_ADS_PERSONALIZATION = "C0004"; // OneTrust Targeting Cookies Group ID
function getGroups() {
const oc = document.cookie.split("; ").find(x => x.startsWith("OptanonConsent="));
if (!oc) return "";
const groupsParam = oc.split("&").find(x => x.startsWith("groups="));
return groupsParam ? decodeURIComponent(groupsParam.split("=")[1]) : "";
}
function syncConsentToGoogle() {
const groups = getGroups();
const analyticsOn = groups.includes(`${OT_ANALYTICS}:1`);
const functionalityOn = groups.includes(`${OT_FUNCTIONALITY}:1`);
const targettingOn = groups.includes(`${OT_ADS_PERSONALIZATION}:1`);
gtag("consent", "update", {
ad_storage: targettingOn ? "granted" : "denied",
ad_user_data: targettingOn ? "granted" : "denied",
ad_personalization: targettingOn ? "granted" : "denied",
analytics_storage: analyticsOn ? "granted" : "denied",
functionality_storage: functionalityOn ? "granted" : "denied",
personalization_storage: targettingOn ? "granted" : "denied",
});
// MKT-2104: mirror Targeting (C0004) consent to Navattic — runs anonymously (no cookies/PII) when denied,
// but still emits events so the Google Ads conversion can send a cookieless (modeled) ping.
try { navattic.setCookieConsent(targettingOn); } catch (e) {}
}
window.addEventListener("OneTrustGroupsUpdated", syncConsentToGoogle);
syncConsentToGoogle();
})();
</script>
<!-- End Update Google Consent to match OneTrust Consent Categories-->
<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer','GTM-KMJ7D77');</script>
<!-- End Google Tag Manager -->
<!-- Ad Attribution Session Storage -->
<script>
(function () {
const params = new URLSearchParams(window.location.search);
const utms = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_content', 'utm_term'];
const captured = {};
utms.forEach((key) => {
if (params.get(key)) captured[key] = params.get(key);
});
if (Object.keys(captured).length > 0) {
// Tag the originating page so we know where the session started
captured.utm_landing_page = window.location.pathname;
sessionStorage.setItem('cb_ad_attribution', JSON.stringify(captured));
}
})();
</script>
<!-- End Ad Attribution Session Storage -->
<style>
.nav__banner {
display: none;
}
.nav__banner.show {
display: block;
}
</style>
<!-- Privacy-friendly analytics by Plausible -->
<script async src="https://plausible.io/js/pa-hcJukO43tqwUkZ00jY7P2.js"></script>
<script>
window.plausible=window.plausible||function(){(plausible.q=plausible.q||[]).push(arguments)},plausible.init=plausible.init||function(i){plausible.o=i||{}};
plausible.init()
</script><!--head code-->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Roboto+Mono:wght@400&display=swap" rel="stylesheet">
<!-- <meta
property="og:image"
content="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/6a8569f061da12045317c7d2_OG%20-%20%20CloudBees%20Blog.png"
> --></head><body><div class="page-wrapper"><div class="styles"><div class="global-styles w-embed"><style>
/* Make text look crisper and more legible in all browsers */
body {
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
font-smoothing: antialiased;
text-rendering: optimizeLegibility;
}
/* Focus state style for keyboard navigation for the focusable elements */
*[tabindex]:focus-visible,
input[type="file"]:focus-visible {
outline: 0.125rem solid #4d65ff;
outline-offset: 0.125rem;
}
/* Get rid of top margin on first element in any rich text element */
.w-richtext > :not(div):first-child, .w-richtext > div:first-child > :first-child {
margin-top: 0 !important;
}
/* Get rid of bottom margin on last element in any rich text element */
.w-richtext>:last-child, .w-richtext ol li:last-child, .w-richtext ul li:last-child {
margin-bottom: 0 !important;
}
/* Create a class of .div-square which maintains a 1:1 dimension of a div */
.div-square::after {
content: "";
display: block;
padding-bottom: 100%;
}
/* Make sure containers never lose their center alignment */
.container-medium,.container-small, .container-large, .container-huge {
margin-right: auto !important;
margin-left: auto !important;
}
/*
Make the following elements inherit typography styles from the parent and not have hardcoded values.
Important: You will not be able to style for example "All Links" in Designer with this CSS applied.
Uncomment this CSS to use it in the project. Leave this message for future hand-off.
*/
/*
a,
.w-input,
.w-select,
.w-tab-link,
.w-nav-link,
.w-dropdown-btn,
.w-dropdown-toggle,
.w-dropdown-link {
color: inherit;
text-decoration: inherit;
font-size: inherit;
}
*/
/* Apply "..." after 3 lines of text */
.ts-3lines {
display: -webkit-box;
overflow: hidden;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
}
/* Apply "..." after 2 lines of text */
.ts-2lines {
display: -webkit-box;
overflow: hidden;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}
/* Apply "..." after 1 lines of text */
.ts-1line {
display: -webkit-box;
overflow: hidden;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
}
/* Adds inline flex display */
.display-inlineflex {
display: inline-flex;
}
/* These classes are never overwritten */
.hide {
display: none !important;
}
@media screen and (max-width: 991px),
@media screen and (max-width: 767px),
@media screen and (max-width: 479px){
.hide, .hide-tablet{
display: none !important;
}
}
@media screen and (max-width: 767px)
.hide-mobile-landscape{
display: none !important;
}
}
@media screen and (max-width: 479px)
.hide-mobile{
display: none !important;
}
}
/* Removes native scrollbar */
.no-scrollbar,
[data-scrollbar="none"] {
-ms-overflow-style: none; /* For Internet Explorer and Edge */
overflow: -moz-scrollbars-none; /* For Firefox */
}
.no-scrollbar::-webkit-scrollbar,
[data-scrollbar="none"]::-webkit-scrollbar {
display: none; /* For Chrome, Safari, and Opera */
}
[x-clip] {
overflow-x: clip;
}
body.popup-open {
overflow: hidden;
padding-right: var(--scrollbar-width);
}
.sr-only {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border: 0;
}
.mktoCaptchaDisclaimer {
color: #666;
}
</style></div><div class="project-styles w-embed"><style>
.button:hover .button-arrow {
transform: translateX(2px);
}
.btn-contrast .btn-icon {
filter: invert(6%) sepia(12%) saturate(420%) hue-rotate(200deg) brightness(20%) contrast(110%);
}
.btn-sm .btn-icon {
width: 1.25rem;
height: 1.25rem;
}
.swiper-arrow.swiper-button-disabled {
pointer-events: none;
color: var(--_tokens---button--secondary-disabled);
border-color: var(--_tokens---button--secondary-disabled);
}
.contact_rte ul > li:before,
.tabs_rte ul > li:before,
.main_rte ul > li:before,
.main_rte-p2 ul > li:before {
content: '';
height: 1.25rem;
width: 1.25rem;
min-width: 1.25rem;
margin-top: 0.125rem;
display: block;
position: absolute;
left: -2rem;
background: url('https://cdn.prod.website-files.com/695e1939655d6c0175b126da/6965dcada9cbb61894fcd729_check-circle-secondary.svg') center no-repeat;
background-size: contain;
}
.contact_rte p:has(+ ul),
.contact_rte p:has(+ ol) {
margin-bottom: 1rem !important;
}
.white_rte ul > li:before,
.article_white_rte ul > li:before {
content: '';
height: 1.5rem;
width: 1.5rem;
min-width: 1.5rem;
margin-top: 0.125rem;
display: block;
background: url('https://cdn.prod.website-files.com/695e1939655d6c0175b126da/69611147c4643f011be05298_check-circle.svg') center no-repeat;
background-size: contain;
}
.global_section:has(.global_frame) {
padding: 0 var(--_spacing---padding--side-20);
}
.global_section:has(.global_frame-no-border) {
padding-left: var(--_spacing---padding--side-20);
padding-right: var(--_spacing---padding--side-20);
}
.story_bg-wr {
overflow-x: clip;
}
.side_layout:last-child {
margin-bottom: 0;
}
.product_swiper-tab-bullet .product_tab_logo {
opacity: 0.4;
}
.product_swiper-tab-bullet.is-active .product_tab_logo {
opacity: 0.7;
}
@media (min-width: 480px) {
.product_tab-link_logo {
display: none;
}
}
.logo-ribbon-wr {
-webkit-mask: linear-gradient(90deg, #00000000 0%, #000000 10% 90%, #00000000 100%);
mask: linear-gradient(90deg, #00000000 0%, #000000 10% 90%, #00000000 100%);
}
#popup-content .wistia_embed {
width: 100% !important;
aspect-ratio: 16/9 !important;
}
.story_img-wr .ts-cap {
margin: 0 auto;
max-width: 90%;
text-align: center;
}
.cms_share-link.is-copied .is-url {
opacity: 0;
}
.cms_share-link.is-copied .is-url-check {
opacity: 1;
}
</style></div><div class="w-embed"><style>
.logo-ribbon-wr.is-investor .logo-ribbon_row-wr {
opacity: 1;
}
/* Logo Ribbon Animation */
@keyframes scroll {
from {
transform: translateX(0);
}
to {
transform: translateX(calc(-100% - 6.25rem));
}
}
.logo-ribbon_row-wr {
animation: scroll 35s linear infinite;
}
/* Mobile Styles */
@media (max-width: 767px) { /* Adjust the max-width as needed */
@keyframes scroll {
from {
transform: translateX(0);
}
to {
transform: translateX(calc(-100% - 3.5rem));
}
}
.logo-ribbon_row-wr {
animation: scroll 30s linear infinite;
}
}
</style></div></div><div data-banner="show" class="nav__banner"><div class="top-banner_code w-embed w-script"><script>
document.addEventListener('DOMContentLoaded', function () {
const banner = document.querySelector('.nav__banner');
const closeButton = document.getElementById('banner-close');
// 👀 Check if banner should be shown based on attribute
const bannerState = banner?.getAttribute('data-banner');
if (bannerState === 'hide') {
banner?.classList.remove('show');
return; // skip all logic
}
const lastShown = localStorage.getItem('bannerLastShown');
const now = new Date();
let shouldShow = true;
if (lastShown) {
const lastShownDate = new Date(lastShown);
const diffDays = Math.floor((now - lastShownDate) / (1000 * 60 * 60 * 24));
if (diffDays <= 7) {
shouldShow = false;
}
}
const bannerClosed = localStorage.getItem('bannerClosed');
if (bannerClosed === 'true') {
shouldShow = false;
}
if (shouldShow) {
banner?.classList.add('show');
}
closeButton?.addEventListener('click', function () {
banner?.classList.remove('show');
localStorage.setItem('bannerClosed', 'true');
localStorage.setItem('bannerLastShown', now.toISOString());
});
});
</script></div><div id="banner-close" class="nav-banner__close-button"><div class="nav-banner__close-button__image w-embed"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M6.4 19L5 17.6L10.6 12L5 6.4L6.4 5L12 10.6L17.6 5L19 6.4L13.4 12L19 17.6L17.6 19L12 13.4L6.4 19Z" fill="currentcolor"/>
</svg></div></div><div href="#" class="nav-banner__content__wrapper"><div class="nav-banner__content"><div class="banner_label">New</div><p id="nav-banner-text" class="nav-banner-text">A note from our new CEO Moritz Plassnig</p><a data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a856:065b8505-25cf-4b0e-3cb3-92c9f08f6f13" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="065b8505-25cf-4b0e-3cb3-92c9f08f6f13" data-wf-component-context="%5B%7B%22componentId%22%3A%22065b8505-25cf-4b0e-3cb3-92c9f08f6f09%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a856%22%7D%5D" href="https://www.cloudbees.com/blog/introducing-moritz-plassnig-cloudbees-ceo/" class="btn is-text-sm is-nav-banner w-inline-block"><div>Read the announcement</div><div class="icon-regular w-embed"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M13.5137 6.46826C13.8078 6.17663 14.2825 6.17816 14.5742 6.47217L19.5322 11.4722C19.8219 11.7646 19.8221 12.2365 19.5322 12.5288L14.5742 17.5288C14.2826 17.8225 13.8077 17.824 13.5137 17.5327C13.2198 17.2411 13.2175 16.7663 13.5088 16.4722L17.2002 12.7505H5C4.58595 12.7505 4.25026 12.4145 4.25 12.0005C4.25 11.5863 4.58579 11.2505 5 11.2505H17.2002L13.5088 7.52881C13.2173 7.2348 13.2199 6.75994 13.5137 6.46826Z" fill="currentcolor"/>
</svg></div></a></div></div></div><div class="header-wr"><div class="nav-styles w-embed"><style>
.header.scroll .header__bg {
opacity: 1;
}
.nav__dd-trigger.w--open .nav__dd_arrow {
transform: rotateZ(180deg);
}
.nav__dd_menu-wr .nav__dd_group:last-child {
border-right: none;
}
@media screen and (min-width: 1280px) {
.nav__menu-list:has(.nav__dd-trigger[dd="small"].w--open) {
position: relative;
}
.nav__menu-list:not(:has(.nav__dd-trigger[dd="small"].w--open)) {
position: static;
}
.nav__dd-trigger[dd="small"] + .nav__dd-content {
top: 28px;
}
}
@media (max-width: 767px) {
.btn-nav .btn-text {
font-size: var(--_typography---size--p3);
line-height: var(--_typography---height--p3);
}
</style></div><header id="header" class="header"><div class="header__container"><a aria-label="Go to Home page" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b3e" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="82ab6d2f-ec31-6cad-cafc-b3b1e8663b3e" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%5D" href="/" class="header__brand w-inline-block"><img loading="eager" src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696254cf9924a1df0698d83e_Brand%20Logo.svg" alt="CloudBees Logo" class="company-logo_img"/></a><div class="nav__layout"><nav class="nav__menu-list"><div class="mobile_header"><a aria-label="Go to Home page" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b43" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="82ab6d2f-ec31-6cad-cafc-b3b1e8663b43" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%5D" href="/" class="header__brand w-inline-block"><img loading="eager" src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696254cf9924a1df0698d83e_Brand%20Logo.svg" alt="CloudBees Logo" class="company-logo_img"/></a><div class="mobile_header-btn-wr"><div class="header__buttons-wr"><a data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b47" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="82ab6d2f-ec31-6cad-cafc-b3b1e8663b47" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%5D" href="https://www.cloudbees.com/contact-us" class="btn-nav btn-primary w-inline-block"><div class="btn-text">Book a demo</div></a></div><a data-w-id="82ab6d2f-ec31-6cad-cafc-b3b1e8663b4c" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b4c" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="82ab6d2f-ec31-6cad-cafc-b3b1e8663b4c" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%5D" href="#" class="nav__menu-button w-inline-block"><div class="nav__menu-icon is-cross w-embed"><svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M14.4697 4.46985C14.7626 4.17696 15.2374 4.17696 15.5303 4.46985C15.8231 4.76275 15.8231 5.23754 15.5303 5.5304L11.0605 10.0001L15.5303 14.4698C15.8231 14.7628 15.8231 15.2375 15.5303 15.5304C15.2374 15.8233 14.7626 15.8232 14.4697 15.5304L10 11.0607L5.53027 15.5304C5.23742 15.8233 4.76263 15.8232 4.46973 15.5304C4.17683 15.2375 4.17683 14.7627 4.46973 14.4698L8.93945 10.0001L4.46973 5.5304C4.17683 5.2375 4.17683 4.76274 4.46973 4.46985C4.76262 4.17696 5.23738 4.17696 5.53027 4.46985L10 8.93958L14.4697 4.46985Z" fill="white"/>
</svg></div></a></div></div><ul data-scrollbar="none" role="list" class="nav__menu"><li class="nav__list-item"><div data-delay="0" data-hover="false" class="nav__dd w-dropdown"><div dd="small" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b51" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="82ab6d2f-ec31-6cad-cafc-b3b1e8663b51" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%5D" class="nav__dd-trigger w-dropdown-toggle"><div>Product</div><div class="nav__dd_arrow w-embed"><svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
<path d="M14.4697 6.96985C14.7626 6.67696 15.2374 6.67696 15.5303 6.96985C15.8231 7.26275 15.8231 7.73754 15.5303 8.0304L10.5303 13.0304C10.2374 13.3233 9.76263 13.3232 9.46973 13.0304L4.46973 8.0304C4.17683 7.7375 4.17683 7.26274 4.46973 6.96985C4.76262 6.67696 5.23738 6.67696 5.53027 6.96985L10 11.4396L14.4697 6.96985Z" fill="white" fill-opacity="0.5"/>
</svg></div></div><nav class="nav__dd-content w-dropdown-list"><div class="nav__dd_menu-wr is-small"><div id="w-node-f74b5068-adc7-1a9c-53c4-9f2f35f2a1be-35f2a1bd" class="nav__dd_group is-link"><a data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b56:f74b5068-adc7-1a9c-53c4-9f2f35f2a1bf" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="f74b5068-adc7-1a9c-53c4-9f2f35f2a1bf" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%22f74b5068-adc7-1a9c-53c4-9f2f35f2a1bd%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b56%22%7D%5D" href="/unify" class="nav__dd_featured-link w-inline-block"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/6984deccc2defde3d4f42ad0_f2942b06ac3aa33a70161ed027fdea6b_Unify-Overview-nav-feature.avif" loading="eager" sizes="100vw" srcset="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/6984deccc2defde3d4f42ad0_f2942b06ac3aa33a70161ed027fdea6b_Unify-Overview-nav-feature-p-500.avif 500w, https://cdn.prod.website-files.com/695e1939655d6c0175b126da/6984deccc2defde3d4f42ad0_f2942b06ac3aa33a70161ed027fdea6b_Unify-Overview-nav-feature.avif 744w" alt="CloudBees Unify Analytics screen." class="nav__dd_featured-img"/><div class="nav__dd_featured_text-group"><div class="nav__dd_featured_text-wr"><div class="nav__dd_link-title">CloudBees Unify Overview</div></div><p class="nav__dd_link-desc">CloudBees Unify gives enterprises one shared language across the SDLC.</p><div class="btn is-text-sm"><div>Explore</div><div class="icon-regular w-embed"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M13.5137 6.46826C13.8078 6.17663 14.2825 6.17816 14.5742 6.47217L19.5322 11.4722C19.8219 11.7646 19.8221 12.2365 19.5322 12.5288L14.5742 17.5288C14.2826 17.8225 13.8077 17.824 13.5137 17.5327C13.2198 17.2411 13.2175 16.7663 13.5088 16.4722L17.2002 12.7505H5C4.58595 12.7505 4.25026 12.4145 4.25 12.0005C4.25 11.5863 4.58579 11.2505 5 11.2505H17.2002L13.5088 7.52881C13.2173 7.2348 13.2199 6.75994 13.5137 6.46826Z" fill="currentcolor"/>
</svg></div></div></div></a></div><div class="nav__dd_group is-small"><ul role="list" class="nav__dd_links_list is-1col is-first"><li><a href="/capabilities/ci-cd-workflows" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b56:f74b5068-adc7-1a9c-53c4-9f2f35f2a1cd" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="f74b5068-adc7-1a9c-53c4-9f2f35f2a1cd" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%22f74b5068-adc7-1a9c-53c4-9f2f35f2a1bd%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b56%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696a0976938a76b54533480c_cd57991f6dbd9328eda91ca192bfeea3_workflow.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">CI/CD</div><p class="nav__dd_link-desc">Streamline CI/CD workflows for faster innovation and reliable deployments</p></div></a></li><li><a href="/capabilities/compliance" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b56:f74b5068-adc7-1a9c-53c4-9f2f35f2a1d6" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="f74b5068-adc7-1a9c-53c4-9f2f35f2a1d6" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%22f74b5068-adc7-1a9c-53c4-9f2f35f2a1bd%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b56%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696a0c88dd3eb1f35371ef1f_28cb23b26a1cbf8530073bffa6ab8f59_shield-check.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">Security and Compliance</div><p class="nav__dd_link-desc">Continuous security and compliance assessment with control insights</p></div></a></li><li><a href="/capabilities/feature-management" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b56:f74b5068-adc7-1a9c-53c4-9f2f35f2a1df" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="f74b5068-adc7-1a9c-53c4-9f2f35f2a1df" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%22f74b5068-adc7-1a9c-53c4-9f2f35f2a1bd%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b56%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696a09758beb7f5fc8c2d179_6cd04eba7a6b0b34a9e98db62bd08f7e_flag.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">Feature Management</div><p class="nav__dd_link-desc">Control feature rollouts with flags for safer, faster releases and testing</p></div></a></li></ul></div><div class="nav__dd_group is-small"><ul role="list" class="nav__dd_links_list is-1col"><li><a href="/capabilities/cloudbees-smart-tests" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b56:f74b5068-adc7-1a9c-53c4-9f2f35f2a1ea" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="f74b5068-adc7-1a9c-53c4-9f2f35f2a1ea" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%22f74b5068-adc7-1a9c-53c4-9f2f35f2a1bd%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b56%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696a0975c1d9a5fab249c9b2_563273da20b713605c4625ca0ba0cc09_flask-conical.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">Smart Tests</div><p class="nav__dd_link-desc">AI-driven test intelligence that delivers developer feedback 80% faster</p></div></a></li><li><a href="/capabilities/release-orchestration" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b56:f74b5068-adc7-1a9c-53c4-9f2f35f2a1f3" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="f74b5068-adc7-1a9c-53c4-9f2f35f2a1f3" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%22f74b5068-adc7-1a9c-53c4-9f2f35f2a1bd%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b56%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696a0976e9236cb5e93c4c16_17a9899912c5755e26e2d7362c206518_waypoints.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">Release Orchestration</div><p class="nav__dd_link-desc">Orchestrate complex releases with DevOps ecosystem visibility</p></div></a></li><li><a href="/capabilities/analytics" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b56:f74b5068-adc7-1a9c-53c4-9f2f35f2a1fc" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="f74b5068-adc7-1a9c-53c4-9f2f35f2a1fc" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%22f74b5068-adc7-1a9c-53c4-9f2f35f2a1bd%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b56%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696a0975b85d7acb849512d2_f7d862b2e5c030eb99eac717ed65ff00_chart-column.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">Analytics</div><p class="nav__dd_link-desc">Single source of truth for software delivery insights and metrics</p></div></a></li></ul></div></div></nav></div></li><li class="nav__list-item"><div data-delay="0" data-hover="false" class="nav__dd w-dropdown"><div dd="small" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b59" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="82ab6d2f-ec31-6cad-cafc-b3b1e8663b59" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%5D" class="nav__dd-trigger w-dropdown-toggle"><div>Solutions</div><div class="nav__dd_arrow w-embed"><svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
<path d="M14.4697 6.96985C14.7626 6.67696 15.2374 6.67696 15.5303 6.96985C15.8231 7.26275 15.8231 7.73754 15.5303 8.0304L10.5303 13.0304C10.2374 13.3233 9.76263 13.3232 9.46973 13.0304L4.46973 8.0304C4.17683 7.7375 4.17683 7.26274 4.46973 6.96985C4.76262 6.67696 5.23738 6.67696 5.53027 6.96985L10 11.4396L14.4697 6.96985Z" fill="white" fill-opacity="0.5"/>
</svg></div></div><nav class="nav__dd-content w-dropdown-list"><div class="nav__dd_menu-wr is-solutions"><div class="nav__dd_group"><div class="nav__dd_group_title-wr"><p class="nav__dd_group-title">Use Cases</p></div><ul role="list" class="nav__dd_links_list"><li><a href="/use-case/jenkins-modernization" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b5e:44a36620-13c5-fbfe-5a1a-6f9877d1bd8d" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="44a36620-13c5-fbfe-5a1a-6f9877d1bd8d" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%2244a36620-13c5-fbfe-5a1a-6f9877d1bd86%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b5e%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696a097657c04ac5445ae13b_1e2655369bf05b4c399a533ce3eb3a04_server-cog.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">AI-Powered CI</div></div></a></li><li><a href="/use-case/agentic-devops" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b5e:44a36620-13c5-fbfe-5a1a-6f9877d1bd96" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="44a36620-13c5-fbfe-5a1a-6f9877d1bd96" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%2244a36620-13c5-fbfe-5a1a-6f9877d1bd86%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b5e%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696a097521987fff4d2849a2_3470f8c00f2f5ea8f1e1e7d1d8e380c5_bot.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">Governed AI software delivery</div></div></a></li><li><a href="/use-case/orchestration-and-governance" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b5e:44a36620-13c5-fbfe-5a1a-6f9877d1bd9f" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="44a36620-13c5-fbfe-5a1a-6f9877d1bd9f" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%2244a36620-13c5-fbfe-5a1a-6f9877d1bd86%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b5e%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696a0976c8ea52b40d7228ae_d14f4e4bd20ee92db2d44d35057f898e_network.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">Multi-tool release orchestration</div></div></a></li><li><a href="/use-case/security-and-compliance" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b5e:44a36620-13c5-fbfe-5a1a-6f9877d1bda8" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="44a36620-13c5-fbfe-5a1a-6f9877d1bda8" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%2244a36620-13c5-fbfe-5a1a-6f9877d1bd86%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b5e%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696a097552e78c474078eae9_2e34c7f0d98b1272a44c7002b60ff4e4_brick-wall-shield.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">Continuous Security and Compliance</div></div></a></li></ul></div><div id="w-node-_44a36620-13c5-fbfe-5a1a-6f9877d1bdb0-77d1bd86" class="nav__dd_group is-wide"><div class="nav__dd_group_title-wr"><p class="nav__dd_group-title">Industries</p></div><ul role="list" class="nav__dd_links_list is-2col"><li><a href="/industries/automotive" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b5e:44a36620-13c5-fbfe-5a1a-6f9877d1bdb6" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="44a36620-13c5-fbfe-5a1a-6f9877d1bdb6" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%2244a36620-13c5-fbfe-5a1a-6f9877d1bd86%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b5e%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696a0975d02ebe816d59a6a2_f2a2a13a1181cd590a39ba6b764ec8be_car.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">Automotive</div></div></a></li><li><a href="/industries/government" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b5e:44a36620-13c5-fbfe-5a1a-6f9877d1bdbf" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="44a36620-13c5-fbfe-5a1a-6f9877d1bdbf" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%2244a36620-13c5-fbfe-5a1a-6f9877d1bd86%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b5e%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696a09758c5181fd620d8cc0_e1e65c44301b4f93edb9c5043193d1a9_landmark.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">Government</div></div></a></li><li><a href="/industries/financial-services" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b5e:44a36620-13c5-fbfe-5a1a-6f9877d1bdc8" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="44a36620-13c5-fbfe-5a1a-6f9877d1bdc8" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%2244a36620-13c5-fbfe-5a1a-6f9877d1bd86%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b5e%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696a097527b3e2ada1f3b27d_9b267388f792400b2c9cf3fe8e57dc75_banknote.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">Financial Services</div></div></a></li><li><a href="/industries/insurance" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b5e:44a36620-13c5-fbfe-5a1a-6f9877d1bdd1" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="44a36620-13c5-fbfe-5a1a-6f9877d1bdd1" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%2244a36620-13c5-fbfe-5a1a-6f9877d1bd86%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b5e%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696a0976b084ff39f338a53a_07417b9c5387fb085880b29a50c1441d_umbrella.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">Insurance</div></div></a></li><li><a href="/industries/retail" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b5e:44a36620-13c5-fbfe-5a1a-6f9877d1bdda" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="44a36620-13c5-fbfe-5a1a-6f9877d1bdda" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%2244a36620-13c5-fbfe-5a1a-6f9877d1bd86%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b5e%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696a09761ce0ab5e29c71c4d_d0b8cb6b161886e01480db7f4bc2a6ea_store.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">Retail</div></div></a></li><li><a href="/industries/software" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b5e:44a36620-13c5-fbfe-5a1a-6f9877d1bde3" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="44a36620-13c5-fbfe-5a1a-6f9877d1bde3" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%2244a36620-13c5-fbfe-5a1a-6f9877d1bd86%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b5e%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696a0a825af84f44d78a96a0_b49b3d53bcc604cf9dd8844268a91d30_code.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">Software</div></div></a></li></ul></div></div></nav></div></li><li class="nav__list-item"><div data-delay="0" data-hover="false" class="nav__dd w-dropdown"><div data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b61" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="82ab6d2f-ec31-6cad-cafc-b3b1e8663b61" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%5D" class="nav__dd-trigger w-dropdown-toggle"><div>Resources</div><div class="nav__dd_arrow w-embed"><svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
<path d="M14.4697 6.96985C14.7626 6.67696 15.2374 6.67696 15.5303 6.96985C15.8231 7.26275 15.8231 7.73754 15.5303 8.0304L10.5303 13.0304C10.2374 13.3233 9.76263 13.3232 9.46973 13.0304L4.46973 8.0304C4.17683 7.7375 4.17683 7.26274 4.46973 6.96985C4.76262 6.67696 5.23738 6.67696 5.53027 6.96985L10 11.4396L14.4697 6.96985Z" fill="white" fill-opacity="0.5"/>
</svg></div></div><nav class="nav__dd-content w-dropdown-list"><div class="nav__dd_menu-wr is4col"><div id="w-node-_21a8087d-8638-67de-c541-223e68ebb0b4-68ebb0b3" class="nav__dd_group is-wide-desktop"><div class="nav__dd_group_title-wr"><p class="nav__dd_group-title">Discover</p></div><ul role="list" class="nav__dd_links_list is-2col-desktop"><li><a href="https://ai.cloudbees.com/" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b66:21a8087d-8638-67de-c541-223e68ebb0ba" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="21a8087d-8638-67de-c541-223e68ebb0ba" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%2221a8087d-8638-67de-c541-223e68ebb0b3%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b66%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696a0975be99e833813f5160_cb6c952934afa1d03155a6159f42086b_badge-plus.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">AI Design Partner Program</div></div></a></li><li><a href="/resources" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b66:21a8087d-8638-67de-c541-223e68ebb0c3" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="21a8087d-8638-67de-c541-223e68ebb0c3" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%2221a8087d-8638-67de-c541-223e68ebb0b3%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b66%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696a09757234a36b32ee7169_ba0212838c74830ebdf16ad261a51b42_layout-dashboard.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">Resources Overview Page</div></div></a></li><li><a href="/blog" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b66:21a8087d-8638-67de-c541-223e68ebb0cc" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="21a8087d-8638-67de-c541-223e68ebb0cc" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%2221a8087d-8638-67de-c541-223e68ebb0b3%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b66%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696a0976869064c0e6744f8c_3c5a6dc0f9fc9395357b740b417f062d_newspaper.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">Blog</div></div></a></li><li><a href="/videos" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b66:21a8087d-8638-67de-c541-223e68ebb0d5" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="21a8087d-8638-67de-c541-223e68ebb0d5" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%2221a8087d-8638-67de-c541-223e68ebb0b3%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b66%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696a0976a0447e86bed71d08_d795c7a1294838e19c44f8da0ffe5787_video.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">Webinars &amp; Videos</div></div></a></li><li><a href="/events" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b66:21a8087d-8638-67de-c541-223e68ebb0de" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="21a8087d-8638-67de-c541-223e68ebb0de" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%2221a8087d-8638-67de-c541-223e68ebb0b3%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b66%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696a0975938a76b5453347d7_179a2818d919a6d5fef9097c81065d75_calendar-days.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">Events</div></div></a></li><li><a href="/guides" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b66:21a8087d-8638-67de-c541-223e68ebb0e7" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="21a8087d-8638-67de-c541-223e68ebb0e7" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%2221a8087d-8638-67de-c541-223e68ebb0b3%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b66%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696df108b936a6f63633120c_7849291e3649d0271f631c42bdcdd886_book-open.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">Guides &amp; Reports</div></div></a></li><li><a href="/customers" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b66:21a8087d-8638-67de-c541-223e68ebb0f0" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="21a8087d-8638-67de-c541-223e68ebb0f0" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%2221a8087d-8638-67de-c541-223e68ebb0b3%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b66%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696a097650f2564e14ec0eb3_b802ac4a7e0941a9e356067dfd2c4f12_message-square-quote.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">Customer Stories</div></div></a></li></ul></div><div class="nav__dd_group"><div class="nav__dd_group_title-wr"><p class="nav__dd_group-title">Security</p></div><ul role="list" class="nav__dd_links_list"><li><a href="/company/trust-center" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b66:21a8087d-8638-67de-c541-223e68ebb0fe" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="21a8087d-8638-67de-c541-223e68ebb0fe" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%2221a8087d-8638-67de-c541-223e68ebb0b3%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b66%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696df1419d6732a58ee8ce63_94d64edb7b15a61e7804eed6daf31083_check-badge.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">Trust Center</div></div></a></li><li><a href="/security-advisories" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b66:21a8087d-8638-67de-c541-223e68ebb107" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="21a8087d-8638-67de-c541-223e68ebb107" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%2221a8087d-8638-67de-c541-223e68ebb0b3%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b66%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696a0975ba9dff321c25ddb7_9a1c14dcbff9ea42680fdaeb3898ea19_bell.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">Security Advisories</div></div></a></li></ul></div><div class="nav__dd_group"><div class="nav__dd_group_title-wr"><p class="nav__dd_group-title">Get help</p></div><ul role="list" class="nav__dd_links_list"><li><a href="https://docs.cloudbees.com/" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b66:21a8087d-8638-67de-c541-223e68ebb115" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="21a8087d-8638-67de-c541-223e68ebb115" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%2221a8087d-8638-67de-c541-223e68ebb0b3%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b66%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696a09754634f217840601fe_649681123281e64f9f98cc26c7df78f9_book-marked.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">Documentation</div></div></a></li><li><a href="https://support.cloudbees.com/hc/en-us" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b66:21a8087d-8638-67de-c541-223e68ebb11e" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="21a8087d-8638-67de-c541-223e68ebb11e" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%2221a8087d-8638-67de-c541-223e68ebb0b3%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b66%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696a0976b80f2c2e10077fae_d10dce94a66917c7f89f23e94160623b_life-buoy.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">Support</div></div></a></li><li><a href="/services" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b66:21a8087d-8638-67de-c541-223e68ebb127" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="21a8087d-8638-67de-c541-223e68ebb127" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%2221a8087d-8638-67de-c541-223e68ebb0b3%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b66%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696a09760bb9a89b4cd2c5b1_8b27954584753d420f4b82dc295da19f_user-check.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">Customer Success &amp; Professional Services</div></div></a></li></ul></div></div></nav></div></li><li class="nav__list-item"><div data-delay="0" data-hover="false" class="nav__dd w-dropdown"><div dd="small" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b69" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="82ab6d2f-ec31-6cad-cafc-b3b1e8663b69" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%5D" class="nav__dd-trigger w-dropdown-toggle"><div>About</div><div class="nav__dd_arrow w-embed"><svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
<path d="M14.4697 6.96985C14.7626 6.67696 15.2374 6.67696 15.5303 6.96985C15.8231 7.26275 15.8231 7.73754 15.5303 8.0304L10.5303 13.0304C10.2374 13.3233 9.76263 13.3232 9.46973 13.0304L4.46973 8.0304C4.17683 7.7375 4.17683 7.26274 4.46973 6.96985C4.76262 6.67696 5.23738 6.67696 5.53027 6.96985L10 11.4396L14.4697 6.96985Z" fill="white" fill-opacity="0.5"/>
</svg></div></div><nav class="nav__dd-content w-dropdown-list"><div class="nav__dd_menu-wr is-about"><div class="nav__dd_group"><div class="nav__dd_group_title-wr"><p class="nav__dd_group-title">Company</p></div><ul role="list" class="nav__dd_links_list"><li><a href="/about-us" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b6e:8ee7248b-4f5b-1b67-86b3-dfde38e3ce36" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="8ee7248b-4f5b-1b67-86b3-dfde38e3ce36" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%228ee7248b-4f5b-1b67-86b3-dfde38e3ce2f%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b6e%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/697b1a52df58ada7ee5f9df2_8aadef5ab9f241b2aa20fdb150069428_cbinfinity.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">About Us</div></div></a></li><li><a href="/newsroom" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b6e:8ee7248b-4f5b-1b67-86b3-dfde38e3ce3f" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="8ee7248b-4f5b-1b67-86b3-dfde38e3ce3f" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%228ee7248b-4f5b-1b67-86b3-dfde38e3ce2f%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b6e%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696a0975d714fe3434073553_706f8a7511a42063d1e10a5885077c15_megaphone.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">Press and Recognition</div></div></a></li><li><a href="/partners" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b6e:8ee7248b-4f5b-1b67-86b3-dfde38e3ce48" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="8ee7248b-4f5b-1b67-86b3-dfde38e3ce48" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%228ee7248b-4f5b-1b67-86b3-dfde38e3ce2f%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b6e%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696a0975e3fe7c8e139a90bb_b3de2cd5abd8ac9b64c44ef8d8b42a6a_handshake.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">Partners</div></div></a></li><li><a href="/careers" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b6e:8ee7248b-4f5b-1b67-86b3-dfde38e3ce51" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="8ee7248b-4f5b-1b67-86b3-dfde38e3ce51" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%228ee7248b-4f5b-1b67-86b3-dfde38e3ce2f%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b6e%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link-icon"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696a09750bb9a89b4cd2c510_bdd0e13348a8518659eedf4409e714b8_briefcase-business.svg" loading="lazy" alt="" class="nav__dd_link-ic"/></div><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">Careers</div></div></a></li></ul></div><div class="nav__dd_group"><div class="nav__dd_group_title-wr"><p class="nav__dd_group-title">Compare CloudBees</p></div><ul role="list" class="nav__dd_links_list"><li><a href="/vs" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b6e:8ee7248b-4f5b-1b67-86b3-dfde38e3ce5f" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="8ee7248b-4f5b-1b67-86b3-dfde38e3ce5f" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%228ee7248b-4f5b-1b67-86b3-dfde38e3ce2f%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b6e%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">CloudBees vs All Competitors</div></div></a></li><li><a href="/blog/cloudbees-vs-github-actions-choosing-a-ci-cd-platform-for-your-business" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b6e:8ee7248b-4f5b-1b67-86b3-dfde38e3ce68" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="8ee7248b-4f5b-1b67-86b3-dfde38e3ce68" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%228ee7248b-4f5b-1b67-86b3-dfde38e3ce2f%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b6e%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">vs GitHub Actions</div></div></a></li><li><a href="/vs/cloudbees-vs-gitlab" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b6e:2e5052c0-21c9-c12f-736f-07d0f9da71bc" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="2e5052c0-21c9-c12f-736f-07d0f9da71bc" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%228ee7248b-4f5b-1b67-86b3-dfde38e3ce2f%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b6e%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">vs GitLab</div></div></a></li><li><a href="/vs/cloudbees-vs-harness" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b6e:820dab86-65ae-55c8-e3cd-d57a30f4cb29" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="820dab86-65ae-55c8-e3cd-d57a30f4cb29" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%228ee7248b-4f5b-1b67-86b3-dfde38e3ce2f%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b6e%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">vs Harness</div></div></a></li><li><a href="/blog/cloudbees-ci-enhancing-jenkins-for-business-and-mission-critical" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b6e:8ee7248b-4f5b-1b67-86b3-dfde38e3ce71" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="8ee7248b-4f5b-1b67-86b3-dfde38e3ce71" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%228ee7248b-4f5b-1b67-86b3-dfde38e3ce2f%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b6e%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">vs Jenkins Open Source</div></div></a></li><li><a href="/vs/cloudbees-vs-launchdarkly" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b6e:8ee7248b-4f5b-1b67-86b3-dfde38e3ce7a" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="8ee7248b-4f5b-1b67-86b3-dfde38e3ce7a" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%228ee7248b-4f5b-1b67-86b3-dfde38e3ce2f%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b6e%22%7D%5D" class="nav__dd_link w-inline-block"><div class="nav__dd_link_text-wr"><div class="nav__dd_link-title">vs LaunchDarkly</div></div></a></li></ul></div><div class="nav__dd_group"><div class="nav__dd_group_title-wr"><p class="nav__dd_group-title">Featured article</p></div><div class="nav__dd_links_list"><a id="w-node-_8ee7248b-4f5b-1b67-86b3-dfde38e3ce87-38e3ce2f" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b6e:8ee7248b-4f5b-1b67-86b3-dfde38e3ce87" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="8ee7248b-4f5b-1b67-86b3-dfde38e3ce87" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%2C%7B%22componentId%22%3A%228ee7248b-4f5b-1b67-86b3-dfde38e3ce2f%22%2C%22instanceId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b6e%22%7D%5D" href="/blog/introducing-moritz-plassnig-cloudbees-ceo" class="nav__dd_featured-link plausible-event-name--navfeaturedarticleclick w-inline-block"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/6a314b83b6ac6b428e1c3ef0_Blog%20Hero-Mo%20Plassnig.jpg" loading="eager" sizes="100vw" srcset="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/6a314b83b6ac6b428e1c3ef0_Blog%20Hero-Mo%20Plassnig-p-500.jpg 500w, https://cdn.prod.website-files.com/695e1939655d6c0175b126da/6a314b83b6ac6b428e1c3ef0_Blog%20Hero-Mo%20Plassnig-p-800.jpg 800w, https://cdn.prod.website-files.com/695e1939655d6c0175b126da/6a314b83b6ac6b428e1c3ef0_Blog%20Hero-Mo%20Plassnig-p-1080.jpg 1080w, https://cdn.prod.website-files.com/695e1939655d6c0175b126da/6a314b83b6ac6b428e1c3ef0_Blog%20Hero-Mo%20Plassnig.jpg 1280w" alt="2026 Winner Cybersecurity Excellence Awards" class="nav__dd_featured-img"/><div class="nav__dd_featured_text-group"><div class="nav__dd_featured_text-wr"><div class="nav__dd_link-title">A Note from CloudBees’ New CEO</div></div><div class="btn is-text-sm"><div>Explore</div><div class="icon-regular w-embed"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M13.5137 6.46826C13.8078 6.17663 14.2825 6.17816 14.5742 6.47217L19.5322 11.4722C19.8219 11.7646 19.8221 12.2365 19.5322 12.5288L14.5742 17.5288C14.2826 17.8225 13.8077 17.824 13.5137 17.5327C13.2198 17.2411 13.2175 16.7663 13.5088 16.4722L17.2002 12.7505H5C4.58595 12.7505 4.25026 12.4145 4.25 12.0005C4.25 11.5863 4.58579 11.2505 5 11.2505H17.2002L13.5088 7.52881C13.2173 7.2348 13.2199 6.75994 13.5137 6.46826Z" fill="currentcolor"/>
</svg></div></div></div></a></div></div></div></nav></div></li></ul></nav><div class="header__buttons-wr"><a data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b74" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="82ab6d2f-ec31-6cad-cafc-b3b1e8663b74" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%5D" href="https://www.cloudbees.com/contact-us" data-wf-event-ids="157073893" class="btn-nav btn-primary w-inline-block"><div class="btn-text">Book a demo</div></a></div><a aria-label="Open navigation menu" data-w-id="82ab6d2f-ec31-6cad-cafc-b3b1e8663b79" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a857:82ab6d2f-ec31-6cad-cafc-b3b1e8663b79" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="82ab6d2f-ec31-6cad-cafc-b3b1e8663b79" data-wf-component-context="%5B%7B%22componentId%22%3A%2282ab6d2f-ec31-6cad-cafc-b3b1e8663b3a%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a857%22%7D%5D" href="#" class="nav__menu-button w-inline-block"><div class="nav__menu-icon is-lines w-embed"><svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M16.665 15.083C17.0791 15.083 17.4149 15.4189 17.415 15.833C17.415 16.2472 17.0793 16.583 16.665 16.583H3.33203C2.91797 16.5828 2.58203 16.2471 2.58203 15.833C2.58221 15.4191 2.91808 15.0832 3.33203 15.083H16.665ZM16.665 9.25C17.0793 9.25 17.415 9.58579 17.415 10C17.415 10.4142 17.0793 10.75 16.665 10.75H3.33203C2.91797 10.7498 2.58203 10.4141 2.58203 10C2.58203 9.58589 2.91797 9.25018 3.33203 9.25H16.665ZM16.665 3.41699C17.0793 3.41699 17.415 3.75278 17.415 4.16699C17.4149 4.58106 17.0791 4.91699 16.665 4.91699H3.33203C2.91808 4.91682 2.58221 4.58095 2.58203 4.16699C2.58203 3.75289 2.91797 3.41717 3.33203 3.41699H16.665Z" fill="white"/>
</svg></div></a></div></div><div class="header__bg"></div></header></div><div class="page-styles"><div class="w-embed"><style>
.article_rte .w-code-block {
background-color: var(--gray--100) !important;
border-radius: 1rem;
font-size: var(--_typography---size--p2)!important;
}
.article_rte h1 > strong,
.article_rte h2 > strong,
.article_rte h3 > strong,
.article_rte h4 > strong,
.article_rte h5 > strong{
font-weight:normal;
}
.article_rte blockquote > strong {
display: block;
margin-top: 16px;
color: var(--_tokens---text--inverted-primary);
font-size: var(--_typography---size--p2);
line-height: var(--_typography---height--p2);
font-weight: 400;
}
.article_rte blockquote > strong > em {
display: block;
margin-top: 4px;
color: var(--_tokens---text--inverted-secondary);
font-size: var(--_typography---size--p3);
line-height: var(--_typography---height--p3);
font-weight: 400;
font-style: normal;
}
.toc_nav::-webkit-scrollbar {
width: 0.625rem !important;
}
/* Track */
.toc_nav::-webkit-scrollbar-track {
background: transparent;
margin-top: 0.75rem;
margin-bottom: 0.75rem;
}
/* Handle */
.toc_nav::-webkit-scrollbar-thumb {
background: var(--_tokens---border--inverted-default);
border-radius: 6px;
border: 3px solid #FAFAFA;
}
.w-richtext figure.w-richtext-align-fullwidth {
border-radius: 0.75rem;
overflow: hidden;
}
</style></div><div class="cc-element w-embed"><style>
.cms_share-link .is-url,
.cms_share-link .is-url-check {
transition: opacity 200ms ease;
}
.cms_share-link .is-url {
opacity: 1 !important;
}
.cms_share-link .is-url-check {
opacity: 0 !important;
}
.cms_share-link.is-copied .is-url {
opacity: 0 !important;
}
.cms_share-link.is-copied .is-url-check {
opacity: 1 !important;
}
</style></div><div class="cc-element w-embed"><style>
/* === TABLE LAYOUT === */
.w-embed table {
width: 100%;
min-width: 100%;
table-layout: fixed;
border: 1px solid var(--_tokens---border--inverted-default);
border-radius: 0.75rem;
background-color: var(--gray-alpha--02);
overflow: hidden;
border-collapse: separate;
position: relative;
z-index: 0;
margin: 1.5rem 0;
}
.w-embed table td ul {
margin-top: 0rem;
margin-bottom: 0rem;
gap: 0;
}
.w-embed table td ul li {
margin-bottom: 0rem;
}
/* === CELLS === */
.w-embed th,
.w-embed td {
max-width: 33.33%;
padding: 1rem;
position: relative;
z-index: 1;
}
.w-embed td {
border-top: 1px solid var(--_tokens---border--inverted-default);
vertical-align: top;
font-weight: 400;
}
.w-embed th:not(:first-child),
.w-embed td:not(:first-child) {
border-left: 1px solid var(--_tokens---border--inverted-default);
}
/* Remove border on last row and first if there is no header */
.w-embed tbody tr:last-child {
border-bottom: none !important;
}
.w-embed table:not(:has(thead)) tbody tr:first-child td {
border-top: none;
}
/* tight head cells */
.table-feature-comparison th:not(:first-child) {
padding: 1rem 0.375rem;
}
/* Alignment */
.w-embed th {
text-align: left;
vertical-align: middle;
}
/* Header background */
.w-embed thead {
background-color: var(--gray-alpha--02);
}
/* === TEXT === */
.w-embed th {
font-size: var(--_typography---size--p2);
line-height: var(--_typography---height--p2);
color: var(--_tokens---text--inverted-primary);
font-weight: 500;
}
/* First column (feature) */
.w-embed td:first-child {
font-size: var(--_typography---size--p2);
line-height: var(--_typography---height--p2);
color: var(--_tokens---text--inverted-primary);
}
/* Default cells */
.w-embed td {
font-size: var(--_typography---size--p2);
line-height: var(--_typography---height--p2);
color: var(--_tokens---text--inverted-primary);
white-space: normal;
overflow-wrap: break-word;
}
/* Caption */
.w-embed caption {
caption-side: bottom;
padding-top: 0.75rem;
font-size: var(--_typography---size--p3);
line-height: var(--_typography---height--p3);
color: var(--_tokens---text--inverted-secondary);
}
/* === ADDITIONAL COLORS === */
.table-pass {
color: var(--_tokens---text--inverted-success);
font-weight: 700;
}
.table-fail {
color: var(--_tokens---text--inverted-error);
font-weight: 700;
}
.table-high {
color: var(--_tokens---text--inverted-warning);
font-weight: 700;
}
.table-muted {
color: var(--_tokens---text--inverted-misc);
}
.table-check {
color: var(--_tokens---text--inverted-success);
font-weight: 700;
}
.table-cross {
color: var(--_tokens---text--inverted-error);
font-weight: 700;
}
.table-feature-title {
display: block;
font-weight: 600;
}
.table-feature-description {
display: block;
color: var(--_tokens---text--inverted-secondary);
font-size: var(--_typography---size--p3);
line-height: var(--_typography---height--p3);
}
.table-highlight-column {
background: var(--blue--100);
}
/* === COMPARISON TABLE === */
.table-feature-comparison table {
table-layout: fixed;
}
.table-feature-comparison td,
.table-feature-comparison th {
vertical-align: middle;
}
.table-feature-comparison th:first-child,
.table-feature-comparison td:first-child {
text-align: left;
}
.table-feature-comparison th:not(:first-child),
.table-feature-comparison td:not(:first-child) {
text-align: center;
}
.table-feature-comparison tbody tr:nth-child(even) td {
background-color: var(--gray-alpha--02);
}
.table-feature-comparison thead th:nth-child(2) {
background-color: var(--blue--500);
color: white;
}
.table-feature-comparison tbody tr td:nth-child(2) {
background-color: var(--blue--100);
}
/* === STATES === */
@media (max-width: 480px) {
.w-embed table {
min-width: 896px;
}
}
@media (max-width: 1279px) {
.table-scroll-wide {
overflow-x: auto;
overflow-y: hidden;
-webkit-overflow-scrolling: touch;
}
.table-scroll-wide table {
min-width: 720px;
}
}
/* Scrollbar */
.table-scroll-wide::-webkit-scrollbar {
height: 0.625rem;
}
.table-scroll-wide::-webkit-scrollbar-track {
background: transparent;
margin-left: 0.75rem;
margin-right: 0.75rem;
}
.table-scroll-wide::-webkit-scrollbar-thumb {
background: var(--_tokens---border--inverted-default);
border-radius: 6px;
border: 3px solid white;
}
/* Mobile scroll */
@media (max-width: 480px) {
.w-embed:has(table) {
max-width: 100%;
}
/* Make embed a scroll container */
.w-embed:has(table) .table-scroll {
width: 100vw;
overflow-x: auto;
overflow-y: hidden;
-webkit-overflow-scrolling: touch;
margin-left: calc(var(--_spacing---padding--side-no-frame) * -1);
margin-right: calc(var(--_spacing---padding--side-no-frame) * -1);
padding-left: var(--_spacing---padding--side-no-frame);
padding-right: var(--_spacing---padding--side-no-frame);
}
.w-embed:has(table) table {
width: 600px;
min-width: 600px;
}
.table-scroll-wide table {
width: 720px !important;
min-width: 720px !important;
}
}
</style></div><div class="cc-element w-embed"><style>
#content code:not(pre code),
.w-richtext code:not(pre code) {
font-family: 'Roboto Mono', monospace !important;
font-weight: 500 !important;
font-size: 1rem !important;
color: var(--_tokens---text--inverted-primary);
line-height: 1.65 !important;
background: transparent !important;
white-space: nowrap;
}
.code-block p {
margin-top: 0rem;
margin-bottom: 0rem;
color: var(--_tokens---text--inverted-primary);
}
/* Prism override for code blocks */
.code-block pre[class*="language-"] {
padding: 0 1rem 0 0 !important;
margin: 0 !important;
overflow: visible !important;
}
.code-block code[class*="language-"],
.code-block pre[class*="language-"] {
font-family: "Roboto Mono", monospace !important;
font-weight: 400 !important;
font-size: 1rem !important;
line-height: 1.65 !important;
background: transparent !important;
}
/* enable wrapping (Prism disables this by default) */
.code-block pre[class*="language-"],
.code-block code[class*="language-"] {
white-space: pre-wrap !important;
word-break: break-word;
}
/* Comments */
.token.comment,
.token.prolog,
.token.doctype,
.token.cdata {
color: #00000099 !important;
}
.token.punctuation {
color: #212121 !important;
}
/* Keywords (if, else, const, return, etc.) */
.token.keyword,
.token.atrule {
color: #9E1891 !important;
}
/* Functions and classes */
.token.function,
.token.class-name {
color: #2A58C5 !important;
}
/* Strings */
.token.string,
.token.char,
.token.attr-value,
.token.inserted {
color: #21770F !important;
}
/* Numbers and booleans */
.token.number,
.token.boolean,
.token.constant {
color: #00777B !important;
}
/* Variables / properties */
.token.property,
.token.symbol,
.token.builtin {
color: #CB3232 !important;
}
/* HTML / CSS selectors and attributes */
.token.selector,
.token.attr-name,
.token.tag {
color: #800000;
}
/* Operators and punctuation */
.token.operator,
.token.entity,
.token.url {
color: #212121 !important;
background: none !important;
}
/* Deleted / diff */
.token.deleted {
color: #b31d28;
}
</style></div></div><main x-clip="" class="main-wrapper"><section class="global_section btm-20"><div class="global_frame bg-alfa"><div class="global_container"><div class="blog_heading-wr"><p class="ts-overline">Product Updates</p><h1 data-w-id="e08e7190-573b-1ed5-0f56-04bb938f6aff" class="ts-h3 ts-wrap-balance">Advanced Deployment Strategies with Argo Rollouts</h1><div data-w-id="0199c7fc-edc8-ee9f-99d2-5aa4a810855d" class="blog_hero_info-row"><p class="ts-p2"><span id="result" class="read-time">15</span> minutes to read</p></div></div></div></div><div class="section_bg"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696bc00bb646a7a2194a1211_541c0df5f2322e6e94744318be17d15b_bg%20gradient.avif" loading="lazy" alt="" class="section_bg_blur"/></div></section><section x-clip="" class="global_section is-detail-white z-index-1"><div class="global_container"><div class="article_layout"><aside data-toc="" aria-labelledby="toc-heading" class="article_right-wr"><div class="blog_aside-wr"><div class="article_details"><div class="ts-overline in-details">Written by</div><div class="blog_author-wr in-details"><div class="author_img-wr"><img src="https://cdn.prod.website-files.com/6964c3f9b6de03a57eb64454/6a214aa8ec5e4bb6527dbf78_DrewPiland-Headshot.jpeg" loading="lazy" alt=""/></div><p class="ts-p2 in-details">Drew Piland</p></div><div class="spacer is-8"></div><div class="ts-overline in-details">Published on</div><p class="ts-p2 in-details">March 30, 2023</p></div><div class="toc_wrapper"><h2 id="toc-heading" class="ts-overline tc-inverted-secondary">Table of contents</h2><nav data-toc-scroll="" aria-label="Page sections" class="toc_nav"><ul data-offset="6rem" data-toc-list="" role="list" class="toc_list"><li data-toc-template="" class="toc_li"><a data-wf-native-id-path="7b3ff569-4297-ec03-dc41-01c5b57e6fba" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="7b3ff569-4297-ec03-dc41-01c5b57e6fba" href="#" class="toc_link w-inline-block"><span data-toc-label="">Introduction</span></a></li></ul></nav></div><div class="blog_share-wr"><h2 id="toc-heading" class="ts-overline tc-inverted-secondary">Share</h2><div class="share-row"><a title="Copy URL" aria-label="Copy URL" data-wf-native-id-path="7b3ff569-4297-ec03-dc41-01c5b57e6fbe" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="7b3ff569-4297-ec03-dc41-01c5b57e6fbe" href="#" class="cms_share-link is-inverted w-inline-block"><div class="icon-medium is-url w-embed"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
<path d="M9.99825 13C10.4277 13.5741 10.9756 14.0491 11.6048 14.3929C12.234 14.7367 12.9298 14.9411 13.6449 14.9923C14.36 15.0435 15.0778 14.9403 15.7496 14.6897C16.4214 14.4392 17.0314 14.047 17.5382 13.54L20.5382 10.54C21.449 9.59695 21.953 8.33394 21.9416 7.02296C21.9302 5.71198 21.4044 4.45791 20.4773 3.53087C19.5503 2.60383 18.2962 2.07799 16.9853 2.0666C15.6743 2.0552 14.4113 2.55918 13.4682 3.46997L11.7482 5.17997M13.9982 11C13.5688 10.4258 13.0209 9.95078 12.3917 9.60703C11.7625 9.26327 11.0667 9.05885 10.3516 9.00763C9.63645 8.95642 8.91866 9.0596 8.2469 9.31018C7.57514 9.56077 6.96513 9.9529 6.45825 10.46L3.45825 13.46C2.54746 14.403 2.04348 15.666 2.05488 16.977C2.06627 18.288 2.59211 19.542 3.51915 20.4691C4.44619 21.3961 5.70026 21.9219 7.01124 21.9333C8.32222 21.9447 9.58524 21.4408 10.5282 20.53L12.2382 18.82" stroke="currentcolor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg></div><div class="icon-medium is-url-check w-embed"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
<path d="M19.4697 5.46979C19.7626 5.1769 20.2373 5.1769 20.5302 5.46979C20.823 5.76269 20.8231 6.23747 20.5302 6.53034L9.53022 17.5303C9.23735 17.8232 8.76257 17.8232 8.46967 17.5303L3.46967 12.5303C3.17678 12.2374 3.17678 11.7627 3.46967 11.4698C3.76256 11.1769 4.23732 11.1769 4.53022 11.4698L8.99994 15.9395L19.4697 5.46979Z" fill="currentcolor"/>
</svg></div></a><a aria-label="Share on LinkedIn" data-wf-native-id-path="7b3ff569-4297-ec03-dc41-01c5b57e6fc1" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="7b3ff569-4297-ec03-dc41-01c5b57e6fc1" href="#" class="cms_share-link is-inverted w-inline-block"><div class="icon-medium w-embed"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
<path fill-rule="evenodd" clip-rule="evenodd" d="M4.5 3C3.67157 3 3 3.67157 3 4.5V19.5C3 20.3284 3.67157 21 4.5 21H19.5C20.3284 21 21 20.3284 21 19.5V4.5C21 3.67157 20.3284 3 19.5 3H4.5ZM8.52076 7.00272C8.52639 7.95897 7.81061 8.54819 6.96123 8.54397C6.16107 8.53975 5.46357 7.90272 5.46779 7.00413C5.47201 6.15897 6.13998 5.47975 7.00764 5.49944C7.88795 5.51913 8.52639 6.1646 8.52076 7.00272ZM12.2797 9.76176H9.75971H9.7583V18.3216H12.4217V18.1219C12.4217 17.742 12.4214 17.362 12.4211 16.9819C12.4203 15.9681 12.4194 14.9532 12.4246 13.9397C12.426 13.6936 12.4372 13.4377 12.5005 13.2028C12.7381 12.3253 13.5271 11.7586 14.4074 11.8979C14.9727 11.9864 15.3467 12.3141 15.5042 12.8471C15.6013 13.1803 15.6449 13.5389 15.6491 13.8863C15.6605 14.9339 15.6589 15.9815 15.6573 17.0292C15.6567 17.399 15.6561 17.769 15.6561 18.1388V18.3202H18.328V18.1149C18.328 17.6629 18.3278 17.211 18.3275 16.7591C18.327 15.6296 18.3264 14.5001 18.3294 13.3702C18.3308 12.8597 18.276 12.3563 18.1508 11.8627C17.9638 11.1286 17.5771 10.5211 16.9485 10.0824C16.5027 9.77019 16.0133 9.5691 15.4663 9.5466C15.404 9.54401 15.3412 9.54062 15.2781 9.53721C14.9984 9.52209 14.7141 9.50673 14.4467 9.56066C13.6817 9.71394 13.0096 10.0641 12.5019 10.6814C12.4429 10.7522 12.3852 10.8241 12.2991 10.9314L12.2797 10.9557V9.76176ZM5.68164 18.3244H8.33242V9.76733H5.68164V18.3244Z" fill="currentcolor"/>
</svg></div></a><a aria-label="Share on Facebook" data-wf-native-id-path="7b3ff569-4297-ec03-dc41-01c5b57e6fc3" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="7b3ff569-4297-ec03-dc41-01c5b57e6fc3" href="#" class="cms_share-link is-inverted w-inline-block"><div class="icon-medium w-embed"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
<path d="M22 12.0611C22 6.50451 17.5229 2 12 2C6.47715 2 2 6.50451 2 12.0611C2 17.0828 5.65684 21.2452 10.4375 22V14.9694H7.89844V12.0611H10.4375V9.84452C10.4375 7.32296 11.9305 5.93012 14.2146 5.93012C15.3088 5.93012 16.4531 6.12663 16.4531 6.12663V8.60261H15.1922C13.95 8.60261 13.5625 9.37822 13.5625 10.1739V12.0611H16.3359L15.8926 14.9694H13.5625V22C18.3432 21.2452 22 17.083 22 12.0611Z" fill="currentcolor"/>
</svg></div></a><a aria-label="Share on Twitter" data-wf-native-id-path="7b3ff569-4297-ec03-dc41-01c5b57e6fc5" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="7b3ff569-4297-ec03-dc41-01c5b57e6fc5" href="#" class="cms_share-link is-inverted w-inline-block"><div class="icon-medium w-embed"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
<path d="M17.1761 4H19.9362L13.9061 10.7774L21 20H15.4456L11.0951 14.4066L6.11723 20H3.35544L9.80517 12.7508L3 4H8.69545L12.6279 9.11262L17.1761 4ZM16.2073 18.3754H17.7368L7.86441 5.53928H6.2232L16.2073 18.3754Z" fill="currentcolor"/>
</svg></div></a><a aria-label="Share on Reddit" data-wf-native-id-path="65fe0228-b88a-02ec-eceb-5a1bc4126e21" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="65fe0228-b88a-02ec-eceb-5a1bc4126e21" href="#" class="cms_share-link is-inverted w-inline-block"><div class="icon-medium w-embed"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M14.797 5.19567C15.0353 6.20602 15.9426 6.95868 17.026 6.95868C18.2908 6.95868 19.3162 5.9333 19.3162 4.66849C19.3162 3.40367 18.2908 2.3783 17.026 2.3783C15.9201 2.3783 14.9978 3.16209 14.783 4.20465C12.9309 4.40328 11.4846 5.9741 11.4846 7.87776C11.4846 7.88205 11.4846 7.88527 11.4846 7.88957C9.47038 7.97439 7.63114 8.54774 6.17091 9.45287C5.6287 9.03305 4.94797 8.78288 4.20927 8.78288C2.4366 8.78288 1 10.2195 1 11.9922C1 13.2784 1.75588 14.3865 2.84783 14.8986C2.95412 18.6244 7.01376 21.621 12.0075 21.621C17.0013 21.621 21.0663 18.6211 21.1672 14.8922C22.2506 14.3768 23 13.272 23 11.9932C23 10.2206 21.5634 8.78396 19.7907 8.78396C19.0552 8.78396 18.3777 9.03198 17.8366 9.44857C16.3635 8.53701 14.5039 7.96365 12.4692 7.88742C12.4692 7.8842 12.4692 7.88205 12.4692 7.87883C12.4692 6.51524 13.4828 5.38357 14.797 5.19782V5.19567ZM6.04207 14.029C6.09575 12.8651 6.86881 11.9718 7.7675 11.9718C8.66618 11.9718 9.35334 12.9155 9.29966 14.0794C9.24597 15.2433 8.57491 15.6663 7.67516 15.6663C6.7754 15.6663 5.98838 15.1928 6.04207 14.029ZM16.2486 11.9718C17.1484 11.9718 17.9214 12.8651 17.974 14.029C18.0277 15.1928 17.2396 15.6663 16.3409 15.6663C15.4423 15.6663 14.7701 15.2444 14.7164 14.0794C14.6628 12.9155 15.3489 11.9718 16.2486 11.9718ZM15.1792 16.7218C15.3478 16.739 15.4551 16.914 15.3897 17.0707C14.8367 18.3925 13.5311 19.3212 12.0075 19.3212C10.4839 19.3212 9.1794 18.3925 8.62538 17.0707C8.55988 16.914 8.66725 16.739 8.83582 16.7218C9.82362 16.6219 10.8919 16.5672 12.0075 16.5672C13.1231 16.5672 14.1903 16.6219 15.1792 16.7218Z" fill="currentcolor"/>
</svg>
</div></a></div></div></div></aside><article class="article_content-wr"><div id="content" data-content="" class="article_rte w-richtext"><p>CloudBees CD/RO recently introduced the ability to connect with Argo Rollouts. This addition to our release orchestration tool improves our customers&#x27; ability to deliver software faster, with higher quality, and at scale. With CloudBees CD/RO, teams can seamlessly automate the entire software delivery process, from code to production, in cloud-native environments.</p><p>Argo Rollouts is a powerful tool for deploying applications to Kubernetes. It&#x27;s uniquely suited for teams that want to roll out new versions of their applications using advanced strategies, such as canary and blue-green deployments, to deliver customer value more quickly and with less downtime and risk. Argo Rollouts also supports complex topologies, such as using Istio, making it ideal for large-scale applications.</p><p>In this post, we&#x27;ll illustrate how Argo Rollouts fits the needs of our customer base. We&#x27;ll also explain how we&#x27;re embracing it for cloud-native deployments.</p><figure class="w-richtext-align-fullwidth w-richtext-figure-type-image"><div><img alt="Agro Rollout image1" src="https://cdn.prod.website-files.com/6964c3f9b6de03a57eb64454/6a1ff5bea917cfa23526cd24_Agro_Rollout_image1.jpeg" loading="lazy"/></div><figcaption>Agro Rollout image1</figcaption></figure><h2>What is Argo Rollouts?</h2><p><a href="https://argoproj.github.io/rollouts/" data-wf-native-id-path="a730860e-b82b-b194-58e8-cf07666bffaf" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="a730860e-b82b-b194-58e8-cf07666bffaf">Argo Rollouts</a> is a Kubernetes controller and set of CRDs which provide advanced deployment capabilities such as blue-green, canary, canary analysis, experimentation, and progressive delivery features to Kubernetes.</p><p>It improves the reliability and efficiency of deploying applications to Kubernetes by automating rollouts of new versions of an application, while monitoring its health and performance at the same time. You can use Argo Rollouts with any Kubernetes cluster, and it integrates with various tools such as <a href="https://argoproj.github.io/argo-rollouts/features/helm/" data-wf-native-id-path="edde1235-e20b-a809-5a1e-4d8954221def" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="edde1235-e20b-a809-5a1e-4d8954221def">Helm</a> and <a href="https://argo-rollouts.readthedocs.io/en/latest/features/kustomize/" data-wf-native-id-path="963faab0-a109-decb-46be-0f10e8103166" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="963faab0-a109-decb-46be-0f10e8103166">Kustomize</a>.</p><p>In addition to improving continuous deployment to Kubernetes, Argo Rollouts supports complex application topologies such as <a href="/blog/an-overview-of-the-service-mesh-and-its-tooling-options" data-wf-native-id-path="4a16b390-fd8c-e95c-9283-efd76f988f5a" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="4a16b390-fd8c-e95c-9283-efd76f988f5a">service mesh</a> via Istio, Linkerd, and SMI. It also integrates with APM providers, including Prometheus, Dynatrace, and Sumo Logic.</p><p>Argo Rollouts is compatible with your existing manifests and CRDs, so you can continue to use them while adding additional support for better deployments and advanced strategies.</p><figure class="w-richtext-align-fullwidth w-richtext-figure-type-image"><div><img alt="Agro Rollout image2" src="https://cdn.prod.website-files.com/6964c3f9b6de03a57eb64454/6a1ff5bea917cfa23526cd28_Agro_Rollout_image2.jpeg" loading="lazy"/></div><figcaption>Agro Rollout image2</figcaption></figure><h2>How does Argo Rollouts work?</h2><p>Modern development, especially applications in the cloud, needs automated and optimized development processes. When executed properly, organizations can receive many benefits, such as improved efficiencies, reduced errors, and higher quality code; all of which drive perceived customer value. CloudBees added Argo Rollouts to our clients’ toolboxes because it makes this possible with two robust strategies: Blue/Green and Canary deployments.</p><h3>Blue/Green deployments</h3><p>Blue/Green deployment is an approach where two application versions, called &quot;blue&quot; and &quot;green,&quot; run at the same time. The strategy initially directs traffic to the current <em>blue</em> version, then directs it to the new <em>green</em> version. If issues crop up during the process, you switch the traffic back to blue. Once the green version is confirmed stable and operational, you retire the blue application version or keep it as a backup.</p><p>In legacy environments, you often implement this strategy with duplicate environments, one for blue and another for green. Argo Rollouts mimics this approach in the cloud for you, using Kubernetes ReplicaSets.</p><figure class="w-richtext-align-fullwidth w-richtext-figure-type-image"><div><img alt="Agro Rollout image3" src="https://cdn.prod.website-files.com/6964c3f9b6de03a57eb64454/6a1ff5bea917cfa23526cd19_Agro_Rollout_image3.jpeg" loading="lazy"/></div></figure><div class="w-embed"><div class="table-scroll">
<table>
<thead>
<tr>
<th>Advantages</th>
<th>Disadvantages</th>
</tr>
</thead>
<tbody>
<tr>
<td>Easier to update an application with reduced downtime.</td>
<td>While cloud and containerized infrastructure mitigate costs, they still require additional resources.</td>
</tr>
<tr>
<td>If any issues arise during the deployment, you can direct traffic back to the blue environment without interruption to end-users.</td>
<td>It can be difficult to deal with data when migrations and transformations are required between application versions.</td>
</tr>
<tr>
<td>It allows new versions of the application to be released quickly, which helps organizations stay ahead in the market competition.</td>
<td></td>
</tr>
<tr>
<td>By managing user traffic for you, the deployments avoid application versioning issues.</td>
<td></td>
</tr>
</tbody>
</table>
</div></div><h3>Canary deployments</h3><p>Canary deployments distribute software updates in a controlled manner, where a small percentage of users are exposed to the new version of the application while the majority continue using the old version. The number of users with the new version gradually increases users over time. This allows you to test the new version of your code in a real-world environment before rolling it out to all users.</p><figure class="w-richtext-align-fullwidth w-richtext-figure-type-image"><div><img alt="Agro Rollout image4" src="https://cdn.prod.website-files.com/6964c3f9b6de03a57eb64454/6a1ff5bea917cfa23526cd2c_Agro_Rollout_image4.jpeg" loading="lazy"/></div></figure><div class="w-embed"><div class="table-scroll">
<table>
<thead>
<tr>
<th>Advantages</th>
<th>Disadvantages</th>
</tr>
</thead>
<tbody>
<tr>
<td>You can identify issues in new versions with a limited set of users through progressive delivery, which helps mitigate the risk of problems affecting the entire user base.</td>
<td>Since the strategy only exposes a small percentage of users to the new version, the feedback collected during the canary phase may not represent the entire user base.</td>
</tr>
<tr>
<td>By deploying the application gradually and in a controlled manner, you can monitor the performance and make adjustments before fully deploying to all users.</td>
<td>Since you implement the deployment gradually, it takes longer to fully deploy the new version to all users.</td>
</tr>
<tr>
<td>If issues arise during the canary phase, it's easier to roll back the deployment.</td>
<td></td>
</tr>
<tr>
<td>They enable you to collect user feedback and performance metrics of the new version in a more controlled environment.</td>
<td></td>
</tr>
</tbody>
</table>
</div></div><p>By leveraging Argo Rollouts for canary deployments, you gain many additional advantages:</p><ul role="list"><li>It leverages the native Kubernetes resources and concepts to perform canary deployments</li><li>Fine-grained control over how much traffic gets diverted to the new application version</li><li>With built-in instrumentation for Prometheus, along with several other APM solutions, you can monitor the performance of your canary deployment to help ensure a smooth rollout</li><li>If issues arise, you can automatically revert. This helps reduce the risk of issues affecting your users and minimizes the amount of manual intervention needed</li><li>The Argo project is open source, so you avoid vendor lock-in</li></ul><h2>Why is CloudBees embracing Argo Rollouts?</h2><p>CloudBees CD/RO has offered the ability to perform blue-green and canary deployments for some time. While this has been seamless for traditional applications, it did require additional knowledge in Kubernetes previously. With our integration to Argo Rollouts, we are providing users with the ability to seamlessly deploy traditional or cloud-native applications, with no learning curve required.</p><p>Additionally, integrating Argo Rollouts with CD/RO continues CloudBees&#x27; embrace of best-of-class open-source tools. We have experienced considerable success with Jenkins in CloudBees CI, and continue that tradition with Argo Rollouts. This approach allows us to offer enterprise-grade deployment workflows for cloud-native deployments.</p><p>By integrating with CD/RO, we provide comprehensive access control, visibility with <a href="https://docs.cloudbees.com/docs/cloudbees-cd/latest/deploy-automation/environment-inventory#_view_environment_inventory_for_an_advanced_deployment_strategy_with_argo_rollouts" data-wf-native-id-path="3eff82b3-393c-eb71-7a17-c7741e55c866" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="3eff82b3-393c-eb71-7a17-c7741e55c866">environment inventory views</a>, and analytics.</p><ol role="list"><li>Real-time info about application versions in different environments</li><li>Views into application state during release, such as the Path to Production</li><li>Deployment analytics include frequency, duration and success rates</li><li>Restrict to authorized users only that can promote releases to production</li></ol><p>CloudBees is adopting/embracing the Argo Rollouts project for cloud-native deployments, with an emphasis on <strong>Canary deployments as the preferred choice</strong>.</p><h2>How is CloudBees embracing Argo Rollouts?</h2><p>Argo Rollouts is integrated directly into CD/RO via the microservices application modeling feature which provides environment inventory (what image versions are running in which environment) monitor your cloud-native deployments, and analytics to track deployment activities across projects and teams.</p><p>This sample Helm chart file illustrates how the Argo Rollout resource type is declared, where the code calls for a canary deployment on row #18 with a weight of 30% on row #20.</p><figure class="w-richtext-align-fullwidth w-richtext-figure-type-image"><div><img alt="Agro Rollout image5" src="https://cdn.prod.website-files.com/6964c3f9b6de03a57eb64454/6a1ff5bea917cfa23526cd20_Agro_Rollout_image5.jpeg" loading="lazy"/></div></figure><p>The following image illustrates how the CD/RO interface presents a rollout. The window showcases the target traffic, and a yellow bird icon to signify a Canary Deployment.</p><figure class="w-richtext-align-fullwidth w-richtext-figure-type-image"><div><img alt="Agro Rollout image6" src="https://cdn.prod.website-files.com/6964c3f9b6de03a57eb64454/6a1ff5bea917cfa23526cd15_Agro_Rollout_image6.jpeg" loading="lazy"/></div></figure><p>In the next screenshot, we showcase how CloudBees CD/RO is able to surface the manual inputs to Argo Rollouts. As a result, all interactions occur directly within CD/RO, meaning it’s not necessary to interact with Rollouts from a command line perspective.</p><figure class="w-richtext-align-fullwidth w-richtext-figure-type-image"><div><img alt="Agro Rollout image7" src="https://cdn.prod.website-files.com/6964c3f9b6de03a57eb64454/6a1ff5bea917cfa23526cd1d_Agro_Rollout_image7.jpeg" loading="lazy"/></div></figure><h2>Conclusion</h2><p>In this post, we&#x27;ve covered how CloudBees is embracing Argo Rollouts for cloud-native deployments. It provides advanced deployment strategies like Blue/Green and Canary, and handles complex topologies such as service mesh. Argo Rollouts also enables advanced metrics to automate rollbacks through integrations with leading APM providers.</p><p>With its integration to CloudBees CD/RO, we&#x27;ve added access control and increased visibility to Argo Rollouts through our release orchestration platform. As a result, our customers will have better control and visibility over the deployment process, ensuring a smooth and secure deployment for cloud-native applications.</p><p>For additional information:</p><ul role="list"><li><a href="https://docs.cloudbees.com/docs/cloudbees-cd/latest/release-mgmt/adv-deployment-argo#_example_canary_deployment_using_advanced_microservices_strategies_with_argo_rollouts" data-wf-native-id-path="ca60bc87-e317-3a92-e0e7-f30899d7c963" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="ca60bc87-e317-3a92-e0e7-f30899d7c963">Deploy using advanced microservices applications</a></li><li><a href="https://docs.cloudbees.com/docs/cloudbees-cd/latest/deploy-automation/microservice-apps#_argo_rollout_deployment_and_delivery" data-wf-native-id-path="ca60bc87-e317-3a92-e0e7-f30899d7c966" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="ca60bc87-e317-3a92-e0e7-f30899d7c966">Modeling and Deploying Microservice Applications</a></li><li><a href="/videos/argo-rollouts-in-cloudbees-cd-ro" data-wf-native-id-path="ca60bc87-e317-3a92-e0e7-f30899d7c969" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="ca60bc87-e317-3a92-e0e7-f30899d7c969">Demo Video</a></li></ul></div><template id="code-template" class="code-template"><div class="code-block"><div class="code-header"><div class="code-lang-wr"><div class="code_icon w-embed"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M13.7841 3.7765C13.9077 3.38125 14.3283 3.16081 14.7236 3.28431C15.1188 3.40784 15.3392 3.82846 15.2157 4.22376L10.2157 20.2238C10.0922 20.6191 9.67163 20.8395 9.27629 20.7159C8.88095 20.5924 8.66059 20.1718 8.7841 19.7765L13.7841 3.7765ZM5.46965 7.46985C5.76254 7.17707 6.23733 7.17704 6.5302 7.46985C6.82306 7.76271 6.82299 8.2375 6.5302 8.5304L3.06047 12.0001L6.5302 15.4699C6.82306 15.7627 6.82299 16.2375 6.5302 16.5304C6.2373 16.8233 5.76254 16.8233 5.46965 16.5304L1.46965 12.5304C1.1768 12.2375 1.17677 11.7627 1.46965 11.4699L5.46965 7.46985ZM17.4696 7.46985C17.7625 7.17708 18.2373 7.17704 18.5302 7.46985L22.5302 11.4699C22.8231 11.7627 22.823 12.2375 22.5302 12.5304L18.5302 16.5304C18.2373 16.8233 17.7625 16.8233 17.4696 16.5304C17.1768 16.2375 17.1768 15.7627 17.4696 15.4699L20.9394 12.0001L17.4696 8.5304C17.1768 8.2375 17.1768 7.76273 17.4696 7.46985Z" fill="#0F0F14"/>
</svg>
</div><p data-lang-code="" class="ts-p1 tc-inverted-primary hide">React</p></div><a aria-label="Copy Code" data-wf-native-id-path="30f24974-5334-06d3-73f0-6705cedbd9c7" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="30f24974-5334-06d3-73f0-6705cedbd9c7" href="#" class="code-copy w-inline-block"><div class="code_icon w-embed"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
<path d="M20 7.25C21.5188 7.25 22.75 8.48122 22.75 10V20C22.75 21.5188 21.5188 22.75 20 22.75H10C8.48122 22.75 7.25 21.5188 7.25 20V10C7.25 8.48122 8.48122 7.25 10 7.25H20ZM10 8.75C9.30964 8.75 8.75 9.30964 8.75 10V20C8.75 20.6904 9.30964 21.25 10 21.25H20C20.6904 21.25 21.25 20.6904 21.25 20V10C21.25 9.30964 20.6904 8.75 20 8.75H10ZM14 1.25C15.5142 1.25 16.75 2.48579 16.75 4C16.75 4.41421 16.4142 4.75 16 4.75C15.5858 4.75 15.25 4.41421 15.25 4C15.25 3.31421 14.6858 2.75 14 2.75H4C3.31421 2.75 2.75 3.31421 2.75 4V14C2.75 14.6858 3.31421 15.25 4 15.25C4.41421 15.25 4.75 15.5858 4.75 16C4.75 16.4142 4.41421 16.75 4 16.75C2.48579 16.75 1.25 15.5142 1.25 14V4C1.25 2.48579 2.48579 1.25 4 1.25H14Z" fill="currentcolor"/>
</svg>
</div></a></div><div class="code-body"></div></div></template></article></div></div></section><section class="global_section tb-96"><div class="global_container"><div data-w-id="3673e385-3f2b-0276-7de5-d26c9c2e0219" style="-webkit-transform:translate3d(0, 2rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-moz-transform:translate3d(0, 2rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);-ms-transform:translate3d(0, 2rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);transform:translate3d(0, 2rem, 0) scale3d(1, 1, 1) rotateX(0) rotateY(0) rotateZ(0) skew(0, 0);opacity:0" class="heading-wr is-side"><h2>Read next</h2><a data-wf-native-id-path="3673e385-3f2b-0276-7de5-d26c9c2e021c" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="3673e385-3f2b-0276-7de5-d26c9c2e021c" href="/blog" class="btn-secondary btn-md w-inline-block"><div class="btn-text">Explore All</div></a></div><div class="res_col-wr w-dyn-list"><div fs-list-load="pagination" fs-list-element="list" role="list" class="res_list w-dyn-items"><div role="listitem" class="w-dyn-item"><a data-wf-native-id-path="ddedbf7a-7ece-7a1f-0863-9dcbf0d88200_instance-0" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="ddedbf7a-7ece-7a1f-0863-9dcbf0d88200" data-wf-cms-context="%5B%7B%22collectionId%22%3A%226a1fe2a4a11dca1afc48dd15%22%2C%22itemId%22%3A%226a8c99a9a4b4609f63715f18%22%7D%5D" href="/blog/who-owns-ai-generated-code-failures" class="guide_card w-inline-block"><div class="res_card_text-wr"><div class="res_card_date-wr"><p fs-list-field="tag" class="ts-p2-500">Industry Insights</p><div class="res_card_dot"></div><p fs-list-field="tag" class="ts-p2-500">September 9, 2026</p></div><p fs-list-field="title" class="ts-h5 ts-3lines">When AI breaks production, who is accountable?</p></div></a></div><div role="listitem" class="w-dyn-item"><a data-wf-native-id-path="ddedbf7a-7ece-7a1f-0863-9dcbf0d88200_instance-1" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="ddedbf7a-7ece-7a1f-0863-9dcbf0d88200" data-wf-cms-context="%5B%7B%22collectionId%22%3A%226a1fe2a4a11dca1afc48dd15%22%2C%22itemId%22%3A%226a8c93afb8ce9874256c8b3e%22%7D%5D" href="/blog/every-tool-is-green-can-you-ship" class="guide_card w-inline-block"><div class="res_card_text-wr"><div class="res_card_date-wr"><p fs-list-field="tag" class="ts-p2-500">Industry Insights</p><div class="res_card_dot"></div><p fs-list-field="tag" class="ts-p2-500">September 9, 2026</p></div><p fs-list-field="title" class="ts-h5 ts-3lines">Every tool is green. Can you ship?</p></div></a></div><div role="listitem" class="w-dyn-item"><a data-wf-native-id-path="ddedbf7a-7ece-7a1f-0863-9dcbf0d88200_instance-2" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="ddedbf7a-7ece-7a1f-0863-9dcbf0d88200" data-wf-cms-context="%5B%7B%22collectionId%22%3A%226a1fe2a4a11dca1afc48dd15%22%2C%22itemId%22%3A%226a8605f48a480aa38550e626%22%7D%5D" href="/blog/smart-tests-high-failure-rate-tests-quarantine" class="guide_card w-inline-block"><div class="res_card_text-wr"><div class="res_card_date-wr"><p fs-list-field="tag" class="ts-p2-500">Product Updates</p><div class="res_card_dot"></div><p fs-list-field="tag" class="ts-p2-500">August 20, 2026</p></div><p fs-list-field="title" class="ts-h5 ts-3lines">When red doesn’t mean broken, your pipeline stops meaning anything</p></div></a></div></div></div></div></section><section class="global_section"><div class="cc-element w-embed"><style>
:root {
--mkto-space-xl: 1.5rem;
--mkto-space-lg: 1rem;
--mkto-space-md: 0.75rem;
--mkto-radius-lg: 1.5rem;
--mkto-radius-md: 0.75rem;
--mkto-radius-sm: 1.25rem;
--mkto-field-height: 3rem;
}
@media (max-width: 767px) {
:root {
--mkto-space-xl: 1.25rem;
}
}
/* Loader */
.mkto-loading .mkto-form-wrapper {
display: none;
}
.mkto-loading .mkto-loader {
display: block;
}
.mkto-form-wrapper {
position: relative;
}
.contact_form-wr .mkto-loader {
width: 48px;
height: 48px;
margin: 80px auto;
border-radius: 50%;
border: 3px solid rgba(255, 255, 255, 0.15);
border-top-color: #fff;
animation: mkto-spin 0.9s linear infinite;
}
@keyframes mkto-spin {
to {
transform: rotate(360deg);
}
}
/* Form */
#mktoForm_1037 {
font-family: var(--_typography---text-font) !important;
padding: var(--mkto-space-xl);
width: 100% !important;
display: flex;
flex-direction: row;
flex-wrap: wrap;
gap: var(--mkto-space-xl);
}
#mktoForm_1037 .mktoFormRow {
margin: 0 !important;
width: calc(50% - (var(--mkto-space-xl) / 2));
box-sizing: border-box;
}
@media (max-width: 767px) {
#mktoForm_1037 .mktoFormRow {
width: 100% !important;
}
}
#mktoForm_1037 .mktoOffset,
#mktoForm_1037 .mktoGutter,
#mktoForm_1037 .mktoClear {
display: none !important;
}
#mktoForm_1037 .mktoFormCol {
width: 100% !important;
margin-bottom: 0 !important;
}
#mktoForm_1037 .mktoFormRow:has(input[type='hidden']),
#mktoForm_1037 .mktoFormRow:has(.mktoPlaceholder) {
display: none;
}
#mktoForm_1037 .mktoFieldWrap,
#mktoForm_1037 input,
#mktoForm_1037 label {
width: 100% !important;
}
#mktoForm_1037 .mktoField {
width: 100% !important;
box-sizing: border-box;
}
#mktoForm_1037 .mktoFieldWrap {
display: flex;
flex-direction: column;
gap: 8px;
}
#mktoForm_1037 .mktoLabel {
color: var(--_tokens---text--primary);
font-size: var(--_typography---size--p3);
line-height: var(--_typography---height--p3) !important;
font-weight: 400 !important;
display: flex;
flex-direction: row;
padding-top: 0 !important;
}
#mktoForm_1037 .mktoAsterix {
color: var(--_tokens---text--error) !important;
padding-left: 6px;
order: 99;
}
#mktoForm_1037 input {
width: 100% !important;
box-sizing: border-box;
appearance: none;
background-color: var(--white-alpha--06) !important;
border: 1px solid var(--_tokens---border--default) !important;
border-radius: var(--mkto-radius-lg) !important;
color: var(--_tokens---text--primary) !important;
font-size: var(--_typography---size--p2) !important;
line-height: var(--_typography---height--p2) !important;
padding: var(--mkto-space-md) var(--mkto-space-lg) !important;
box-shadow: none !important;
outline: none !important;
min-height: var(--mkto-field-height) !important;
transition: all 0.3s;
}
#mktoForm_1037 input:hover {
border-color: var(--_tokens---border--accent) !important;
}
#mktoForm_1037 input:focus,
#mktoForm_1037 input:active {
border-color: var(--_tokens---text--misc) !important;
outline: none !important;
}
/* Button */
#mktoForm_1037 .mktoButtonRow {
position: relative;
flex: 0 0 calc(100% + (var(--mkto-space-xl) * 2));
width: calc(100% + (var(--mkto-space-xl) * 2)) !important;
margin:
calc(-1 * var(--mkto-space-xl))
calc(-1 * var(--mkto-space-xl)) !important;
padding:
calc(var(--mkto-space-xl) * 2)
var(--mkto-space-xl)
var(--mkto-space-xl) !important;
background-color: var(--_tokens---surface--default);
border-radius: 0 0 var(--mkto-radius-md) var(--mkto-radius-md);
box-sizing: border-box;
z-index: 2;
}
#mktoForm_1037 .mktoButtonRow::before {
content: "";
position: absolute;
left: 0;
right: 0;
top: 0;
height: var(--mkto-space-xl);
background-color: var(--_tokens---surface--subtle);
border-bottom: 1px solid var(--_tokens---border--default);
border-radius: 0 0 var(--mkto-radius-md) var(--mkto-radius-md);
pointer-events: none;
z-index: 0;
}
#mktoForm_1037 .mktoButtonWrap {
position: relative;
z-index: 1;
margin: 0 !important;
display: block;
width: 100%;
}
#mktoForm_1037 .mktoButton {
position: relative;
z-index: 1;
height: 2.5rem;
width: 100%;
padding: 0.5rem;
border-radius: var(--mkto-radius-sm);
border: none;
background: var(--_tokens---button--default);
color: #fff;
cursor: pointer;
box-shadow: none !important;
text-shadow: none !important;
font-family: var(--_typography---text-font) !important;
font-size: var(--_typography---size--p2) !important;
line-height: var(--_typography---height--p2) !important;
font-weight: 500 !important;
transition: all 0.3s;
}
/* Error */
#mktoForm_1037 .mktoError {
position: static;
right: auto !important;
z-index: 5 !important;
}
#mktoForm_1037 .mktoError .mktoErrorArrowWrap {
display: none;
}
#mktoForm_1037 .mktoError .mktoErrorMsg {
background: none !important;
border: 0 !important;
box-shadow: none !important;
padding: 0 !important;
margin: 6px 0 0 !important;
color: var(--_tokens---text--error) !important;
font-size: var(--_typography---size--cap) !important;
line-height: var(--_typography---height--cap) !important;
text-shadow: none !important;
}
</style></div><div class="global_frame"><div class="global_container"><div class="side_layout full-height"><div class="newsletter_text-wr"><div class="newsletter_icon-wr"><img loading="lazy" src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696a0976869064c0e6744f8c_3c5a6dc0f9fc9395357b740b417f062d_newspaper.svg" alt="" class="icon-large"/></div><div class="contact_rte w-richtext"><h2>Newsletter</h2><p>Get updates about our latest releases, events, <br/>and more</p></div></div><div class="contact_form-wr is-newsletter"><div class="mkto-form-wrapper w-embed w-script"><script>
document.documentElement.classList.add('mkto-loading');
</script>
<script src="//build.cloudbees.com/js/forms2/js/forms2.min.js"></script>
<form id="mktoForm_1037"></form>
<script>
MktoForms2.loadForm("//build.cloudbees.com", "333-QPV-725", 1037, function(form) {
const attribution = JSON.parse(sessionStorage.getItem('cb_ad_attribution') || 'null');
if (!attribution) return;
// Set vals immediately before submission, not on load
form.onSubmit(function() {
form.vals({
utm_campaign__c: attribution.utm_campaign || '',
utm_content__c: attribution.utm_content || '',
utm_medium__c_lead: attribution.utm_medium || '',
utm_source__c_lead: attribution.utm_source || '',
utm_term__c: attribution.utm_term || ''
});
});
// Fire GTM conversion event on submit
form.onSuccess(function() {
window.dataLayer = window.dataLayer || [];
window.dataLayer.push({
event: 'campaign_conversion',
utm_source: attribution.utm_source,
utm_medium: attribution.utm_medium,
utm_campaign: attribution.utm_campaign,
utm_content: attribution.utm_content || '',
utm_term: attribution.utm_term || '',
conversion_origin: attribution.utm_landing_page
});
sessionStorage.removeItem('cb_ad_attribution');
return true;
});
});
</script>
<script>
MktoForms2.whenReady((mktoForm) => {
const form = document.querySelector('#mktoForm_1037');
if (!form) return;
/* ---------- Label → placeholder ---------- */
form.querySelectorAll('.mktoFieldWrap').forEach(wrap => {
const label = wrap.querySelector('.mktoLabel');
const field = wrap.querySelector('input, textarea');
if (!label || !field) return;
if (field.placeholder) return;
let text = label.textContent || '';
text = text
.replace('*', '')
.replace(/\s*:\s*$/, '')
.replace(/\s+/g, ' ')
.trim();
if (text) {
field.placeholder = text;
}
});
/* ---------- Success State ---------- */
mktoForm.onSuccess(() => {
const wrapper = document.querySelector('.contact_form-wr');
if (!wrapper) return false;
const formWrapper = wrapper.querySelector('.mkto-form-wrapper');
const successState = wrapper.querySelector('.mkto-success-state');
if (formWrapper) {
formWrapper.style.display = 'none';
}
if (successState) {
successState.style.display = 'flex';
}
return false;
});
/* ---------- Loader off ---------- */
requestAnimationFrame(() => {
document.documentElement.classList.remove('mkto-loading');
});
});
</script></div><div class="mkto-loader"></div><div class="mkto-success-state"><img src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/69611147c4643f011be05298_a5735dcd1c3684f9c2dbd36324db6f68_check-circle.svg" loading="lazy" alt="" class="icon-large"/><div class="mkto-success_text-wr"><p class="ts-h6">Subscription confirmed</p><p class="ts-p2">You&#x27;ll now receive our latest news, releases, and event updates by email.</p></div></div></div></div></div><div class="frame_bg"><div class="frame_bg_gradient is-contact"></div></div></div></section></main><footer class="footer"><div class="padding-global"><div class="container-large"><div class="f_top-group"><div class="f_top-left-group"><a href="/" title="CloudBees Homepage" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a859:6712cc61-808c-ccab-0d36-2ccadbfe38f6" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="6712cc61-808c-ccab-0d36-2ccadbfe38f6" data-wf-component-context="%5B%7B%22componentId%22%3A%226712cc61-808c-ccab-0d36-2ccadbfe38f1%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a859%22%7D%5D" class="f_brand w-inline-block"><img loading="lazy" src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696254cf9924a1df0698d83e_Brand%20Logo.svg" alt=""/></a><div class="f_social-links"><a aria-label="Visit CloudBees on Facebook" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a859:6712cc61-808c-ccab-0d36-2ccadbfe38fc" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="6712cc61-808c-ccab-0d36-2ccadbfe38fc" data-wf-component-context="%5B%7B%22componentId%22%3A%226712cc61-808c-ccab-0d36-2ccadbfe38f1%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a859%22%7D%5D" href="https://www.facebook.com/CloudBees/" target="_blank" class="f_social_link w-inline-block"><div class="icon-medium w-embed"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
<path d="M22 12.0611C22 6.50451 17.5229 2 12 2C6.47715 2 2 6.50451 2 12.0611C2 17.0828 5.65684 21.2452 10.4375 22V14.9694H7.89844V12.0611H10.4375V9.84452C10.4375 7.32296 11.9305 5.93012 14.2146 5.93012C15.3088 5.93012 16.4531 6.12663 16.4531 6.12663V8.60261H15.1922C13.95 8.60261 13.5625 9.37822 13.5625 10.1739V12.0611H16.3359L15.8926 14.9694H13.5625V22C18.3432 21.2452 22 17.083 22 12.0611Z" fill="currentcolor"/>
</svg></div></a><a aria-label="Visit CloudBees on Instagram" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a859:6712cc61-808c-ccab-0d36-2ccadbfe38fe" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="6712cc61-808c-ccab-0d36-2ccadbfe38fe" data-wf-component-context="%5B%7B%22componentId%22%3A%226712cc61-808c-ccab-0d36-2ccadbfe38f1%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a859%22%7D%5D" href="https://www.instagram.com/cloudbees_inc/#" target="_blank" class="f_social_link w-inline-block"><div class="icon-medium w-embed"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
<path fill-rule="evenodd" clip-rule="evenodd" d="M16 3H8C5.23858 3 3 5.23858 3 8V16C3 18.7614 5.23858 21 8 21H16C18.7614 21 21 18.7614 21 16V8C21 5.23858 18.7614 3 16 3ZM19.25 16C19.2445 17.7926 17.7926 19.2445 16 19.25H8C6.20735 19.2445 4.75549 17.7926 4.75 16V8C4.75549 6.20735 6.20735 4.75549 8 4.75H16C17.7926 4.75549 19.2445 6.20735 19.25 8V16ZM16.75 8.25C17.3023 8.25 17.75 7.80228 17.75 7.25C17.75 6.69772 17.3023 6.25 16.75 6.25C16.1977 6.25 15.75 6.69772 15.75 7.25C15.75 7.80228 16.1977 8.25 16.75 8.25ZM12 7.5C9.51472 7.5 7.5 9.51472 7.5 12C7.5 14.4853 9.51472 16.5 12 16.5C14.4853 16.5 16.5 14.4853 16.5 12C16.5027 10.8057 16.0294 9.65957 15.1849 8.81508C14.3404 7.97059 13.1943 7.49734 12 7.5ZM9.25 12C9.25 13.5188 10.4812 14.75 12 14.75C13.5188 14.75 14.75 13.5188 14.75 12C14.75 10.4812 13.5188 9.25 12 9.25C10.4812 9.25 9.25 10.4812 9.25 12Z" fill="currentcolor"/>
</svg></div></a><a aria-label="Visit CloudBees on YouTube" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a859:6712cc61-808c-ccab-0d36-2ccadbfe3900" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="6712cc61-808c-ccab-0d36-2ccadbfe3900" data-wf-component-context="%5B%7B%22componentId%22%3A%226712cc61-808c-ccab-0d36-2ccadbfe38f1%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a859%22%7D%5D" href="https://www.youtube.com/user/CloudBeesTV" target="_blank" class="f_social_link w-inline-block"><div class="icon-medium w-embed"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
<path d="M21.543 6.498C22 8.28 22 12 22 12C22 12 22 15.72 21.543 17.502C21.289 18.487 20.546 19.262 19.605 19.524C17.896 20 12 20 12 20C12 20 6.107 20 4.395 19.524C3.45 19.258 2.708 18.484 2.457 17.502C2 15.72 2 12 2 12C2 12 2 8.28 2.457 6.498C2.711 5.513 3.454 4.738 4.395 4.476C6.107 4 12 4 12 4C12 4 17.896 4 19.605 4.476C20.55 4.742 21.292 5.516 21.543 6.498ZM10 15.5L16 12L10 8.5V15.5Z" fill="currentcolor"/>
</svg></div></a><a aria-label="Visit CloudBees on Twitter" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a859:6712cc61-808c-ccab-0d36-2ccadbfe3902" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="6712cc61-808c-ccab-0d36-2ccadbfe3902" data-wf-component-context="%5B%7B%22componentId%22%3A%226712cc61-808c-ccab-0d36-2ccadbfe38f1%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a859%22%7D%5D" href="https://x.com/cloudbees" target="_blank" class="f_social_link w-inline-block"><div class="icon-medium w-embed"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
<path d="M17.1761 4H19.9362L13.9061 10.7774L21 20H15.4456L11.0951 14.4066L6.11723 20H3.35544L9.80517 12.7508L3 4H8.69545L12.6279 9.11262L17.1761 4ZM16.2073 18.3754H17.7368L7.86441 5.53928H6.2232L16.2073 18.3754Z" fill="currentcolor"/>
</svg></div></a><a aria-label="Visit CloudBees on LinkedIn" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a859:6712cc61-808c-ccab-0d36-2ccadbfe3904" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="6712cc61-808c-ccab-0d36-2ccadbfe3904" data-wf-component-context="%5B%7B%22componentId%22%3A%226712cc61-808c-ccab-0d36-2ccadbfe38f1%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a859%22%7D%5D" href="https://www.linkedin.com/company/cloudbees" target="_blank" class="f_social_link w-inline-block"><div class="icon-medium w-embed"><svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false">
<path fill-rule="evenodd" clip-rule="evenodd" d="M4.5 3C3.67157 3 3 3.67157 3 4.5V19.5C3 20.3284 3.67157 21 4.5 21H19.5C20.3284 21 21 20.3284 21 19.5V4.5C21 3.67157 20.3284 3 19.5 3H4.5ZM8.52076 7.00272C8.52639 7.95897 7.81061 8.54819 6.96123 8.54397C6.16107 8.53975 5.46357 7.90272 5.46779 7.00413C5.47201 6.15897 6.13998 5.47975 7.00764 5.49944C7.88795 5.51913 8.52639 6.1646 8.52076 7.00272ZM12.2797 9.76176H9.75971H9.7583V18.3216H12.4217V18.1219C12.4217 17.742 12.4214 17.362 12.4211 16.9819C12.4203 15.9681 12.4194 14.9532 12.4246 13.9397C12.426 13.6936 12.4372 13.4377 12.5005 13.2028C12.7381 12.3253 13.5271 11.7586 14.4074 11.8979C14.9727 11.9864 15.3467 12.3141 15.5042 12.8471C15.6013 13.1803 15.6449 13.5389 15.6491 13.8863C15.6605 14.9339 15.6589 15.9815 15.6573 17.0292C15.6567 17.399 15.6561 17.769 15.6561 18.1388V18.3202H18.328V18.1149C18.328 17.6629 18.3278 17.211 18.3275 16.7591C18.327 15.6296 18.3264 14.5001 18.3294 13.3702C18.3308 12.8597 18.276 12.3563 18.1508 11.8627C17.9638 11.1286 17.5771 10.5211 16.9485 10.0824C16.5027 9.77019 16.0133 9.5691 15.4663 9.5466C15.404 9.54401 15.3412 9.54062 15.2781 9.53721C14.9984 9.52209 14.7141 9.50673 14.4467 9.56066C13.6817 9.71394 13.0096 10.0641 12.5019 10.6814C12.4429 10.7522 12.3852 10.8241 12.2991 10.9314L12.2797 10.9557V9.76176ZM5.68164 18.3244H8.33242V9.76733H5.68164V18.3244Z" fill="currentcolor"/>
</svg></div></a></div></div><div class="f_top-right-group"><div class="f_links-col"><div class="f_link-title">Product</div><ul role="list" class="f_links-list"><li class="f_link-item"><a href="/unify" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a859:6712cc61-808c-ccab-0d36-2ccadbfe390c" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="6712cc61-808c-ccab-0d36-2ccadbfe390c" data-wf-component-context="%5B%7B%22componentId%22%3A%226712cc61-808c-ccab-0d36-2ccadbfe38f1%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a859%22%7D%5D" class="f_link">CloudBees Unify</a></li><li class="f_link-item"><a href="/capabilities/ci-cd-workflows" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a859:6712cc61-808c-ccab-0d36-2ccadbfe3912" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="6712cc61-808c-ccab-0d36-2ccadbfe3912" data-wf-component-context="%5B%7B%22componentId%22%3A%226712cc61-808c-ccab-0d36-2ccadbfe38f1%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a859%22%7D%5D" class="f_link">CI/CD</a></li><li class="f_link-item"><a href="/capabilities/compliance" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a859:6712cc61-808c-ccab-0d36-2ccadbfe3915" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="6712cc61-808c-ccab-0d36-2ccadbfe3915" data-wf-component-context="%5B%7B%22componentId%22%3A%226712cc61-808c-ccab-0d36-2ccadbfe38f1%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a859%22%7D%5D" class="f_link">Security and Compliance</a></li><li class="f_link-item"><a href="/capabilities/feature-management" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a859:6712cc61-808c-ccab-0d36-2ccadbfe3918" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="6712cc61-808c-ccab-0d36-2ccadbfe3918" data-wf-component-context="%5B%7B%22componentId%22%3A%226712cc61-808c-ccab-0d36-2ccadbfe38f1%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a859%22%7D%5D" class="f_link">Feature Management</a></li><li class="f_link-item"><a href="/capabilities/cloudbees-smart-tests" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a859:6712cc61-808c-ccab-0d36-2ccadbfe391b" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="6712cc61-808c-ccab-0d36-2ccadbfe391b" data-wf-component-context="%5B%7B%22componentId%22%3A%226712cc61-808c-ccab-0d36-2ccadbfe38f1%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a859%22%7D%5D" class="f_link">Smart Tests</a></li><li class="f_link-item"><a href="/capabilities/release-orchestration" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a859:6712cc61-808c-ccab-0d36-2ccadbfe391e" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="6712cc61-808c-ccab-0d36-2ccadbfe391e" data-wf-component-context="%5B%7B%22componentId%22%3A%226712cc61-808c-ccab-0d36-2ccadbfe38f1%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a859%22%7D%5D" class="f_link">Release Orchestration</a></li><li class="f_link-item"><a href="/capabilities/analytics" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a859:6712cc61-808c-ccab-0d36-2ccadbfe3921" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="6712cc61-808c-ccab-0d36-2ccadbfe3921" data-wf-component-context="%5B%7B%22componentId%22%3A%226712cc61-808c-ccab-0d36-2ccadbfe38f1%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a859%22%7D%5D" class="f_link">Analytics</a></li></ul></div><div class="f_links-col"><div class="f_link-title">Solutions</div><ul role="list" class="f_links-list"><li class="f_link-item"><a data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a859:6712cc61-808c-ccab-0d36-2ccadbfe3928" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="6712cc61-808c-ccab-0d36-2ccadbfe3928" data-wf-component-context="%5B%7B%22componentId%22%3A%226712cc61-808c-ccab-0d36-2ccadbfe38f1%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a859%22%7D%5D" href="/use-case/jenkins-modernization" class="f_link">AI-Powered CI</a></li><li class="f_link-item"><a data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a859:6712cc61-808c-ccab-0d36-2ccadbfe392b" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="6712cc61-808c-ccab-0d36-2ccadbfe392b" data-wf-component-context="%5B%7B%22componentId%22%3A%226712cc61-808c-ccab-0d36-2ccadbfe38f1%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a859%22%7D%5D" href="/use-case/agentic-devops" class="f_link">Governed AI software delivery</a></li><li class="f_link-item"><a data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a859:6712cc61-808c-ccab-0d36-2ccadbfe392e" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="6712cc61-808c-ccab-0d36-2ccadbfe392e" data-wf-component-context="%5B%7B%22componentId%22%3A%226712cc61-808c-ccab-0d36-2ccadbfe38f1%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a859%22%7D%5D" href="/use-case/orchestration-and-governance" class="f_link">Multi-tool release orchestration</a></li><li class="f_link-item"><a data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a859:6712cc61-808c-ccab-0d36-2ccadbfe3931" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="6712cc61-808c-ccab-0d36-2ccadbfe3931" data-wf-component-context="%5B%7B%22componentId%22%3A%226712cc61-808c-ccab-0d36-2ccadbfe38f1%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a859%22%7D%5D" href="/use-case/security-and-compliance" class="f_link">Continuous Security and Compliance</a></li></ul></div><div class="f_links-col"><div class="f_link-title">Resources</div><ul role="list" class="f_links-list"><li class="f_link-item"><a data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a859:6712cc61-808c-ccab-0d36-2ccadbfe3938" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="6712cc61-808c-ccab-0d36-2ccadbfe3938" data-wf-component-context="%5B%7B%22componentId%22%3A%226712cc61-808c-ccab-0d36-2ccadbfe38f1%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a859%22%7D%5D" href="/blog" class="f_link">Blog</a></li><li class="f_link-item"><a data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a859:6712cc61-808c-ccab-0d36-2ccadbfe393b" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="6712cc61-808c-ccab-0d36-2ccadbfe393b" data-wf-component-context="%5B%7B%22componentId%22%3A%226712cc61-808c-ccab-0d36-2ccadbfe38f1%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a859%22%7D%5D" href="https://ai.cloudbees.com/" class="f_link">AI Design Partner Program</a></li><li class="f_link-item"><a data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a859:6712cc61-808c-ccab-0d36-2ccadbfe393e" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="6712cc61-808c-ccab-0d36-2ccadbfe393e" data-wf-component-context="%5B%7B%22componentId%22%3A%226712cc61-808c-ccab-0d36-2ccadbfe38f1%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a859%22%7D%5D" href="/company/trust-center" class="f_link">Trust Center</a></li><li class="f_link-item"><a data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a859:6712cc61-808c-ccab-0d36-2ccadbfe3944" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="6712cc61-808c-ccab-0d36-2ccadbfe3944" data-wf-component-context="%5B%7B%22componentId%22%3A%226712cc61-808c-ccab-0d36-2ccadbfe38f1%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a859%22%7D%5D" href="/security-advisories" class="f_link">Security Advisories</a></li><li class="f_link-item"><a data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a859:6712cc61-808c-ccab-0d36-2ccadbfe3947" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="6712cc61-808c-ccab-0d36-2ccadbfe3947" data-wf-component-context="%5B%7B%22componentId%22%3A%226712cc61-808c-ccab-0d36-2ccadbfe38f1%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a859%22%7D%5D" href="https://docs.cloudbees.com/" class="f_link">Documentation</a></li><li class="f_link-item"><a data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a859:6712cc61-808c-ccab-0d36-2ccadbfe394a" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="6712cc61-808c-ccab-0d36-2ccadbfe394a" data-wf-component-context="%5B%7B%22componentId%22%3A%226712cc61-808c-ccab-0d36-2ccadbfe38f1%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a859%22%7D%5D" href="https://support.cloudbees.com/hc/en-us" class="f_link">Support</a></li><li class="f_link-item"><a data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a859:6712cc61-808c-ccab-0d36-2ccadbfe394d" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="6712cc61-808c-ccab-0d36-2ccadbfe394d" data-wf-component-context="%5B%7B%22componentId%22%3A%226712cc61-808c-ccab-0d36-2ccadbfe38f1%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a859%22%7D%5D" href="/services" class="f_link">Customer Success and Professional Services</a></li><li class="f_link-item"><a data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a859:45f652bb-ce51-bb9e-5315-9591f50565be" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="45f652bb-ce51-bb9e-5315-9591f50565be" data-wf-component-context="%5B%7B%22componentId%22%3A%226712cc61-808c-ccab-0d36-2ccadbfe38f1%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a859%22%7D%5D" href="/ci-waste-calculator" class="f_link">CI Waste Calculator</a></li></ul></div><div class="f_links-col"><div class="f_link-title">Company</div><ul role="list" class="f_links-list"><li class="f_link-item"><a data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a859:6712cc61-808c-ccab-0d36-2ccadbfe3954" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="6712cc61-808c-ccab-0d36-2ccadbfe3954" data-wf-component-context="%5B%7B%22componentId%22%3A%226712cc61-808c-ccab-0d36-2ccadbfe38f1%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a859%22%7D%5D" href="/about-us" class="f_link">About Us</a></li><li class="f_link-item"><a data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a859:6712cc61-808c-ccab-0d36-2ccadbfe3957" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="6712cc61-808c-ccab-0d36-2ccadbfe3957" data-wf-component-context="%5B%7B%22componentId%22%3A%226712cc61-808c-ccab-0d36-2ccadbfe38f1%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a859%22%7D%5D" href="/newsroom" class="f_link">Press and Recognition</a></li><li class="f_link-item"><a data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a859:6712cc61-808c-ccab-0d36-2ccadbfe395a" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="6712cc61-808c-ccab-0d36-2ccadbfe395a" data-wf-component-context="%5B%7B%22componentId%22%3A%226712cc61-808c-ccab-0d36-2ccadbfe38f1%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a859%22%7D%5D" href="/partners" class="f_link">Partners</a></li><li class="f_link-item"><a data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a859:6712cc61-808c-ccab-0d36-2ccadbfe395d" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="6712cc61-808c-ccab-0d36-2ccadbfe395d" data-wf-component-context="%5B%7B%22componentId%22%3A%226712cc61-808c-ccab-0d36-2ccadbfe38f1%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a859%22%7D%5D" href="/careers" class="f_link">Careers</a></li><li class="f_link-item"><a href="/pricing" data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a859:d33d1c36-3415-6d11-7870-a106dcea9ba6" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="d33d1c36-3415-6d11-7870-a106dcea9ba6" data-wf-component-context="%5B%7B%22componentId%22%3A%226712cc61-808c-ccab-0d36-2ccadbfe38f1%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a859%22%7D%5D" class="f_link">Pricing</a></li></ul></div></div></div><div class="f_separator"></div><div class="f_bottom-group"><div class="ts-cap tc-tertiary">© 2026 CloudBees, Inc., CloudBees® and the Infinity logo® are registered trademarks of CloudBees, Inc. in the United States and may be registered in other countries. Other products or brand names may be trademarks or registered trademarks of CloudBees, Inc. or their respective holders.</div><div class="footer_bottom-links"><div class="footer_bottom-links"><a data-wf-native-id-path="fac149d5-edf9-39d0-68f9-084a33c3a859:6712cc61-808c-ccab-0d36-2ccadbfe3968" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="6712cc61-808c-ccab-0d36-2ccadbfe3968" data-wf-component-context="%5B%7B%22componentId%22%3A%226712cc61-808c-ccab-0d36-2ccadbfe38f1%22%2C%22instanceId%22%3A%22fac149d5-edf9-39d0-68f9-084a33c3a859%22%7D%5D" href="/company/terms-of-service" class="footer_bottom-link w-inline-block"><div>Terms of Service</div></a></div></div></div></div></div></footer></div><script src="https://d3e54v103j8qbb.cloudfront.net/js/jquery-3.5.1.min.dc5e7f18c8.js?site=695e1939655d6c0175b126da" type="text/javascript" integrity="sha256-9/aliU8dGd2tb6OSsuzixeV4y/faTqgFtohetphbbj0=" crossorigin="anonymous"></script><script src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/js/cloudbees-staging.schunk.181a2070a530b302.js" type="text/javascript" integrity="sha384-JWdgqTXFub/8eKOkMquT9MN7nnkFfqj2IsxHNIv8W+n3NdpIA3X+EZEx+ykmtOKR" crossorigin="anonymous"></script><script src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/js/cloudbees-staging.schunk.4bd9a8a936f24217.js" type="text/javascript" integrity="sha384-zCbeDEMPOwW6NN4QH/7/feRaV4oAvhevE2fLMRH0Y7cZBg2ufLb96qHt2eBfI0Vi" crossorigin="anonymous"></script><script src="https://cdn.prod.website-files.com/695e1939655d6c0175b126da/js/cloudbees-staging.218fa848.f809c73b119cb9bd.js" type="text/javascript" integrity="sha384-oBYsZOOWP+A6rKZtP5LzKQK5H44W/cXeUHUppiS1lkGsy/KCHgXg+gnBo018jM4V" crossorigin="anonymous"></script><script>
//NAVBAR
// Check scroll position and toggle class
function checkScroll() {
var scroll = $(window).scrollTop();
if (scroll > 0) {
$("#header").addClass('scroll');
} else {
$("#header").removeClass('scroll');
}
}
// Run on scroll
$(window).on('scroll', checkScroll);
// Run on load
$(document).ready(function() {
checkScroll();
// Toggle header's 'scroll' class only if at top
$(".nav__menu-button").on('click', function() {
if ($(window).scrollTop() === 0) {
$("#header").toggleClass('scroll');
}
// Always toggle page scroll (disable/enable)
$('body').toggleClass('no-scroll');
});
});
</script>
<!-- Prevent CMS filter forms (Finsweet Attributes) from triggering native Webflow form submissions / notification emails. Finsweet filtering runs on input/change events and does not require the form to actually submit. -->
<script>
document.addEventListener('DOMContentLoaded', function () {
document.querySelectorAll('form[fs-list-element="filters"]').forEach(function (form) {
form.addEventListener('submit', function (e) {
e.preventDefault();
});
});
});
</script>
<style>
/* 2. Set all animation and transition times to exactly 0 seconds */
#onetrust-banner-sdk,
#onetrust-banner-sdk * {
animation-duration: 0s !important;
transition-duration: 0s !important;
animation-delay: 0s !important;
transition-delay: 0s !important;
}
/* 3. Use standard system fonts to stop font-swapping layout shifts (CLS) */
#onetrust-banner-sdk,
#onetrust-banner-sdk *,
#onetrust-banner-sdk button {
font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important;
}
</style>
<script>
window.addEventListener('load', () => {
const element = document.getElementById('content');
const result = document.getElementById('result');
if (!element || !result) return;
const text = element.textContent || '';
const words = text.trim().match(/\w+/g)?.length || 0;
const minutes = Math.max(1, Math.round(words / 170));
result.textContent = `${minutes}`;
});
</script>
<script>
window.addEventListener('DOMContentLoaded', () => {
const pageUrl = encodeURIComponent(window.location.href);
const pageTitle = encodeURIComponent(document.title);
const shareUrls = {
linkedin: `https://www.linkedin.com/sharing/share-offsite/?url=${pageUrl}`,
facebook: `https://www.facebook.com/sharer/sharer.php?u=${pageUrl}`,
twitter: `https://twitter.com/intent/tweet?url=${pageUrl}&text=${pageTitle}`,
reddit: `https://www.reddit.com/submit?url=${pageUrl}&title=${pageTitle}`,
};
function openSharePopup(url) {
const width = 600;
const height = 600;
const left = window.screenX + (window.outerWidth - width) / 2;
const top = window.screenY + (window.outerHeight - height) / 2;
window.open(url, 'share-window', `width=${width},height=${height},left=${left},top=${top},resizable=yes,scrollbars=yes`);
}
function setupShareButton(selector, url) {
const button = document.querySelector(selector);
if (!button) return;
button.setAttribute('href', url);
button.addEventListener('click', (event) => {
event.preventDefault();
openSharePopup(url);
});
}
setupShareButton('[aria-label="Share on LinkedIn"]', shareUrls.linkedin);
setupShareButton('[aria-label="Share on Facebook"]', shareUrls.facebook);
setupShareButton('[aria-label="Share on Twitter"]', shareUrls.twitter);
setupShareButton('[aria-label="Share on Reddit"]', shareUrls.reddit);
const copyButton = document.querySelector('[aria-label="Copy URL"], [title="Copy URL"]');
if (copyButton) {
copyButton.addEventListener('click', async (event) => {
event.preventDefault();
try {
await navigator.clipboard.writeText(window.location.href);
copyButton.classList.add('is-copied');
setTimeout(() => {
copyButton.classList.remove('is-copied');
}, 2000);
} catch (error) {
console.error('Copy failed:', error);
}
});
}
});
</script>
<link href="https://cdn.jsdelivr.net/npm/prismjs/themes/prism.min.css" rel="stylesheet" />
<script src="https://cdn.jsdelivr.net/npm/prismjs/prism.min.js"></script>
<script>
document.addEventListener('DOMContentLoaded', () => {
const template = document.getElementById('code-template');
if (!template) return;
const LANG_LABELS = {
js: 'JavaScript',
javascript: 'JavaScript',
ts: 'TypeScript',
typescript: 'TypeScript',
jsx: 'React',
tsx: 'React (TS)',
react: 'React',
css: 'CSS',
html: 'HTML',
bash: 'Bash',
shell: 'Shell',
sh: 'Shell',
json: 'JSON',
python: 'Python',
py: 'Python',
makefile: 'Makefile',
make: 'Makefile',
yaml: 'YAML',
yml: 'YAML',
};
function normalizeLang(lang) {
lang = (lang || 'code').toLowerCase().trim();
const aliases = {
javascript: 'js',
typescript: 'ts',
sh: 'bash',
shell: 'bash',
py: 'python',
make: 'makefile',
yml: 'yaml',
};
return aliases[lang] || lang;
}
/* ---------- Webflow imported code fallback ----------
Converts:
<p><code>LANG:makefile<br>...</code></p>
into:
<pre data-lang="makefile"><code>...</code></pre>
*/
function getCodeTextWithBreaks(codeEl) {
let text = '';
codeEl.childNodes.forEach((node) => {
if (node.nodeType === Node.TEXT_NODE) {
text += node.nodeValue;
} else if (node.nodeName === 'BR') {
text += '\n';
}
});
return text;
}
document.querySelectorAll('.w-richtext p > code').forEach((codeEl) => {
const rawText = getCodeTextWithBreaks(codeEl);
const lines = rawText.replace(/\r\n/g, '\n').split('\n');
const firstLine = (lines[0] || '').trim();
const match = firstLine.match(/^LANG:(.+)$/i);
if (!match) return;
const lang = normalizeLang(match[1]);
lines.shift();
const pre = document.createElement('pre');
pre.setAttribute('data-lang', lang);
const code = document.createElement('code');
code.textContent = lines.join('\n').replace(/^\n+|\n+$/g, '');
pre.appendChild(code);
const paragraph = codeEl.closest('p');
if (paragraph) {
paragraph.replaceWith(pre);
}
});
/* ---------- Render code blocks ---------- */
document.querySelectorAll('pre[data-lang]').forEach((pre) => {
const lang = normalizeLang(pre.dataset.lang || 'code');
const clone = template.content.cloneNode(true);
const wrapper = clone.querySelector('.code-block');
const body = clone.querySelector('.code-body');
const langText = clone.querySelector('.code-lang-wr p');
const copyBtn = clone.querySelector('.code-copy');
let code = pre.querySelector('code');
if (!code) {
code = document.createElement('code');
code.textContent = pre.textContent.trim();
pre.innerHTML = '';
pre.appendChild(code);
}
code.className = `language-${lang}`;
pre.setAttribute('data-lang', lang);
if (langText) {
langText.textContent = LANG_LABELS[lang] || lang.toUpperCase();
}
const parent = pre.parentNode;
parent.insertBefore(wrapper, pre);
body.appendChild(pre);
if (copyBtn) {
copyBtn.addEventListener('click', (e) => {
e.preventDefault();
navigator.clipboard.writeText(code.textContent).then(() => {
copyBtn.setAttribute('aria-label', 'Copied');
setTimeout(() => {
copyBtn.setAttribute('aria-label', 'Copy Code');
}, 1500);
});
});
}
if (window.Prism) {
Prism.highlightElement(code);
}
});
});
</script>
<!-- TOC -->
<script src="https://cdn.jsdelivr.net/gh/helenmadeit/webflow-scripts/toc.js"></script></body></html>