1800 lines
156 KiB
HTML
1800 lines
156 KiB
HTML
<!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="deploy-to-production-5-tips-make-smoother"><head><meta charset="utf-8"/><link href="https://cdn.prod.website-files.com" rel="preconnect" crossorigin="anonymous"/><title>Deploy to Production: 5 Tips to Make It Smoother</title><meta content="Master deployment to production with expert tips on automation, feature flags, and more. Enhance your workflow and minimize risks today!" name="description"/><meta content="Deploy to Production: 5 Tips to Make It Smoother" property="og:title"/><meta content="Master deployment to production with expert tips on automation, feature flags, and more. Enhance your workflow and minimize risks today!" property="og:description"/><meta content="Deploy to Production: 5 Tips to Make It Smoother" name="twitter:title"/><meta content="Master deployment to production with expert tips on automation, feature flags, and more. Enhance your workflow and minimize risks today!" 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/deploy-to-production-5-tips-make-smoother" rel="canonical"/><script type="application/ld+json">
|
||
{
|
||
"@context": "https://schema.org",
|
||
"@type": "BlogPosting",
|
||
"headline": "Deploy to Production: 5 Tips to Make It Smoother",
|
||
"name": "Deploy to Production: 5 Tips to Make It Smoother - bba617c2-4429-45de-9c87-f8ee307592a7",
|
||
"description": "Master deployment to production with expert tips on automation, feature flags, and more. Enhance your workflow and minimize risks today!",
|
||
"url": "/blog/deploy-to-production-5-tips-make-smoother",
|
||
"image": "",
|
||
"datePublished": "2018-03-13",
|
||
"dateModified": "2026-06-05T08:55:09.096Z",
|
||
"author": {
|
||
"@type": "Person",
|
||
"name": "Erik Francis",
|
||
"image": "",
|
||
"jobTitle": "Senior Software Engineer at CloudBees"
|
||
},
|
||
"publisher": {
|
||
"@type": "Organization",
|
||
"name": "CloudBees",
|
||
"logo": {
|
||
"@type": "ImageObject",
|
||
"url": "https://cdn.prod.website-files.com/695e1939655d6c0175b126da/696254cf9924a1df0698d83e_Brand%20Logo.svg"
|
||
}
|
||
},
|
||
"articleSection": "How-tos and Support",
|
||
"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,t,p){var n=document.documentElement,s={p:[],r:[]},u={p:s.p,r:s.r,push:function(e){s.p.push(e)},ready:function(e){s.r.push(e)}};e.intellimize=u,n.className+=" "+p,setTimeout(function(){n.className=n.className.replace(RegExp(" ?"+p),"")},t)})(window, 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 & 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 & 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 & 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">How-tos and Support</p><h1 data-w-id="e08e7190-573b-1ed5-0f56-04bb938f6aff" class="ts-h3 ts-wrap-balance">Deploy to Production: 5 Tips to Make It Smoother</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"><p class="ts-p2 in-details">Erik Francis</p></div><div class="spacer is-8"></div><div class="ts-overline in-details">Published on</div><p class="ts-p2 in-details">March 13, 2018</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>Who hasn't had issues when deploying a software change to production? No one. </p><p>I once accidentally deleted a bin folder from a .NET application in one of four servers when deploying a change. The site was working intermittently as a consequence, so I had to check all the servers again to find the one that was having problems. Luckily for me, there were <em>only</em> four servers. Everything that <em>can</em> go wrong in a deployment change to production <em>will</em> go wrong. It's <a href="https://en.wikipedia.org/wiki/Murphy%27s_law" data-wf-native-id-path="d4538a6b-a1ec-347e-1638-fea7f1b8bdd0" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="d4538a6b-a1ec-347e-1638-fea7f1b8bdd0">Murphy's law</a>. For that reason, we have a sort of respect that borders on fear when we think about doing deployments. There's too much at risk, so sometimes we avoid the struggle. But in reality, <strong>deployments should be the most boring task of the workflow</strong>. The trick is knowing how to do it. </p><p>With that in mind, let's talk about some ways to smoothly deploy to production without risking quality.</p><h2>1. Automate As Much As Possible</h2><p>Let computers do the repeatable work for you---they're better at that than we are. I prefer to invest some hours working on a script to do deployments, like a recipe of commands. Then I test the script locally and in the development environment. That way, next time I want to deploy a change, I won't have to worry about missing any steps like creating a folder or giving permissions to some files. I'll just need to run the script again. But I'm not talking about just a bash script that can be hard to read and understand. </p><p>In the last few years, new things have emerged. You have at your disposal tools like <a href="https://www.terraform.io/" data-wf-native-id-path="24b54ee6-2f48-1b02-7784-ba09f142c979" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="24b54ee6-2f48-1b02-7784-ba09f142c979"><strong>Terraform</strong></a>, <a href="https://www.ansible.com/" data-wf-native-id-path="ccf955e0-219f-a04d-6ba0-8f485d704f2d" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="ccf955e0-219f-a04d-6ba0-8f485d704f2d"><strong>Ansible</strong></a>, and <a href="https://jenkins.io/" data-wf-native-id-path="2bc02244-1fc1-0c90-c83e-530c937c4416" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="2bc02244-1fc1-0c90-c83e-530c937c4416"><strong>Jenkins</strong></a>, which allow you to use code principles. You can have all your scripts in version control, and that will be the only source of truth. That means everyone will know what changed, as well as when and why it changed, not just in code but also in infrastructure and deployment pipelines. All of this means that <strong>deployments can be as easy as clicking a button</strong>. </p><figure class="w-richtext-align-fullwidth w-richtext-figure-type-image"><a target="_blank" href="https://cloudbees.io" data-wf-native-id-path="f50dd0b2-28ec-3319-3258-feb382999875" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="f50dd0b2-28ec-3319-3258-feb382999875"><div><img loading="lazy" alt="Elevate Developer Productivity with Ease" src="https://cdn.prod.website-files.com/6964c3f9b6de03a57eb64454/6a21b213ac7e7a527df5a33f_SaaS-TryforFree-1200x628-Option3.jpeg"/></div></a></figure><p>Even reverting the deployment is a button-click away. You can get to the point where anyone, even non-technical people, can do deployments. Automation makes deployments smoother by letting you move forward <em>and</em> backward with ease. The process becomes repeatable and reliable.</p><h2>2. Build and Pack Your Application Only Once</h2><p>The build process usually takes a while, so it will make things run so much more smoothly at deployment time if you only build once. You can keep coding and push changes all the time without worrying about promoting code that's not ready. </p><p>After you build your app, the next step is to pack it and to make sure the package remains untouchable. That way, you're constantly taking snapshots of your app. There will be times when the app is packed with errors or incomplete code. But that's no problem because you get to choose which package will be deployed. <strong>You'll move the same package across all your environments.</strong> This means that when you generate it for development, you'll use the exact same version of the app to update the production environment. You can easily achieve this by doing adequate configuration management. Just replace placeholders with the respective values of the environment---like database endpoints, for example. </p><p>You'll want to practice <strong>continuous integration</strong> to make packing easier, and one of its fundamental principles is that you build only once. Practices like this allow you to integrate constantly in a shared repository, verify the process with automated tests, and fix things quickly if needed. Do all of these things, and you'll smooth the deployment to production because what you tested in development is the same thing you tested in other environments, including production.</p><h2>3. Deploy the Same Way All the Time</h2><p>There's no value in applying the previous tips if you don't deliver the same way in all circumstances. You packed once to deploy the same code everywhere, and you need to deliver the same way. By doing this, you'll avoid any surprises in production. For this, <strong>you need to have production-like environments</strong>. This doesn't necessarily mean that you'll have the same data everywhere---that can be expensive and a possible security risk. It just means that if you have a load balancer in production because you need to be able to scale out/in, you also have to have one in development. </p><p>If you're hosting production in the cloud, you need to do the same for development. Of course, you can think about how to have cheaper environments. You just need to change configurations when you update an environment. This deployment tip will help you to be bold when changing production. You'll be fearless because you've already practiced it several times before actually doing it.</p><h2>4. Deploy Using Feature Flags In Your Application</h2><p>If you only take away one tip from this list, make it this one. <a href="/blog/using-feature-flags-across-cicd" data-wf-native-id-path="856b22fc-4f2c-16da-7a29-a095862098a0" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="856b22fc-4f2c-16da-7a29-a095862098a0">Using feature flags</a> will increase your confidence to deploy. And the benefit is even bigger when you combine them with strategies like <a href="https://rollout.io/blog/blue-green-deployment/" data-wf-native-id-path="a7ca8dc2-3a18-6593-8e36-da5eb5aca813" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="a7ca8dc2-3a18-6593-8e36-da5eb5aca813">blue/green</a> and <a href="https://rollout.io/blog/canary-deployment/" data-wf-native-id-path="8d07a145-b3f6-9fbd-9e57-b97d50315f05" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="8d07a145-b3f6-9fbd-9e57-b97d50315f05">canary</a> deployments. These strategies will help you to deploy without customers noticing there was a change. It doesn't matter which strategy you choose---all changes should be backward compatible. I recommend you choose a strategy that works for you. </p><p>Blue/green deployments tend to be costly, depending on your infrastructure and how small your app is. But they're the safest way to deploy because you're duplicating the environment and testing it before pushing it live. </p><p>In the case of canary deployments, you're pushing changes little by little. You can do it server by server or by recreating containers one at a time. But you can do it better using feature flags. </p><p>In fact, you can do it so much better that you can deploy all changes with the feature flag turned off. Then you can turn on the feature flag for a small fraction of users, monitor their behavior for a while, and keep enabling the feature for more users until you're sure that the change is good to keep. And you can do this all without worrying about adding more complexity to your code or deployment strategy. </p><p>One good tool that makes feature flags easier to implement is <a href="/capabilities/feature-management" data-wf-native-id-path="b25dce7b-5208-678a-7ace-ef7a6006aedb" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="b25dce7b-5208-678a-7ace-ef7a6006aedb">CloudBees Feature Management</a>. You set up your <a href="https://support.rollout.io/docs/audience" data-wf-native-id-path="3b0c4193-09e2-a6c2-9fb3-6df9b6ea77a6" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="3b0c4193-09e2-a6c2-9fb3-6df9b6ea77a6">audience</a> and roll out your changes little by little.</p><h2>5. Deploy in Small Batches, and Do It Often</h2><p>When you put all the previous tips in practice, deploying in small batches and doing it frequently becomes natural. It will take some time to get there, especially because deployments should be predictable and reliable. But it'll be worth it. </p><p>Now, automated testing is a prerequisite. It doesn't matter how much effort you put into automating your deployments---if at the end of the day you spend a lot of time manually testing your application, you won't see the benefit. So try to spend time automating your test cases. Otherwise, there's no point in doing automated deployments. But back to the subject at hand. </p><p>How small should your batches be, and how frequently should you deploy them? </p><p>Well, if you've ever played the hot potato game, you'll have a good idea of what "small" and "frequent" mean. As soon as you have something ready to be deployed, do it. It doesn't have to be complete, so long as you use feature flags. Treat deployments like coding. It's pretty weird when someone spends many hours coding without testing. Without checking your code as you write it, you won't know exactly what's causing an error. And if there aren't many lines of code, there are fewer things you need to check. </p><p>Amplify feedback by increasing the number of times you deploy. It might sound risky, but it's not. The fewer changes you make, the easier it will be to know what's wrong. Don't wait until you have a lot of changes to deploy. Do it frequently.</p><h2>Make Deployments a Mundane Task</h2><p>When you practice one or all of the above tips, your deployments will become boring. And in this case, boring is a big win. You'll find more exciting things to do rather than face the same problems over and over again. The tools, services, and practices that exist today---especially those I've mentioned here---are wonderful. They help you avoid surprises, transforming all those scary nights or long weekends into peaceful, routine workdays. You can do things like automate many of your tasks, especially testing, to make going forward easier and more efficient. </p><p>Also, you can pack your application; it will help you make deployments consistent. Note, too, that production environments don't deserve to be treated differently. And <a href="/capabilities/feature-management" data-wf-native-id-path="de70b52f-70a8-62de-3e50-a19ac14adfb9" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="de70b52f-70a8-62de-3e50-a19ac14adfb9">make sure you use feature flags</a>. They'll help you be less stressed when deploying because you know you can always turn off features and everything will continue working. </p><p>Lastly, work in small batches. It's easier to spot bugs, and it's less risky because you're not changing too many things at the same time.</p><h4>Learn about Continuous Deployment and more at <a href="https://reg.devopsworld.com/flow/cloudbees/devopsworld22/Landing/page/welcome" data-wf-native-id-path="133e0d16-2f92-0c63-ece9-1c9f68a57f77" data-wf-ao-click-engagement-tracking="true" data-wf-element-id="133e0d16-2f92-0c63-ece9-1c9f68a57f77">DevOps World</a>. Registration is now open!</h4></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'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> |