CINXE.COM
Build Cache & Test Distribution | Develocity
<!doctype html> <!--[if lt IE 7]> <html class="no-js ie ie6 lt-ie9 lt-ie8 lt-ie7" lang="en-US" id="html"> <![endif]--> <!--[if IE 7]> <html class="no-js ie ie7 lt-ie9 lt-ie8" lang="en-US" id="html"> <![endif]--> <!--[if IE 8]> <html class="no-js ie ie8 lt-ie9" lang="en-US" id="html"> <![endif]--> <!--[if gt IE 8]><!--> <html class="no-js" lang="en-US" id="html"> <!--<![endif]--> <head> <meta charset="UTF-8"/> <title> Build Cache & Test Distribution | Develocity </title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="HandheldFriendly" content="True"> <meta name="MobileOptimized" content="320"> <meta name="google-site-verification" content="556GOG4696iOC7jR3_llrr_Sq3G7YIpROJq3ylW1RAI" /> <!-- Start Favicons --> <link rel="apple-touch-icon" sizes="180x180" href="/wp-content/themes/fuel/assets/favicon/apple-touch-icon.png"> <link rel="icon" type="image/png" sizes="32x32" href="/wp-content/themes/fuel/assets/favicon/favicon-32x32.png"> <link rel="icon" type="image/png" sizes="16x16" href="/wp-content/themes/fuel/assets/favicon/favicon-16x16.png"> <link rel="mask-icon" href="/wp-content/themes/fuel/assets/favicon/safari-pinned-tab.svg" color="#5bbad5"> <link rel="shortcut icon" href="/wp-content/themes/fuel/assets/favicon/favicon.ico"> <meta name="msapplication-TileColor" content="#ffffff"> <meta name="msapplication-config" content="/wp-content/themes/fuel/assets/favicon/browserconfig.xml"> <meta name="theme-color" content="#ffffff"> <!-- End Favicons --> <meta name="application-name" content="Develocity"/> <link rel="pingback" href="/xmlrpc.php"/> <script src="https://browser.sentry-cdn.com/5.10.2/bundle.min.js" integrity="sha384-ssBfXiBvlVC7bdA/VX03S88B5MwXQWdnpJRbUYFPgswlOBwETwTp6F3SMUNpo9M9" crossorigin="anonymous"></script> <!-- Twitter Card --> <!-- End Twitter Card --> <script> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-4207603-1', 'auto', 'all', { 'allowLinker': true }); ga('all.set', 'transport', 'beacon'); ga('all.require', 'linker'); ga('all.linker:autoLink', ['gradle.org'], false, true); ga('all.send', 'pageview'); ga(function() { ga_trackers = []; ga.getAll().forEach(function(x,i) { ga_trackers.push(x.get('name')); }); ga_trackers.forEach(function(gaName) { ga(gaName + '.require', 'Clearbit', { mapping: { companyName: 'dimension1', companyDomain: 'dimension2', companyTags: 'dimension3', companySector: 'dimension4', companyIndustryGroup: 'dimension5', companyIndustry: 'dimension6', companySubIndustry: 'dimension7', companyType: 'dimension8', companyEmployeesRange: 'dimension9', companyAlexaRank: 'dimension10', companyCity: 'dimension11', companyState: 'dimension12', companyCountry: 'dimension13', companyFunding: 'dimension14', companyTech: 'dimension15', type: 'dimension16' } }); }); }); </script> <script async src="https://ga.clearbit.com/v1/ga.js?authorization=pk_067c93c26f8959abd1943501094c424f"></script> <script type="text/javascript"> piAId = '69052'; piCId = '50982'; (function() { function async_load() { var s = document.createElement('script'); s.type = 'text/javascript'; s.src = ('https:' == document.location.protocol ? 'https://pi' : 'http://cdn') + '.pardot.com/pd.js'; var c = document.getElementsByTagName('script')[0]; c.parentNode.insertBefore(s, c); } if(window.attachEvent) { window.attachEvent('onload', async_load); } else { window.addEventListener('load', async_load, false); } })(); </script> <!-- 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-WRTQKGT');</script> <!-- End Google Tag Manager --> <!-- Global site tag (gtag.js) - Google Analytics --> <script async src="https://www.googletagmanager.com/gtag/js?id=G-7W7NC6YNPT"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-7W7NC6YNPT'); gtag('config', 'UA-4207603-16'); </script> <meta name='robots' content='index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1' /> <!-- This site is optimized with the Yoast SEO Premium plugin v23.1 (Yoast SEO v23.1) - https://yoast.com/wordpress/plugins/seo/ --> <link rel="canonical" href="/gradle-enterprise-solutions/build-cache-test-distribution/" /> <meta property="og:locale" content="en_US" /> <meta property="og:type" content="article" /> <meta property="og:title" content="Build Cache & Test Distribution" /> <meta property="og:url" content="https://gradle.com/gradle-enterprise-solutions/build-cache-test-distribution/" /> <meta property="og:site_name" content="Develocity" /> <meta property="article:publisher" content="https://www.facebook.com/gradleinc/" /> <meta property="article:modified_time" content="2023-11-23T19:49:28+00:00" /> <meta property="og:image" content="https://gradle.com/wp-content/uploads/2024/01/meta-1.jpg" /> <meta property="og:image:width" content="1000" /> <meta property="og:image:height" content="500" /> <meta property="og:image:type" content="image/jpeg" /> <meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:site" content="@Develocity" /> <script type="application/ld+json" class="yoast-schema-graph">{"@context":"https://schema.org","@graph":[{"@type":"WebPage","@id":"https://gradle.com/gradle-enterprise-solutions/build-cache-test-distribution/","url":"https://gradle.com/gradle-enterprise-solutions/build-cache-test-distribution/","name":"Build Cache & Test Distribution | Develocity","isPartOf":{"@id":"https://gradle.com/#website"},"datePublished":"2020-08-16T16:48:47+00:00","dateModified":"2023-11-23T19:49:28+00:00","breadcrumb":{"@id":"https://gradle.com/gradle-enterprise-solutions/build-cache-test-distribution/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https://gradle.com/gradle-enterprise-solutions/build-cache-test-distribution/"]}]},{"@type":"BreadcrumbList","@id":"https://gradle.com/gradle-enterprise-solutions/build-cache-test-distribution/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://gradle.com/"},{"@type":"ListItem","position":2,"name":"Develocity Solution Overview","item":"https://gradle.com/gradle-enterprise-solutions/"},{"@type":"ListItem","position":3,"name":"Build Cache & Test Distribution"}]},{"@type":"WebSite","@id":"https://gradle.com/#website","url":"https://gradle.com/","name":"Develocity","description":"Developer Productivity and Build Performance","publisher":{"@id":"https://gradle.com/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://gradle.com/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https://gradle.com/#organization","name":"Develocity","alternateName":"Gradle","url":"https://gradle.com/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https://gradle.com/#/schema/logo/image/","url":"https://gradle.com/wp-content/uploads/2022/03/gradle-enterprise-social-large.png","contentUrl":"https://gradle.com/wp-content/uploads/2022/03/gradle-enterprise-social-large.png","width":1600,"height":900,"caption":"Develocity"},"image":{"@id":"https://gradle.com/#/schema/logo/image/"},"sameAs":["https://www.facebook.com/gradleinc/","https://x.com/Develocity","https://www.linkedin.com/company/gradle"]}]}</script> <!-- / Yoast SEO Premium plugin. --> <link rel='dns-prefetch' href='//gradle.com' /> <link rel='dns-prefetch' href='//ws.sharethis.com' /> <link rel='dns-prefetch' href='//cdn.jsdelivr.net' /> <script type="text/javascript"> /* <![CDATA[ */ window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.0.3\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/gradle.com\/wp-includes\/js\/wp-emoji-release.min.js?ver=6.6.1"}}; /*! This file is auto-generated */ !function(i,n){var o,s,e;function c(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(o,JSON.stringify(t))}catch(e){}}function p(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data),r=(e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0),new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data));return t.every(function(e,t){return e===r[t]})}function u(e,t,n){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\uddfa\ud83c\uddf3","\ud83c\uddfa\u200b\ud83c\uddf3")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!n(e,"\ud83d\udc26\u200d\u2b1b","\ud83d\udc26\u200b\u2b1b")}return!1}function f(e,t,n){var r="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):i.createElement("canvas"),a=r.getContext("2d",{willReadFrequently:!0}),o=(a.textBaseline="top",a.font="600 32px Arial",{});return e.forEach(function(e){o[e]=t(a,e,n)}),o}function t(e){var t=i.createElement("script");t.src=e,t.defer=!0,i.head.appendChild(t)}"undefined"!=typeof Promise&&(o="wpEmojiSettingsSupports",s=["flag","emoji"],n.supports={everything:!0,everythingExceptFlag:!0},e=new Promise(function(e){i.addEventListener("DOMContentLoaded",e,{once:!0})}),new Promise(function(t){var n=function(){try{var e=JSON.parse(sessionStorage.getItem(o));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(s),u.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"}),a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=function(e){c(n=e.data),a.terminate(),t(n)})}catch(e){}c(n=f(s,u,p))}t(n)}).then(function(e){for(var t in e)n.supports[t]=e[t],n.supports.everything=n.supports.everything&&n.supports[t],"flag"!==t&&(n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&n.supports[t]);n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&!n.supports.flag,n.DOMReady=!1,n.readyCallback=function(){n.DOMReady=!0}}).then(function(){return e}).then(function(){var e;n.supports.everything||(n.readyCallback(),(e=n.source||{}).concatemoji?t(e.concatemoji):e.wpemoji&&e.twemoji&&(t(e.twemoji),t(e.wpemoji)))}))}((window,document),window._wpemojiSettings); /* ]]> */ </script> <style id='wp-emoji-styles-inline-css' type='text/css'> img.wp-smiley, img.emoji { display: inline !important; border: none !important; box-shadow: none !important; height: 1em !important; width: 1em !important; margin: 0 0.07em !important; vertical-align: -0.1em !important; background: none !important; padding: 0 !important; } </style> <link rel='stylesheet' id='wp-block-library-css' href='https://gradle.com/wp-includes/css/dist/block-library/style.min.css?ver=6.6.1' type='text/css' media='all' /> <style id='kevinbatdorf-code-block-pro-style-inline-css' type='text/css'> .wp-block-kevinbatdorf-code-block-pro{direction:ltr!important;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;-webkit-text-size-adjust:100%!important;box-sizing:border-box!important;position:relative!important}.wp-block-kevinbatdorf-code-block-pro *{box-sizing:border-box!important}.wp-block-kevinbatdorf-code-block-pro pre,.wp-block-kevinbatdorf-code-block-pro pre *{font-size:inherit!important;line-height:inherit!important}.wp-block-kevinbatdorf-code-block-pro:not(.code-block-pro-editor) pre{background-image:none!important;border:0!important;border-radius:0!important;border-style:none!important;border-width:0!important;color:inherit!important;font-family:inherit!important;margin:0!important;overflow:auto!important;overflow-wrap:normal!important;padding:16px 0 16px 16px!important;text-align:left!important;white-space:pre!important;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}.wp-block-kevinbatdorf-code-block-pro.padding-disabled:not(.code-block-pro-editor) pre{padding:0!important}.wp-block-kevinbatdorf-code-block-pro.padding-bottom-disabled pre{padding-bottom:0!important}.wp-block-kevinbatdorf-code-block-pro:not(.code-block-pro-editor) pre code{background:none!important;background-color:transparent!important;border:0!important;border-radius:0!important;border-style:none!important;border-width:0!important;color:inherit!important;display:block!important;font-family:inherit!important;margin:0!important;overflow-wrap:normal!important;padding:0!important;text-align:left!important;white-space:pre!important;width:100%!important;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}.wp-block-kevinbatdorf-code-block-pro:not(.code-block-pro-editor) pre code .line{display:inline-block!important;min-width:var(--cbp-block-width,100%)!important;vertical-align:top!important}.wp-block-kevinbatdorf-code-block-pro.cbp-has-line-numbers:not(.code-block-pro-editor) pre code .line{padding-left:calc(12px + var(--cbp-line-number-width, auto))!important}.wp-block-kevinbatdorf-code-block-pro.cbp-has-line-numbers:not(.code-block-pro-editor) pre code{counter-increment:step calc(var(--cbp-line-number-start, 1) - 1)!important;counter-reset:step!important}.wp-block-kevinbatdorf-code-block-pro pre code .line{position:relative!important}.wp-block-kevinbatdorf-code-block-pro:not(.code-block-pro-editor) pre code .line:before{content:""!important;display:inline-block!important}.wp-block-kevinbatdorf-code-block-pro.cbp-has-line-numbers:not(.code-block-pro-editor) pre code .line:not(.cbp-line-number-disabled):before{color:var(--cbp-line-number-color,#999)!important;content:counter(step)!important;counter-increment:step!important;left:0!important;opacity:.5!important;position:absolute!important;text-align:right!important;transition-duration:.5s!important;transition-property:opacity!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important;-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important;width:var(--cbp-line-number-width,auto)!important}.wp-block-kevinbatdorf-code-block-pro.cbp-highlight-hover .line{min-height:var(--cbp-block-height,100%)!important}.wp-block-kevinbatdorf-code-block-pro .line.cbp-line-highlight .cbp-line-highlighter,.wp-block-kevinbatdorf-code-block-pro .line.cbp-no-blur:hover .cbp-line-highlighter,.wp-block-kevinbatdorf-code-block-pro.cbp-highlight-hover:not(.cbp-blur-enabled:not(.cbp-unblur-on-hover)) .line:hover .cbp-line-highlighter{background:var(--cbp-line-highlight-color,rgb(14 165 233/.2))!important;left:-16px!important;min-height:var(--cbp-block-height,100%)!important;min-width:calc(var(--cbp-block-width, 100%) + 16px)!important;pointer-events:none!important;position:absolute!important;top:0!important;width:100%!important}[data-code-block-pro-font-family="Code-Pro-Comic-Mono.ttf"].wp-block-kevinbatdorf-code-block-pro .line.cbp-line-highlight .cbp-line-highlighter,[data-code-block-pro-font-family="Code-Pro-Comic-Mono.ttf"].wp-block-kevinbatdorf-code-block-pro .line.cbp-no-blur:hover .cbp-line-highlighter,[data-code-block-pro-font-family="Code-Pro-Comic-Mono.ttf"].wp-block-kevinbatdorf-code-block-pro.cbp-highlight-hover:not(.cbp-blur-enabled:not(.cbp-unblur-on-hover)) .line:hover .cbp-line-highlighter{top:-.125rem!important}[data-code-block-pro-font-family=Code-Pro-Fira-Code].wp-block-kevinbatdorf-code-block-pro .line.cbp-line-highlight .cbp-line-highlighter,[data-code-block-pro-font-family=Code-Pro-Fira-Code].wp-block-kevinbatdorf-code-block-pro .line.cbp-no-blur:hover .cbp-line-highlighter,[data-code-block-pro-font-family=Code-Pro-Fira-Code].wp-block-kevinbatdorf-code-block-pro.cbp-highlight-hover:not(.cbp-blur-enabled:not(.cbp-unblur-on-hover)) .line:hover .cbp-line-highlighter{top:-1.5px!important}[data-code-block-pro-font-family="Code-Pro-Deja-Vu-Mono.ttf"].wp-block-kevinbatdorf-code-block-pro .line.cbp-line-highlight .cbp-line-highlighter,[data-code-block-pro-font-family="Code-Pro-Deja-Vu-Mono.ttf"].wp-block-kevinbatdorf-code-block-pro .line.cbp-no-blur:hover .cbp-line-highlighter,[data-code-block-pro-font-family="Code-Pro-Deja-Vu-Mono.ttf"].wp-block-kevinbatdorf-code-block-pro.cbp-highlight-hover:not(.cbp-blur-enabled:not(.cbp-unblur-on-hover)) .line:hover .cbp-line-highlighter,[data-code-block-pro-font-family=Code-Pro-Cozette].wp-block-kevinbatdorf-code-block-pro .line.cbp-line-highlight .cbp-line-highlighter,[data-code-block-pro-font-family=Code-Pro-Cozette].wp-block-kevinbatdorf-code-block-pro .line.cbp-no-blur:hover .cbp-line-highlighter,[data-code-block-pro-font-family=Code-Pro-Cozette].wp-block-kevinbatdorf-code-block-pro.cbp-highlight-hover:not(.cbp-blur-enabled:not(.cbp-unblur-on-hover)) .line:hover .cbp-line-highlighter{top:-1px!important}.wp-block-kevinbatdorf-code-block-pro:not(.code-block-pro-editor).padding-disabled pre .line.cbp-line-highlight:after{left:0!important;width:100%!important}.wp-block-kevinbatdorf-code-block-pro.cbp-blur-enabled pre .line:not(.cbp-no-blur){filter:blur(1px)!important;opacity:.4!important;pointer-events:none!important;transition-duration:.2s!important;transition-property:all!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.wp-block-kevinbatdorf-code-block-pro.cbp-blur-enabled.cbp-unblur-on-hover:hover pre .line:not(.cbp-no-blur){opacity:1!important;pointer-events:auto!important;--tw-blur:blur(0);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}.wp-block-kevinbatdorf-code-block-pro:not(.code-block-pro-editor) pre *{font-family:inherit!important}.cbp-see-more-simple-btn-hover{transition-property:none!important}.cbp-see-more-simple-btn-hover:hover{box-shadow:inset 0 0 100px 100px hsla(0,0%,100%,.1)!important}.code-block-pro-copy-button{border:0!important;border-style:none!important;border-width:0!important;cursor:pointer!important;left:auto!important;line-height:1!important;opacity:.1!important;padding:6px!important;position:absolute!important;right:0!important;top:0!important;transition-duration:.2s!important;transition-property:opacity!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important;z-index:10!important}.code-block-pro-copy-button:focus{opacity:.4!important}.code-block-pro-copy-button:not([data-has-text-button]){background:none!important;background-color:transparent!important}.wp-block-kevinbatdorf-code-block-pro.padding-disabled .code-block-pro-copy-button{padding:0!important}.wp-block-kevinbatdorf-code-block-pro:hover .code-block-pro-copy-button{opacity:.5!important}.wp-block-kevinbatdorf-code-block-pro .code-block-pro-copy-button:hover{opacity:.9!important}.code-block-pro-copy-button[data-has-text-button],.wp-block-kevinbatdorf-code-block-pro:hover .code-block-pro-copy-button[data-has-text-button]{opacity:1!important}.wp-block-kevinbatdorf-code-block-pro .code-block-pro-copy-button[data-has-text-button]:hover{opacity:.8!important}.code-block-pro-copy-button[data-has-text-button]{border-radius:.75rem!important;display:block!important;margin-right:.75rem!important;margin-top:.7rem!important;padding:.125rem .375rem!important}.code-block-pro-copy-button[data-inside-header-type=headlightsMuted],.code-block-pro-copy-button[data-inside-header-type^=headlights]{margin-top:.85rem!important}.code-block-pro-copy-button[data-inside-header-type=headlightsMutedAlt]{margin-top:.65rem!important}.code-block-pro-copy-button[data-inside-header-type=simpleString]{margin-top:.645rem!important}.code-block-pro-copy-button[data-inside-header-type=pillString]{margin-top:1rem!important}.code-block-pro-copy-button[data-inside-header-type=pillString] .cbp-btn-text{position:relative!important;top:1px!important}.cbp-btn-text{font-size:.75rem!important;line-height:1rem!important}.code-block-pro-copy-button .without-check{display:block!important}.code-block-pro-copy-button .with-check{display:none!important}.code-block-pro-copy-button.cbp-copying{opacity:1!important}.code-block-pro-copy-button.cbp-copying .without-check{display:none!important}.code-block-pro-copy-button.cbp-copying .with-check{display:block!important}.cbp-footer-link:hover{text-decoration-line:underline!important}@media print{.wp-block-kevinbatdorf-code-block-pro pre{max-height:none!important}.wp-block-kevinbatdorf-code-block-pro:not(#x) .line:before{background-color:transparent!important;color:inherit!important}.wp-block-kevinbatdorf-code-block-pro:not(#x) .cbp-line-highlighter,.wp-block-kevinbatdorf-code-block-pro:not(#x)>span{display:none!important}} </style> <style id='classic-theme-styles-inline-css' type='text/css'> /*! This file is auto-generated */ .wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none} </style> <style id='global-styles-inline-css' type='text/css'> :root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;} :where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;} :where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;} :root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;} </style> <link rel='stylesheet' id='arve-css' href='https://gradle.com/wp-content/plugins/advanced-responsive-video-embedder/build/main.css?ver=755e5bf2bfafc15e7cc1' type='text/css' media='all' /> <link rel='stylesheet' id='arve-pro-css' href='https://gradle.com/wp-content/plugins/arve-pro/build/main.css?ver=eea34735566740155d0f' type='text/css' media='all' /> <link rel='stylesheet' id='megamenu-css' href='https://gradle.com/wp-content/uploads/maxmegamenu/style.css?ver=d136bd' type='text/css' media='all' /> <link rel='stylesheet' id='dashicons-css' href='https://gradle.com/wp-includes/css/dashicons.min.css?ver=6.6.1' type='text/css' media='all' /> <link rel='stylesheet' id='global-css-css' href='https://gradle.com/wp-content/themes/fuel/assets/css/global.css?ver=1729708634' type='text/css' media='' /> <link rel='stylesheet' id='main-css-css' href='https://gradle.com/wp-content/themes/fuel/assets/build/main.19fea6acad0b398708fb.css?ver=3.0.0' type='text/css' media='all' /> <link rel='stylesheet' id='slick-css' href='https://cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.css?ver=6.6.1' type='text/css' media='all' /> <link rel='stylesheet' id='updated-menu-css' href='https://gradle.com/wp-content/themes/fuel/assets/css/updated-menu.css?ver=1.0.0' type='text/css' media='all' /> <link rel='stylesheet' id='enlighterjs-css' href='https://gradle.com/wp-content/plugins/enlighter/cache/enlighterjs.min.css?ver=0A0B0C' type='text/css' media='all' /> <link rel='stylesheet' id='lgc-unsemantic-grid-responsive-tablet-css' href='https://gradle.com/wp-content/plugins/lightweight-grid-columns/css/unsemantic-grid-responsive-tablet.css?ver=1.0' type='text/css' media='all' /> <script id='st_insights_js' type="text/javascript" src="https://ws.sharethis.com/button/st_insights.js?publisher=4d48b7c5-0ae3-43d4-bfbe-3ff8c17a8ae6&product=simpleshare&ver=8.5.0" id="ssba-sharethis-js"></script> <script type="text/javascript" src="https://gradle.com/wp-content/themes/fuel/assets/js/jquery.min.js?ver=3.7.1" id="jQuery-js"></script> <script type="text/javascript" src="https://gradle.com/wp-content/themes/fuel/assets/js/foundation.min.js" id="foundation-js"></script> <link rel="https://api.w.org/" href="/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="/wp-json/wp/v2/pages/1900" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="/xmlrpc.php?rsd" /> <link rel='shortlink' href='https://gradle.com/?p=1900' /> <link rel="alternate" title="oEmbed (JSON)" type="application/json+oembed" href="/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fgradle.com%2Fgradle-enterprise-solutions%2Fbuild-cache-test-distribution%2F" /> <link rel="alternate" title="oEmbed (XML)" type="text/xml+oembed" href="/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fgradle.com%2Fgradle-enterprise-solutions%2Fbuild-cache-test-distribution%2F&format=xml" /> <!--[if lt IE 9]> <link rel="stylesheet" href="/wp-content/plugins/lightweight-grid-columns/css/ie.min.css" /> <![endif]--> <style type="text/css" id="wp-custom-css"> .nav__cta .mega-menu-link{ width:11rem!important; } .postid-7290 h5.arve-title { display: none; } .postid-7273 .highlight { padding: 1rem; margin-bottom: 1.5rem; font-size: .8rem; line-height: 1.4; background-color: #f7f7f8; border-radius: .25rem; overflow-x: auto; } .page-id-4724 .cell.medium-9 li{ padding-bottom:10px; } #page-id-3831 .scrollmagic-pin-spacer { z-index: 1 !important; } @media (min-width:700px) and (max-width:1100px) { .page-id-7094 .ld-hero-section .ld-inner-container{ height: 800px!important; background-size: 20vh!important } } @media (min-width:800px) and (max-height: 690px) { .page-id-7094 .ld-hero-section .ld-inner-container { height: 800px!important } } h2.solutions-h1 { font-weight: 400!important; font-size: 32px; } .post-type-archive-training .lc-banner { width: 100%; background: #02303A; max-width: 1200px; margin: 0 auto; } /* ads border to blog post */ .postid-7004 section.article__content img { border: 1px solid #02303a; } @media screen and (max-width: 63.9375em) { .nav__link { pointer-events: initial !important; } } .customers__customers img[alt*='omaha']{ margin-top:10px; } .register-now-button { border: 1px; width: 180px; background-color: transparent; padding: 10px 20px; font-size: 17px; line-height: 1.4; text-align: center; white-space: nowrap; cursor: pointer; border-style: solid; border-radius: 3px; color: #1da2bd; text-decoration: none; border-width: 1px; } .register-now-button:hover { color: white; background: linear-gradient( 135deg , #069fce 0, #51cbbf 100%); } .customer-review .customer-review__image:last-of-type{ margin-right:40px; width: 170px; } @media only screen and (max-width: 600px) { .iframe-showdown { width: 100%; height: 100%; } } #gradle-back .quicklink-container.grid-x.align-center.pb10 .lc-quicklink:nth-child(2) { display:none; } html, body { font-family: "Lato", sans-serif !important; margin: 0; } .page-id-7094 .ld-hero-section { background: linear-gradient(102.45deg, #0B0D0F 16.82%, #1D5668 66.46%, #432282 80.46%); } .page-id-7094 .ld-hero-section .ld-inner-container { max-width: 1320px; margin: 0 auto; padding: 0 20px; box-sizing: border-box; position: relative; display: flex; align-items: center; justify-content: center; height: calc(100vh - 121px); background-image: url(https://gradle.com/wp-content/uploads/2024/01/Vector-2.png); background-size: 25vh; background-repeat: no-repeat; background-position: right bottom; } .page-id-7094 .ld-hero-row { display: flex; align-items: center; justify-content: center; } .ld-content-bottom svg { margin-top: -16px; max-width: 95px; } .page-id-7094 .site__header{ height: 46px; } .page-id-7094 img.ld-image-hero-right { display:none !important; } .ld-hero-col.ld-hero-col1 { width: 70%; } .ld-hero-col.ld-hero-col2 { width: 30%; } .ld-hero-date-time { display: flex; color: #fff; font-size: 17px; line-height: 15px; margin-bottom: 20px; } .ld-hero-date { border-right: 2px solid #fff; margin-right: 5px; padding-right: 5px; } .page-id-7094 .ld-hero-image-top img { max-width: 190px; margin-bottom: 20px; } .ld-hero-heading h1 { font-size: 70px; color: #fff; font-weight: 900; line-height: 85px; } .page-id-7094 .ld-hero-heading img { margin-top: -12px; margin-right: 5px; } .page-id-7094 .ld-hero-heading-desc p { color: #b2b2b2; font-size: 17px; line-height: 25px; margin: 15px 0 50px; max-width: 800px; } a.regs-button { color: #fff; background: linear-gradient(135deg, #209bc4 0%, #4dc9c0 100%); padding: 14px 55px; border-radius: 8px; font-size: 17px; text-decoration: none; } a.regs-button:hover { color: #fff !important; } a.regs-button-black { color: #fff; background: #0b0d0f; padding: 14px 55px; border-radius: 8px; font-size: 17px; text-decoration: none; display: inline-block; margin-bottom: 20px; } a.regs-button-black:hover { color: #fff !important; } .ld-content-section { background: #f8f8f8; } .ld-content-section .ld-inner-container { max-width: 1180px; margin: 0 auto; padding: 70px 20px; box-sizing: border-box; } .ld-content-row { display: flex; align-items: center; } .ld-content-bottom img { margin-top: -15px; } .ld-content-col.ld-content-col1 { width: 50%; } .ld-content-col.ld-content-col1 img { max-width: 100%; padding-right: 60px; } .ld-content-col.ld-content-col2 { width: 50%; } .ld-content-heading { background: linear-gradient(135deg, #209bc4 0%, #4dc9c0 100%); -webkit-background-clip: text; color: transparent; font-weight: 700; font-size: 52px; line-height: 60px; } .ld-content-content { padding: 10px 0 20px; } .ld-content-content li { font-size: 17px; line-height: 25px; } .speaker-row { display: flex; justify-content: center; margin-top: 100px; } .speaker-row .speakers-block { width: 30%; box-shadow: -6px -6px 5px 0px #ffffff66, 6px 6px 4px 0px #4d4d4d33; border-radius: 72px; padding: 15px; vertical-align: top; margin-right: 30px; color: #fff; } .speaker-row .speakers-block:last-child { margin-right: 0; } .speaker-block-top { display: flex; } .speaker-block-top .speaker-img { width: 45%; position: relative; } .speaker-block-top .speaker-img img { position: absolute; width: 100%; top: -85px; left: 0; max-width: 125px; } .speaker-block-top .speaker-dets { width: 60%; } .speaker-block-top .speaker-dets p { margin-bottom: 0; font-weight: 900; font-size: 20px; line-height: 25px; margin-top: 0; color: #000000; } .speaker-block-top .speaker-dets .speaker-pos { margin-bottom: 0; color: #808080; font-size: 15px; font-style: italic; padding: 5px 0 8px; margin-top: 0; font-weight: 400; } .speaker-block-top .speaker-dets img { max-width: 105px; margin-bottom: 25px; } .speaker-descr p { color: #808080; font-size: 16px; font-style: italic; padding: 5px 20px 40px; } .ld-speakers-section { background: #efefef; } .ld-speakers-section .ld-inner-container { max-width: 1320px; margin: 0 auto; padding: 70px 20px; box-sizing: border-box; } h2.speaker-title { background: linear-gradient(135deg, #209bc4 0%, #4dc9c0 100%); -webkit-background-clip: text; color: transparent; font-weight: 900; font-size: 88px; line-height: 98px; text-align: center; } .ld-speakers-section .ld-inner-container > p { font-weight: 500; font-size: 22px; text-align: center; max-width: 760px; margin: 0 auto 100px; } .ld-form-section { background: linear-gradient(180deg, #209bc4 0%, #4dc9c0 100%); } .ld-form-section .ld-inner-container { max-width: 900px; margin: 0 auto; padding: 100px 0 0; } .iframe-form { background: #fff; border-radius: 48px 48px 0 0; padding: 70px 50px 0; } .iframe-form h3 { text-align: center; color: #0b0d0f; font-weight: 700; font-size: 50px; } .iframe-form p { text-align: center; } .ld-image-hero-right-mobile { display: none; } #lowdown-banner { background-image: linear-gradient(135deg, #069fce 0, #51cbbf 100%) !important; display: block !important; position: fixed; top: 0; width: 100%; display: block !important; z-index: 1000; background-color: #0b0d0f; color: #ffffff !important; padding-top: 15px; padding-bottom: 15px; text-align: center; padding-left: 15px; padding-right: 15px; } #announcement-banner-standalone { display: none !important; } #lowdown-banner a { box-shadow: -2px -2px 6px 0px #66d6fb, 4px 4px 4px 0px #00000040; color: #ffffff !important; text-decoration: none; margin-left: 25px; border-radius: 100px; padding: 10px 30px; font-weight: 600; } #header { top: 54px !important; } .ld-content-content li { color: #4d4d4d; } .iframe-form iframe { } .ld-hero-mobile { display: none; } .ld-content-col1 iframe { width: 100%; height: 500px; box-shadow: none !important; border: none !important; } /*footer**************************************************************************/ .site__footer { background: white; } .site-footer__logo-container { text-align: center; } .site-footer__logo { height: 28px; } .site-footer__links { text-align: right; } @media print, screen and (max-width: 39.99875em) { .site-footer__links { text-align: center; padding: 10px 0 8px; } } .site-footer .site-footer__links { text-align: right; } @media print, screen and (max-width: 39.99875em) { .site-footer .site-footer__links { text-align: center; } } .site-footer__links a:not(:first-child) { padding-left: 10px; } .site-footer__links a:not(:last-child) { padding-right: 10px; } .site-footer__links a { color: black; } .footer { padding: 0 0 10px; background: white; } .footer__container { padding-top: 10px; padding-bottom: 10px; } .footer-top { background: #eef0ef; padding: 15px 0; } .footer-top__menu-title { font-size: 16px; margin-bottom: 10px; } .footer-top__menu-title a { color: #31323d; } .footer-subnav__link { color: #9a9a9a; text-decoration: none; } .footer-subnav__container { list-style-type: none; margin-left: 0; padding: 0; } .footer-top__menu-title span { font-weight: 600; font-size: 17px; } .section--page-footer__newsletter form { padding-top: 6px; display: flex; justify-content: flex-start; } .section--page-footer__item__title { color: #515151; font-weight: 500; font-size: 0.875rem; max-width: 350px; margin-bottom: 10px; padding-left: 8px; } .section--page-footer__newsletter .email { margin-top: 10px; } .footer-row { display: flex; justify-content: center; } .footer-row__item { margin: 20px 40px; } .section--page-footer__newsletter { max-height: 176px; } .section--page-footer__newsletter .email { height: 40px; line-height: 40px; width: 250px; color: #1da2bd; font-size: 16px; padding-left: 20px; border-top-left-radius: 4px; border-bottom-left-radius: 4px; border-style: none; } .section--page-footer__newsletter .submit { border-top-left-radius: 0; border-bottom-left-radius: 0; height: 40px; line-height: 40px; padding-top: 0; padding-bottom: 0; min-width: 100px; } .grid-container.footer__container { max-width: 1280px; margin: 0 auto; } .grid-x.grid-margin-x.align-middle { display: flex; justify-content: space-between; } .site-footer__links a { text-decoration: none; } @media print, screen and (max-width: 63.99875em) { .footer-row { flex-flow: row wrap; } .section--page-footer__newsletter { width: 100%; } } @media print, screen and (max-width: 39.99875em) { .footer-row__item { width: 100%; margin: 10px 40px; } .footer__copy { order: 3; text-align: center; } .site-footer__logo-container { order: 1; } .site-footer__links { order: 2; } } /*Responsive**************************************************************************/ @media only screen and (max-width: 1300px) { .speaker-row { flex-wrap: wrap; justify-content: center; } .speaker-row .speakers-block { width: 45%; margin-right: 40px; margin-bottom: 80px; } .speaker-row .speakers-block:nth-child(2) { margin-right: 0; } .speaker-block-top .speaker-dets { width: 100%; } } @media only screen and (max-width: 1280px) { .ld-speakers-section .ld-inner-container { max-width: 1000px; } .speaker-block-top { margin-bottom: 15px; } .ld-hero-section .ld-inner-container { max-width: 1160px; } .ld-hero-heading h1 { font-size: 60px; line-height: 80px; } .ld-hero-col.ld-hero-col2 { width: 40%; } .grid-container.footer__container { max-width: 85%; } } @media only screen and (max-width: 1024px) { .ld-hero-heading img { max-width: 390px; } .page-id-7094 .ld-hero-section .ld-inner-container { max-width: 1320px; margin: 0 auto; padding: 0 20px; box-sizing: border-box; position: relative; display: flex; align-items: center; justify-content: center; height: calc(100vh - 110px); background-image: url(https://gradle.com/wp-content/uploads/2024/01/Vector-2.png); background-size: 25vh; background-repeat: no-repeat; } } @media only screen and (max-width: 782px) { .speaker-block-top .speaker-img img { position: absolute; width: 100%; top: -70px; left: -9px; max-width: 125px; } .ld-content-content li { font-size: 15px; } .ld-hero-heading img { margin-top: -7px; max-width: 310px; } .ld-hero-col.ld-hero-col2 { width: 35%; } .ld-hero-heading h1 { font-size: 45px; line-height: 75px; } .ld-hero-heading img { margin-top: -14px; } .ld-hero-heading-desc p { color: #b2b2b2; font-size: 14px; line-height: 20px; margin: 15px 0 50px; } .ld-hero-date-time { display: flex; color: #fff; font-size: 15px; line-height: 15px; margin-bottom: 15px; } .ld-content-row { flex-direction: column; max-width: 400px !important; margin: 0 auto; } .ld-content-col.ld-content-col1 img { max-width: 100%; padding-right: 0; margin: 0 auto; text-align: center; display: block; } .ld-content-col.ld-content-col1 { width: 100%; } .ld-content-col.ld-content-col2 { width: 100%; } .ld-content-heading { background: linear-gradient(135deg, #209bc4 0%, #4dc9c0 100%); -webkit-background-clip: text; color: transparent; font-weight: 700; font-size: 50px; line-height: 54px; margin-top: 25px; } a.regs-button-black { display: block; text-align: center; } .ld-content-bottom p { text-align: center; } h2.speaker-title { font-size: 66px; line-height: 76px; } .ld-speakers-section .ld-inner-container > p { font-size: 19px; } .ld-form-section .ld-inner-container { padding: 100px 30px 0; } } @media only screen and (max-width: 744px) { #header { top: 120px !important; } #lowdown-banner { display: flex !important; flex-direction: column; } #lowdown-banner a { display: block; width: 200px; text-align: center; margin: 15px auto; } } @media only screen and (max-width: 630px) { .ld-hero-col.ld-hero-col1 { width: 100%; } .ld-hero-col.ld-hero-col2 { width: 20%; } .page-id-7094 .site__header{ height: auto; } } @media only screen and (max-width: 600px) { .page-id-7094 .ld-hero-mobile { display: block; position: relative; overflow: hidden; width: 100%; } .page-id-7094 .ld-hero-mobile img { max-width: 75%; margin: 30px auto 0; text-align: center; display: block; } .page-id-7094 .ld-hero-section .ld-inner-container { max-width: 1320px; margin: 0 auto; padding: 50px 20px 0 !important; box-sizing: border-box; position: relative; display: flex; align-items: center; justify-content: center; height: auto; background-image: none; flex-direction: column; } .speaker-row .speakers-block { width: 100%; margin-right: 0; margin-bottom: 75px; } .speaker-block-top .speaker-dets { width: 100%; } .dpe-speakers-section .dpe-container > h2 { font-size: 34px; line-height: 39px; } .dpe-speakers-section .dpe-container > p { line-height: 21px; font-size: 15px; } h2.speaker-title { font-size: 50px; line-height: 50px; } .ld-speakers-section .ld-inner-container > p { font-size: 16px; } .ld-content-heading { font-size: 35px; line-height: 45px; } .ld-content-content li { font-size: 16px; line-height: 23px; } } @media only screen and (max-width: 532px) { .ld-hero-col.ld-hero-col2 { width: 15%; } } @media only screen and (max-width: 520px) { .ld-form-section .ld-inner-container { padding: 100px 20px 0; } .ld-hero-col.ld-hero-col2 { display: none; } .grid-x.grid-margin-x.align-middle { display: flex; justify-content: center; flex-direction: column; padding: 5px 0; } .iframe-form h3 { font-size: 35px; } .iframe-form { border-radius: 48px 48px 0 0; padding: 50px 20px 0; } .ld-hero-col.ld-hero-col2 { display: none; } img.ld-image-hero-right { max-width: 250px; } .ld-hero-col.ld-hero-col1 { width: 100%; } .ld-hero-heading img { margin-top: -9px; } .ld-hero-image-top img { max-width: 140px; } a.regs-button { display: block; text-align: center; margin-top: -20px; } .ld-hero-section { background: #0b0d0f; height: auto; position: relative; } .ld-hero-section .ld-inner-container { padding-bottom: 0 !important; } .ld-hero-heading img { margin-top: -4px !important; max-width: 212px; } .ld-hero-heading h1 { font-size: 32px; line-height: 52px; } } @media only screen and (max-width: 485px) { #header { top: 140px !important; } } @media only screen and (max-width: 470px) { } @media only screen and (max-width: 375px) { } .enlighter span { font-size: 1.2em; } blockquote, blockquote p { line-height: 1.6; color: #8a8a8a; margin-top: 0; padding-top: 0; } </style> <style id="sccss">/* Enter Your Custom CSS Here */ .pre-wrap { white-space: pre-wrap; } .wp-block-code { border: 1px solid #ccc; border-radius: 5px; background: #fafafa; padding: 15px; } .slick-slide img { max-height: 65px; } .subnav__link { font-size: 1rem; white-space: normal !important; } .nav__item .subnav .subnav__links__container .subnav__item__container .grid-x .subnav__horizontal__item .subnav__item img { height: 24px; } .nav__item .subnav .subnav__links__container .subnav__item__container .grid-x .subnav__horizontal__item .subnav__item p, .nav__item .subnav .subnav__links__container .subnav__item__container .grid-x .subnav__horizontal__item .subnav__item img { margin-top: 0px; margin-bottom: 0px; } .wp-block-image figcaption { text-align: center; font-style: italic; font-size: 0.9em; } .hero-2 .grid-container { max-width: 1600px; padding-left: 1.7rem; } .wp-block-image figcaption { text-align: center; font-style: italic; font-size: 0.9em; } .page-template-template-failure-analytics .giant-features__introduction-title, .page-template-template-failure-analytics .primary-benefits__title { font-weight: 500; } .page-template-template-failure-analytics .giant-features__three_columns .giant-features__block-image { max-height: 265px; max-width: 265px; } .page-template-template-failure-analytics .wp-caption-text { color: #9b9b9b; text-align: center; margin-top: 0; margin-bottom: 40px; } .page-template-template-failure-analytics .get-started-section { background-size: cover; background-position: top center; text-align: center; padding: 40px 20px 70px; background-color: #02303a; } .page-template-template-failure-analytics .get-started-section__title { font-size: 42px; font-weight: 700; line-height: 49px; color: #ffffff; margin: 20px 0; } .page-template-template-failure-analytics .get-started-section__content { font-size: 19px; line-height: 23px; color: #ffffff; max-width: 550px; margin: 0 auto 30px; } .page-template-template-failure-analytics .callout { background-color: #f3f5f4; border: none; } .item__title { font-size: 30px !important; } .item__subtitle { font-weight: 300 !important; } .home-customer-carousel { width: 100%; height: 234px; margin: 0 auto; } .home-customer-carousel .slick-slide { float: left; height: 234px !important; width: 234px !important; } .home-customer-carousel .slick-slide img { max-height: 234px !important; width: 234px !important; } /* Style the buttons that are used to open and close the accordion panel */ .accordion { background-color: #eee; color: #444; cursor: pointer; padding: 18px; width: 100%; text-align: left; border: none; outline: none; transition: 0.4s; } /* Add a background color to the button if it is clicked on (add the .active class with JS), and when you move the mouse over it (hover) */ .active, .accordion:hover { background-color: #ccc; } /* Style the accordion panel. Note: hidden by default */ .panel { padding: 0 18px; background-color: white; display: none; overflow: hidden; } /* Add a background color to the button if it is clicked on (add the .active class with JS), and when you move the mouse over it (hover) */ .active, .accordion:hover { background-color: #ccc; } .accordion:after { content: '\02795'; /* Unicode character for "plus" sign (+) */ font-size: 13px; color: #777; float: right; margin-left: 5px; } .active:after { content: "\2796"; /* Unicode character for "minus" sign (-) */ } .drift-frame-controller { bottom: 70px !important; } .top-banner { display: block; } table.nodeco thead, table.nodeco tbody, table.nodeco tfoot { border: none; background-color: #ffffff; } table.nodeco tbody tr:nth-child(even) { background-color: #ffffff; } .feature-table { width: 100%; } .feature-table tbody { border: 0; background-color: transparent; } .feature-table tbody tr:nth-child(even), .feature-table tbody tr:nth-child(odd) { background-color: transparent; } .page-id-2089 .header-outer { background: #0b0d0f !important; } @media screen and (max-width: 63.9375em) { .nav__link { pointer-events: initial !important; } } </style><style type="text/css">/** Mega Menu CSS: fs **/</style> <meta name="facebook-domain-verification" content="lhcydh0l1l0fxs8o8ulik53x3ytb1l" /> </head> <body class="site page-template page-template-templates page-template-template-failure-analytics page-template-templatestemplate-failure-analytics-php page page-id-1900 page-child parent-pageid-1933 mega-menu-primary" data-template="base.twig"> <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-WRTQKGT" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> <header class="site__header"> <div class="top-banner" id="top-banner"> <div class="grid-container" style="max-width: 100% !important"> <div class="grid-x"> <div class="cell"> <p>Writing tests is hard. Fixing them is harder. <a href="/training/writing-tests-is-hard-fixing-them-is-harder/">Join the webinar.</a></p> <div id="announcement-close" class="cursor-pointer rounded-full p-1 transition-colors hover:bg-gradle-blue"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true" class="size-5 transition-transform md:size-4"><path d="M6.28 5.22a.75.75 0 00-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 101.06 1.06L10 11.06l3.72 3.72a.75.75 0 101.06-1.06L11.06 10l3.72-3.72a.75.75 0 00-1.06-1.06L10 8.94 6.28 5.22z"></path></svg></div> </div> </div> </div> </div> <script> // Function to fetch the cookie value function fetchBannerStatus(name) { var bannerName = name + "="; var cookieArray = document.cookie.split(';'); for (var i = 0; i < cookieArray.length; i++) { var cookie = cookieArray[i].trim(); if (cookie.indexOf(bannerName) == 0) { return cookie.substring(bannerName.length, cookie.length); } } return null; } // Hide the banner immediately if the cookie is set to true (function() { var bannerStatus = fetchBannerStatus('announcement_banner_closed'); if (bannerStatus === 'true') { var banner = document.getElementById('top-banner'); if (banner) { banner.style.display = 'none'; // Hide the banner directly } } })(); </script> <div class="header-outer" style="background: #161617; z-index: 999;" id="updated-menu"> <div class="grid-x grid-padding-x header__container align-middle" style="background-color: #161617; max-width: 1280px; margin: 0 auto;"> <div class="logo-outer" style="background-color: #161617;"> <div class="logo" role="banner"> <a href="/" class="logo__image-link"> <img class="logo__image" src="/wp-content/uploads/2023/09/LOGO-GRADLE-HZ_RGB-REV.svg" alt="Develocity"> </a> </div> </div> <div class="outer-menu"> <div class="menu-toggle hide-desktop"> <div class="toggle-open"> <svg xmlns="http://www.w3.org/2000/svg" width="36" height="36" viewBox="0 0 26 19" fill="none"> <path d="M0.5 2.11243C0.5 1.42243 1.06 0.862427 1.75 0.862427H24.25C24.94 0.862427 25.5 1.42243 25.5 2.11243C25.5 2.80243 24.94 3.36243 24.25 3.36243H1.75C1.06 3.36243 0.5 2.80243 0.5 2.11243ZM24.25 8.36243H1.75C1.06 8.36243 0.5 8.92243 0.5 9.61243C0.5 10.3024 1.06 10.8624 1.75 10.8624H24.25C24.94 10.8624 25.5 10.3024 25.5 9.61243C25.5 8.92243 24.94 8.36243 24.25 8.36243ZM24.25 15.8624H1.75C1.06 15.8624 0.5 16.4224 0.5 17.1124C0.5 17.8024 1.06 18.3624 1.75 18.3624H24.25C24.94 18.3624 25.5 17.8024 25.5 17.1124C25.5 16.4224 24.94 15.8624 24.25 15.8624Z" fill="white" /> </svg> </div> <div class="toggle-close"> <svg xmlns="http://www.w3.org/2000/svg" width="14" height="15" viewBox="0 0 14 15" fill="none"> <path fill-rule="evenodd" clip-rule="evenodd" d="M0.46967 1.0821C0.762563 0.789203 1.23744 0.789203 1.53033 1.0821L7 6.55177L12.4697 1.0821C12.7626 0.789204 13.2374 0.789204 13.5303 1.0821C13.8232 1.37499 13.8232 1.84986 13.5303 2.14276L8.06066 7.61243L13.5303 13.0821C13.8232 13.375 13.8232 13.8499 13.5303 14.1428C13.2374 14.4356 12.7626 14.4356 12.4697 14.1428L7 8.67309L1.53033 14.1428C1.23744 14.4356 0.762563 14.4356 0.46967 14.1428C0.176777 13.8499 0.176777 13.375 0.46967 13.0821L5.93934 7.61243L0.46967 2.14276C0.176777 1.84986 0.176777 1.37499 0.46967 1.0821Z" fill="white" /> </svg> </div> </div> <ul class="main-menu"> <li class="menu-item has-children"> <a href="#" class="menu-link">Products</a> <div class="sub-menu-container"> <div class="menu-wrapper"> <ul class="submenu"> <span class="menu-title">PRODUCTS</span> <li class="submenu-item active-menu item-parent submenu-outer" data-menu="develocity"> <a href="/develocity/" class="submenu-link mega-menu-link"> <div class="menu-image-container menu-link-container"><img class="menu-image-link" src="/wp-content/uploads/2023/09/LOGO-DEVELOCITY_MONO-REV.svg" /></div> </a> </li> <li class="submenu-item item-parent submenu-outer" data-menu="build"> <a href="https://gradle.org/" target="_blank" rel="noopener" class="submenu-link mega-menu-link"> <div class="menu-image-container menu-link-container no-children"><img class="menu-image-link" src="/wp-content/uploads/2023/09/LOGO-BUILDTOOL_MONO-REV.svg" /></div> </a> </li> </ul> <div class="submenu-inner"> <ul class="more-submenu" data-menu="develocity"> <span class="menu-title">FEATURES</span> <li class="submenu-item"> <a href="/develocity/accelerate/" class="submenu-link parent mega-menu-link" ><img class="menu-item-icon" src="/wp-content/uploads/2024/10/accelerate-1.svg" />Accelerate</a> <ul class="sub-menu-visible"> <li class="more-submenu-item"> <a href="/develocity/product/build-cache/" class="more-submenu-link mega-menu-link">Build Cache</a> </li> <li class="more-submenu-item"> <a href="/develocity/product/predictive-test-selection/" class="more-submenu-link mega-menu-link">Predictive Test Selection</a> </li> <li class="more-submenu-item"> <a href="/develocity/product/test-distribution/" class="more-submenu-link mega-menu-link">Test Distribution</a> </li> </ul> </li> <li class="submenu-item"> <a href="/develocity/troubleshoot/" class="submenu-link parent mega-menu-link"><img class="menu-item-icon" src="/wp-content/uploads/2024/10/troubleshoot-1.svg" />Troubleshoot</a> <ul class="sub-menu-visible"> <li class="more-submenu-item"> <a href="/develocity/product/build-scan/" class="more-submenu-link mega-menu-link">Build Scan</a> </li> <li class="more-submenu-item"> <a href="/develocity/product/flaky-test-detection/" class="more-submenu-link mega-menu-link">Flaky Test Detection</a> </li> <li class="more-submenu-item"> <a href="/develocity/product/failure-analytics/" class="more-submenu-link mega-menu-link">Failure Analytics</a> </li> </ul> </li> <li class="submenu-item"> <a href="/develocity/observe/" class="submenu-link parent mega-menu-link"><img class="menu-item-icon" src="/wp-content/uploads/2024/10/observe.svg" />Observe</a> <ul class="sub-menu-visible"> <li class="more-submenu-item"> <a href="/develocity/product/reporting-and-visualization/" class="more-submenu-link mega-menu-link">Reporting & Visualization</a> </li> <li class="more-submenu-item"> <a href="/develocity/product/performance-insights/" class="more-submenu-link mega-menu-link">Performance Insights</a> </li> </ul> </li> <li class="submenu-item"> <a href="#" class="submenu-link parent" style="padding-left: 0;">Develocity</a> <ul class="sub-menu-visible" style="padding-left: 0;"> <li class="more-submenu-item"> <a href="/develocity/" class="more-submenu-link mega-menu-link">Overview</a> </li> <li class="more-submenu-item"> <a href="/develocity/solutions/security/" class="more-submenu-link mega-menu-link">Security</a> </li> </ul> </li> </ul> </div> </div> </div> </li> <li class="menu-item standard has-children"> <a href="#" class="menu-link">Solutions</a> <div class="sub-menu-container"> <div class="menu-wrapper"> <ul class="submenu hide-mobile"> <span class="menu-title">SOLUTIONS</span> <li class="submenu-item active-menu item-parent submenu-outer" data-menu="build-systems"> <a href="#" class="submenu-link"> <div class="menu-image-container menu-link-container"> <span> <svg fill="currentColor" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"> <path fill-rule="evenodd" clip-rule="evenodd" d="M11.6221 1.60217C11.8556 1.46594 12.1444 1.46594 12.3779 1.60217L14.6279 2.91467C14.9857 3.12338 15.1065 3.58261 14.8978 3.9404C14.6891 4.29819 14.2299 4.41904 13.8721 4.21033L12 3.11828L10.1279 4.21033C9.77011 4.41904 9.31088 4.29819 9.10217 3.9404C8.89346 3.58261 9.01431 3.12338 9.3721 2.91467L11.6221 1.60217ZM5.89783 5.8096C6.10654 6.16739 5.98569 6.62662 5.6279 6.83533L4.48848 7.5L5.6279 8.16467C5.98569 8.37338 6.10654 8.83261 5.89783 9.1904C5.68912 9.54819 5.22989 9.66904 4.8721 9.46033L3.75 8.80578V9.75C3.75 10.1642 3.41421 10.5 3 10.5C2.58579 10.5 2.25 10.1642 2.25 9.75V7.5C2.25 7.23325 2.39168 6.98657 2.6221 6.85217L4.8721 5.53967C5.22989 5.33096 5.68912 5.45181 5.89783 5.8096ZM18.1022 5.8096C18.3109 5.45181 18.7701 5.33096 19.1279 5.53967L21.3779 6.85217C21.6083 6.98657 21.75 7.23325 21.75 7.5V9.75C21.75 10.1642 21.4142 10.5 21 10.5C20.5858 10.5 20.25 10.1642 20.25 9.75V8.80578L19.1279 9.46033C18.7701 9.66904 18.3109 9.5482 18.1022 9.1904C17.8935 8.83261 18.0143 8.37338 18.3721 8.16467L19.5115 7.5L18.3721 6.83533C18.0143 6.62662 17.8935 6.16739 18.1022 5.8096ZM9.10217 11.0596C9.31088 10.7018 9.77011 10.581 10.1279 10.7897L12 11.8817L13.8721 10.7897C14.2299 10.581 14.6891 10.7018 14.8978 11.0596C15.1065 11.4174 14.9857 11.8766 14.6279 12.0853L12.75 13.1808V15C12.75 15.4142 12.4142 15.75 12 15.75C11.5858 15.75 11.25 15.4142 11.25 15V13.1808L9.3721 12.0853C9.01431 11.8766 8.89346 11.4174 9.10217 11.0596ZM3 13.5C3.41421 13.5 3.75 13.8358 3.75 14.25V16.0692L5.6279 17.1647C5.98569 17.3734 6.10654 17.8326 5.89783 18.1904C5.68912 18.5482 5.22989 18.669 4.8721 18.4603L2.6221 17.1478C2.39168 17.0134 2.25 16.7668 2.25 16.5V14.25C2.25 13.8358 2.58579 13.5 3 13.5ZM21 13.5C21.4142 13.5 21.75 13.8358 21.75 14.25V16.5C21.75 16.7668 21.6083 17.0134 21.3779 17.1478L19.1279 18.4603C18.7701 18.669 18.3109 18.5482 18.1022 18.1904C17.8935 17.8326 18.0143 17.3734 18.3721 17.1647L20.25 16.0692V14.25C20.25 13.8358 20.5858 13.5 21 13.5ZM12 18.75C12.4142 18.75 12.75 19.0858 12.75 19.5V20.4442L13.8721 19.7897C14.2299 19.581 14.6891 19.7018 14.8978 20.0596C15.1065 20.4174 14.9857 20.8766 14.6279 21.0853L12.3779 22.3978C12.1444 22.5341 11.8556 22.5341 11.6221 22.3978L9.3721 21.0853C9.01431 20.8766 8.89346 20.4174 9.10217 20.0596C9.31088 19.7018 9.77011 19.581 10.1279 19.7897L11.25 20.4442V19.5C11.25 19.0858 11.5858 18.75 12 18.75Z" /> </svg> Build Systems </span> </div> </a> </li> <li class="submenu-item item-parent submenu-outer" data-menu="integrations"> <a href="#" class="submenu-link"> <div class="menu-image-container menu-link-container"> <span> <svg xmlns="http://www.w3.org/2000/svg" width="24px" height="24px" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" aria-hidden="true" class="size-6 group-hover:text-gradle-blue group-active:text-gradle-blue"><path stroke-linecap="round" stroke-linejoin="round" d="M8.25 3v1.5M4.5 8.25H3m18 0h-1.5M4.5 12H3m18 0h-1.5m-15 3.75H3m18 0h-1.5M8.25 19.5V21M12 3v1.5m0 15V21m3.75-18v1.5m0 15V21m-9-1.5h10.5a2.25 2.25 0 002.25-2.25V6.75a2.25 2.25 0 00-2.25-2.25H6.75A2.25 2.25 0 004.5 6.75v10.5a2.25 2.25 0 002.25 2.25zm.75-12h9v9h-9v-9z"></path></svg> Integrations </span> </div> </a> </li> </ul> <div class="submenu-inner"> <ul class="more-submenu no-title" data-menu="build-systems"> <li class="submenu-item"> <ul class="sub-menu-visible"> <li class="more-submenu-item hide-desktop"> <a href="#" class="more-submenu-link">Build System</a> </li> <li class="more-submenu-item"> <a href="/gradle-enterprise-solutions/gradle-build-tool/" class="more-submenu-link mega-menu-link">Gradle Build Tool</a> </li> <li class="more-submenu-item"> <a href="/gradle-enterprise-solutions/android-build-system/" class="more-submenu-link mega-menu-link">Android Studio</a> </li> <li class="more-submenu-item"> <a href="/gradle-enterprise-solutions/maven-build-tool/" class="more-submenu-link mega-menu-link">Apache Maven</a> </li> <li class="more-submenu-item"> <a href="/gradle-enterprise-solutions/bazel-build-system/" class="more-submenu-link mega-menu-link">Bazel</a> </li> <li class="more-submenu-item"> <a href="/gradle-enterprise-solutions/sbt-build-system/" class="more-submenu-link mega-menu-link">sbt</a> </li> </ul> </li> </ul> <ul class="more-submenu no-title" data-menu="integrations"> <li class="submenu-item"> <ul class="sub-menu-visible"> <li class="more-submenu-item hide-desktop"> <a href="#" class="more-submenu-link">Integrations</a> </li> <li class="more-submenu-item"> <a href="/gradle-enterprise-integrations/#other_ci" class="more-submenu-link mega-menu-link">CI Systems</a> </li> <li class="more-submenu-item"> <a href="/gradle-enterprise-integrations/#programming_lang" class="more-submenu-link mega-menu-link">Programming Languages</a> </li> <li class="more-submenu-item"> <a href="/gradle-enterprise-integrations/#ide_sections" class="more-submenu-link mega-menu-link">IDE</a> </li> <li class="more-submenu-item"> <a href="/gradle-enterprise-integrations/#test_frameworks" class="more-submenu-link mega-menu-link">Test Frameworks</a> </li> <li class="more-submenu-item"> <a href="/gradle-enterprise-integrations/#cloud_infrastructure" class="more-submenu-link mega-menu-link">Cloud Infrastructure</a> </li> </ul> </li> </ul> </div> </div> </div> </li> <li class="menu-item standard has-children"> <a href="#" class="menu-link">Resources</a> <div class="sub-menu-container"> <div class="menu-wrapper"> <ul class="submenu hide-mobile"> <span class="menu-title">RESOURCES</span> <li class="submenu-item active-menu item-parent submenu-outer" data-menu="resources"> <a href="#" class="submenu-link"> <div class="menu-image-container menu-link-container"> <span> <svg class="no-fill" xmlns="http://www.w3.org/2000/svg" width="24" fill="currentColor" height="24" viewBox="0 0 24 24"> <path d="M12 6.04168C10.4077 4.61656 8.30506 3.75 6 3.75C4.94809 3.75 3.93834 3.93046 3 4.26212V18.5121C3.93834 18.1805 4.94809 18 6 18C8.30506 18 10.4077 18.8666 12 20.2917M12 6.04168C13.5923 4.61656 15.6949 3.75 18 3.75C19.0519 3.75 20.0617 3.93046 21 4.26212V18.5121C20.0617 18.1805 19.0519 18 18 18C15.6949 18 13.5923 18.8666 12 20.2917M12 6.04168V20.2917" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" /> </svg> Resources </span> </div> </a> </li> <li class="submenu-item item-parent submenu-outer" data-menu="oss-projects"> <a href="#" class="submenu-link"> <div class="menu-image-container menu-link-container"> <span> <svg class="no-fill" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"> <path d="M3 13.125C3 12.5037 3.50368 12 4.125 12H6.375C6.99632 12 7.5 12.5037 7.5 13.125V19.875C7.5 20.4963 6.99632 21 6.375 21H4.125C3.50368 21 3 20.4963 3 19.875V13.125Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" /> <path d="M9.75 8.625C9.75 8.00368 10.2537 7.5 10.875 7.5H13.125C13.7463 7.5 14.25 8.00368 14.25 8.625V19.875C14.25 20.4963 13.7463 21 13.125 21H10.875C10.2537 21 9.75 20.4963 9.75 19.875V8.625Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" /> <path d="M16.5 4.125C16.5 3.50368 17.0037 3 17.625 3H19.875C20.4963 3 21 3.50368 21 4.125V19.875C21 20.4963 20.4963 21 19.875 21H17.625C17.0037 21 16.5 20.4963 16.5 19.875V4.125Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" /> </svg> OSS Projects </span> </div> </a> </li> <li class="submenu-item item-parent submenu-outer" data-menu="learning-center"> <a href="#" class="submenu-link"> <div class="menu-image-container menu-link-container"> <span> <svg class="no-fill" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"> <path d="M4.25933 10.1466C3.98688 12.2307 3.82139 14.3483 3.76853 16.494C6.66451 17.703 9.41893 19.1835 12 20.9036C14.5811 19.1835 17.3355 17.703 20.2315 16.494C20.1786 14.3484 20.0131 12.2307 19.7407 10.1467M4.25933 10.1466C3.38362 9.8523 2.49729 9.58107 1.60107 9.3337C4.84646 7.05887 8.32741 5.0972 12 3.49255C15.6727 5.0972 19.1536 7.05888 22.399 9.33371C21.5028 9.58109 20.6164 9.85233 19.7407 10.1467M4.25933 10.1466C6.94656 11.0499 9.5338 12.1709 12.0001 13.4886C14.4663 12.1709 17.0535 11.0499 19.7407 10.1467M6.75 15C7.16421 15 7.5 14.6642 7.5 14.25C7.5 13.8358 7.16421 13.5 6.75 13.5C6.33579 13.5 6 13.8358 6 14.25C6 14.6642 6.33579 15 6.75 15ZM6.75 15V11.3245C8.44147 10.2735 10.1936 9.31094 12 8.44329M4.99264 19.9926C6.16421 18.8211 6.75 17.2855 6.75 15.75V14.25" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" /> </svg> Learning Center </span> </div> </a> </li> </ul> <div class="submenu-inner"> <ul class="more-submenu no-title" data-menu="resources"> <li class="submenu-item"> <ul class="sub-menu-visible"> <li class="more-submenu-item hide-desktop"> <a href="#" class="more-submenu-link">Resources</a> </li> <li class="more-submenu-item"> <a href="/develocity/resources/" class="more-submenu-link mega-menu-link">Develocity Documentation</a> </li> <li class="more-submenu-item"> <a href="https://docs.gradle.com/develocity/api-manual/" class="more-submenu-link mega-menu-link">API Documentation</a> </li> <li class="more-submenu-item"> <a href="/gradle-dpe-newsletters/" class="more-submenu-link mega-menu-link">DPE Newsletter</a> </li> <li class="more-submenu-item"> <a href="/blog/" class="more-submenu-link mega-menu-link">Blog</a> </li> <li class="more-submenu-item"> <a href="/training/" class="more-submenu-link mega-menu-link">Events & Webinars</a> </li> <li class="more-submenu-item"> <a href="https://www.youtube.com/channel/UCvClhveoEjokKIuBAsSjEwQ" target="_blank" rel="noopener" class="more-submenu-link mega-menu-link">Youtube</a> </li> </ul> </li> </ul> <ul class="more-submenu no-title" data-menu="oss-projects"> <li class="submenu-item"> <ul class="sub-menu-visible"> <li class="more-submenu-item hide-desktop"> <a href="#" class="more-submenu-link">OSS Projects</a> </li> <li class="more-submenu-item"> <a href="https://ge.apache.org/scans?search.timeZoneId=America%2FNew_York" class="more-submenu-link mega-menu-link" target="_blank" rel="noopener">Apache Software Foundation</a> </li> <li class="more-submenu-item"> <a href="https://ge.spring.io/scans/performance?performance.metric=avoidanceSavings&search.relativeStartTime=P28D&search.rootProjectNames=spring-boot-build&search.tags=ci&search.timeZoneId=Europe/Zurich" class="more-submenu-link mega-menu-link" target="_blank" rel="noopener" > Spring </a> </li> <li class="more-submenu-item"> <a href="https://ge.jetbrains.com/scans?search.timeZoneId=America%2FNew_York" class="more-submenu-link mega-menu-link" target="_blank" rel="noopener">JetBrains Kotlin</a> </li> <li class="more-submenu-item"> <a href="https://ge.junit.org/scans/tests?search.relativeStartTime=P28D&search.tags=ci&search.timeZoneId=Europe/Zurich&tests.sortField=FLAKY&tests.unstableOnly=true" class="more-submenu-link mega-menu-link" target="_blank" rel="noopener" > JUnit </a> </li> <li class="more-submenu-item"> <a href="https://ge.apollographql.com/scans" class="more-submenu-link mega-menu-link">Apollo Kotlin</a> </li> <li class="more-submenu-item"> <a href="/customers/oss-projects/" class="more-submenu-link mega-menu-link">See all</a> </li> </ul> </li> </ul> <ul class="more-submenu no-title" data-menu="learning-center"> <li class="submenu-item"> <ul class="sub-menu-visible"> <li class="more-submenu-item hide-desktop"> <a href="#" class="more-submenu-link">Learning Center</a> </li> <li class="more-submenu-item hide-desktop"> <a href="https://dpeuniversity.gradle.com/app/" class="more-submenu-link no-highlight mega-menu-link">DPE University</a> </li> <li class="more-submenu-item hide-desktop"> <a href="/develocity/product-tour/home/" class="more-submenu-link no-highlight mega-menu-link">Product Tour</a> </li> <div class="blurb-outer hide-mobile"> <a href="https://dpeuniversity.gradle.com/app/" class="menu-blurb-container mega-menu-link"> <img src="/wp-content/uploads/2024/10/university-cover.jpg" class="blurb-cover" /> <div class="blurb-content"> <h3>DPE University</h3> <p>Start your journey to Developer Productivity Engineering mastery.</p> <p class="z-mega-menu-image-content-p-underline"> Get Started <span> <svg width="20px" height="20px" xmlns="http://www.w3.org/2000/svg" fill="currentColor" aria-hidden="true" class="-mb-0.5 size-6 group-hover:translate-x-1" view="0 0 20 20"> <path fill-rule="evenodd" clip-rule="evenodd" d="M3 10C3 9.58579 3.33579 9.25 3.75 9.25L14.3879 9.25L10.2302 5.29062C9.93159 5.00353 9.92228 4.52875 10.2094 4.23017C10.4965 3.93159 10.9713 3.92228 11.2698 4.20937L16.7698 9.45937C16.9169 9.60078 17 9.79599 17 10C17 10.204 16.9169 10.3992 16.7698 10.5406L11.2698 15.7906C10.9713 16.0777 10.4965 16.0684 10.2094 15.7698C9.92228 15.4713 9.93159 14.9965 10.2302 14.7094L14.3879 10.75L3.75 10.75C3.33579 10.75 3 10.4142 3 10Z" /> </svg> </span> </p> </div> </a> <a href="/develocity/product-tour/home/" class="menu-blurb-container mega-menu-link"> <img src="/wp-content/uploads/2024/10/tour-cover.jpg" class="blurb-cover" /> <div class="blurb-content"> <h3>Tour the Product</h3> <p>Explore interactive demos of Develocity features.</p> <p class="z-mega-menu-image-content-p-underline"> Learn More <span> <svg width="20px" height="20px" xmlns="http://www.w3.org/2000/svg" fill="currentColor" aria-hidden="true" class="-mb-0.5 size-6 group-hover:translate-x-1" view="0 0 20 20"> <path fill-rule="evenodd" clip-rule="evenodd" d="M3 10C3 9.58579 3.33579 9.25 3.75 9.25L14.3879 9.25L10.2302 5.29062C9.93159 5.00353 9.92228 4.52875 10.2094 4.23017C10.4965 3.93159 10.9713 3.92228 11.2698 4.20937L16.7698 9.45937C16.9169 9.60078 17 9.79599 17 10C17 10.204 16.9169 10.3992 16.7698 10.5406L11.2698 15.7906C10.9713 16.0777 10.4965 16.0684 10.2094 15.7698C9.92228 15.4713 9.93159 14.9965 10.2302 14.7094L14.3879 10.75L3.75 10.75C3.33579 10.75 3 10.4142 3 10Z" /> </svg> </span> </p> </div> </a> </div> </ul> </li> </ul> </div> </div> </div> </li> <li class="menu-item standard no-menu"> <a href="/pricing/" class="menu-link mega-menu-link">Pricing</a> </li> <li class="menu-item standard no-menu"> <a href="/customers/" class="menu-link mega-menu-link">Customers</a> </li> <li class="menu-item standard has-children"> <a href="#" class="menu-link">Company</a> <div class="sub-menu-container"> <div class="menu-wrapper"> <ul class="submenu hide-mobile"> <span class="menu-title">COMPANY</span> <li class="submenu-item active-menu item-parent submenu-outer" data-menu="our-story"> <a href="#" class="submenu-link"> <div class="menu-image-container menu-link-container"> <span> <svg class="no-fill" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"> <path d="M9 12.75L11.25 15L15 9.75M21 12C21 13.2683 20.3704 14.3895 19.4067 15.0682C19.6081 16.2294 19.2604 17.4672 18.3637 18.3639C17.467 19.2606 16.2292 19.6083 15.068 19.4069C14.3893 20.3705 13.2682 21 12 21C10.7319 21 9.61072 20.3705 8.93204 19.407C7.77066 19.6086 6.53256 19.261 5.6357 18.3641C4.73886 17.4673 4.39125 16.2292 4.59286 15.0678C3.62941 14.3891 3 13.2681 3 12C3 10.7319 3.62946 9.61077 4.59298 8.93208C4.39147 7.77079 4.7391 6.53284 5.63587 5.63607C6.53265 4.73929 7.77063 4.39166 8.93194 4.59319C9.61061 3.62955 10.7318 3 12 3C13.2682 3 14.3893 3.6295 15.068 4.59307C16.2294 4.39145 17.4674 4.73906 18.3643 5.6359C19.2611 6.53274 19.6087 7.77081 19.4071 8.93218C20.3706 9.61087 21 10.7319 21 12Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" /> </svg> Our Story </span> </div> </a> </li> <li class="submenu-item item-parent submenu-outer" data-menu="brand"> <a href="#" class="submenu-link"> <div class="menu-image-container menu-link-container"> <span> <svg class="no-fill" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"> <path d="M12 7.5H13.5M12 10.5H13.5M6 13.5H13.5M6 16.5H13.5M16.5 7.5H19.875C20.4963 7.5 21 8.00368 21 8.625V18C21 19.2426 19.9926 20.25 18.75 20.25M16.5 7.5V18C16.5 19.2426 17.5074 20.25 18.75 20.25M16.5 7.5V4.875C16.5 4.25368 15.9963 3.75 15.375 3.75H4.125C3.50368 3.75 3 4.25368 3 4.875V18C3 19.2426 4.00736 20.25 5.25 20.25H18.75M6 7.5H9V10.5H6V7.5Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" /> </svg> Brand </span> </div> </a> </li> <li class="submenu-item item-parent submenu-outer"> <a href="/press-media/" class="submenu-link mega-menu-link"> <div class="menu-image-container menu-link-container no-children"> <span> <svg class="no-fill" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"> <path d="M4.09835 19.9017C5.56282 21.3661 7.93719 21.3661 9.40165 19.9017L15.8033 13.5M6.75 21C4.67893 21 3 19.3211 3 17.25V4.125C3 3.50368 3.50368 3 4.125 3H9.375C9.99632 3 10.5 3.50368 10.5 4.125V8.1967M6.75 21C8.82107 21 10.5 19.3211 10.5 17.25V8.1967M6.75 21H19.875C20.4963 21 21 20.4963 21 19.875V14.625C21 14.0037 20.4963 13.5 19.875 13.5H15.8033M10.5 8.1967L13.3791 5.31757C13.8185 4.87823 14.5308 4.87823 14.9701 5.31757L18.6824 9.02988C19.1218 9.46922 19.1218 10.1815 18.6824 10.6209L15.8033 13.5M6.75 17.25H6.7575V17.2575H6.75V17.25Z" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" /> </svg> Press & Media Center </span> </div> </a> </li> </ul> <div class="submenu-inner"> <ul class="more-submenu no-title" data-menu="our-story"> <li class="submenu-item"> <ul class="sub-menu-visible"> <li class="more-submenu-item hide-desktop"> <a href="#" class="more-submenu-link">About Us</a> </li> <li class="more-submenu-item"> <a href="/our-story/" class="more-submenu-link mega-menu-link">Our Story</a> </li> <li class="more-submenu-item"> <a href="/who-we-are/" class="more-submenu-link mega-menu-link">Who We Are</a> </li> <li class="more-submenu-item"> <a href="/our-team/" class="more-submenu-link mega-menu-link">Our Team</a> </li> <li class="more-submenu-item"> <a href="/careers/" class="more-submenu-link mega-menu-link">Careers</a> </li> </ul> </li> </ul> <ul class="more-submenu no-title hide-desktop"> <li class="submenu-item"> <ul class="sub-menu-visible"> <li class="more-submenu-item hide-desktop with-link"> <a href="/press-media/" class="more-submenu-link mega-menu-link">Press & Media Center</a> </li> </ul> </li> </ul> <ul class="more-submenu no-title" data-menu="brand"> <li class="submenu-item"> <ul class="sub-menu-visible"> <li class="more-submenu-item hide-desktop"> <a href="#" class="more-submenu-link">Brand</a> </li> <li class="more-submenu-item"> <a href="/brand/" class="more-submenu-link mega-menu-link">Assets & Guidelines</a> </li> </ul> </li> </ul> </div> </div> </div> </li> <li class="menu-item cta no-menu"> <a class="gradient-btn-header mega-menu-link" href="/develocity/trial/"> Request a Trial </a> </li> </ul> </div> </div> </div> </header> <main role="main" class="site__main "> <section class="hero-2"> <div class="grid-container"> <div class="grid-x"> <div class="cell small-12 large-6"> <div style="display: table; height: 100%"> <div style="display: table-cell; vertical-align: middle"> <h4 class="hero-2__subtitle"><h4 class="hero-2__subtitle">Reduce Build & Test Times<br>Up to 90% Instantly with</h4><h1 class="hero-2__title">Build Cache & Test Distribution</h1></h4> <div class="hero-2__small-image-container"> <img class="hero-2__small-image" src="https://gradle.com/wp-content/uploads/2020/05/unblock-developers.svg" alt=""> </div> <div class="hero-2__content" style="padding-right: 30px"> <p><span style="font-weight: 400;">Develocity </span><span style="font-weight: 400;">build and test acceleration technologies address</span><span style="font-weight: 400;"> the pain of unnecessary developer idle time waiting for builds and tests to complete. This results in happier, more productive developers, and faster feedback cycles.</span></p> </div> </div> </div> </div> <div class="cell small-12 large-6"> <div class="hero-2__large-image-container" style="position: relative"> <iframe width="100%" src="https://www.youtube.com/embed/E8Go3krVsIg?start=0" style="border: none; top: 0; left: 0; width: 100%; height: 100%; border-radius: 15px; "></iframe> </div> </div> </div> </div> </section> <section class="primary-benefits" style="background-color: ; padding-top: 0px; padding-bottom: 0px;"> <div class="grid-container"> <h2 class="solutions-h1">Benefits of Faster Feedback Cycles </h2> <div class="primary-benefits__stretch"> <div class="grid-x grid-padding-x grid-margin-x"> <div class="cell small-12 medium-12"> </div> </div> </div> <div class="primary-benefits__stretch"> <div class="grid-x grid-padding-x grid-margin-x"> <div class="cell small-12 medium-4"> <div class="primary-benefits__wrapper"> <div class="primary-benefits__image-container"> <img class="primary-benefits__image" src="https://gradle.com/wp-content/uploads/2020/08/benefit-1@3x-1-1024x1024.png" alt=""> </div> <div class="primary-benefits__content"><p><b>Increased Developer Productivity</b><span style="font-weight: 400;"> </span></p> <p><span style="font-weight: 400;">Fast feedback cycles are important to productivity since developers spend less idle time waiting for builds to complete. There is also less impact to the creative process. This means that since builds complete quickly, developers are less tempted to pay the context-switching cost of starting and stopping other tasks and activities.</span></p> </div> </div> </div> <div class="cell small-12 medium-4"> <div class="primary-benefits__wrapper"> <div class="primary-benefits__image-container"> <img class="primary-benefits__image" src="https://gradle.com/wp-content/uploads/2020/08/benefit-2@3x-1-1024x1024.png" alt=""> </div> <div class="primary-benefits__content"><p><b>Less Difficulty Troubleshooting</b></p> <p><span style="font-weight: 400;">Faster feedback cycles will change developer behavior in other positive ways, including encouraging developers to run builds and tests more often rather than pushing quality checks to later stages of the development cycle. Building more often means developers spend less time debugging problems that occur from compounding changesets. Another benefit of smaller changesets is the lower likelihood of merge conflicts and stale feature branches and pull requests.</span></p> </div> </div> </div> <div class="cell small-12 medium-4"> <div class="primary-benefits__wrapper"> <div class="primary-benefits__image-container"> <img class="primary-benefits__image" src="https://gradle.com/wp-content/uploads/2020/08/benefit-3@3x-1-1024x1024.png" alt=""> </div> <div class="primary-benefits__content"><p><b>Higher Quality Software</b></p> <p><span style="font-weight: 400;">Building and testing more often is also safer because there is less chance of defects passing through quality gates, and companies aren’t tempted to cut corners like turning off tests and other safety measures in order to ship faster.</span></p> </div> </div> </div> </div> </div> <div class="primary-benefits__stretch"> <div class="grid-x grid-padding-x grid-margin-x"> <div class="cell small-12 medium-12"> <p> </p> <h2 class="giant-features__main-title">Key Solution Components include <a href="#build-cache">Build Cache</a>, <a href="#test-distribution">Test Distribution</a> and <a href="#performance-profiling">Performance Profiling</a></h2> </div> </div> </div> </div> </section> <section class="giant-features" style="background-color: #f3f5f4; padding-top: 60px; padding-bottom: 60px;"> <div class="grid-container"> <div class="giant-features__introduction-section"> <div class="grid-x"> <div class="cell small-12 medium-4"> <div class="giant-features__introduction-image-container"> <div style="display: table; height: 100%"> <div style="display: table-cell; vertical-align: middle"> <img class="lazy giant-features__introduction-image" src="https://gradle.com/wp-content/uploads/2020/08/build-cache@3x-1024x1024.png" alt="" > </div> </div> </div> </div> <div class="cell small-12 medium-8"> <div style="display: table; height: 100%"> <div style="display: table-cell; vertical-align: middle"> <h2 class="solutions-h1"><a name="build-cache" style="color: #000000">Build Cache</a></h2> <div class="giant-features__introduction-content"><p><span style="font-weight: 400;">Build Cache allows you to share and reuse unchanged build and test outputs across the team. This speeds up local and CI builds since cycles are not wasted re-building components that are unaffected by new code changes. Develocity Build Cache supports both Gradle and Maven build tool environments. To learn more about how Build Cache differs from binary repositories, <a href="/blog/comparing-the-roles-of-binary-repositories-build-caches-in-making-build-processes-more-efficient/"><b>click here</b></a>.</span></p> </div> </div> </div> </div> </div> </div> <div class="giant-features__introduction-section"> <div class="grid-x grid-padding-x"> <!-- COLUMN 1 --> <div class="cell small-12 medium-4"> </div> <!-- COLUMN 2 --> <div class="cell small-12 medium-8"> </div> </div> </div> </div> </section> <section class="full-width" style="background-color: #f3f5f4; padding-top: 0px; padding-bottom: 0px;"> <div class="grid-container"> <div class="grid-x"> <div class="cell"> <div class="full-width__content"><p><img decoding="async" class="aligncenter size-large wp-image-302" src="https://gradle.com/wp-content/uploads/2018/08/build-cache-topogical-diagram-1024x486.png" alt="" width="1024" height="486" srcset="https://gradle.com/wp-content/uploads/2018/08/build-cache-topogical-diagram-1024x486.png 1024w, https://gradle.com/wp-content/uploads/2018/08/build-cache-topogical-diagram-300x142.png 300w, https://gradle.com/wp-content/uploads/2018/08/build-cache-topogical-diagram-768x364.png 768w, https://gradle.com/wp-content/uploads/2018/08/build-cache-topogical-diagram.png 1914w" sizes="(max-width: 1024px) 100vw, 1024px" /></p> </div> </div> </div> </div> </section> <section class="giant-features" style="background-color: #f3f5f4; padding-top: 60px; padding-bottom: 60px;"> <div class="grid-container"> <div class="giant-features__features" style="background-color: #f3f5f4"> <div class="grid-x grid-padding-x"> <div class="cell small-12 medium-12"> <h2>Features</h2> </div> </div> <div class="grid-x grid-padding-x"> <div class="cell small-12 medium-4"> <div class="giant-features__three_columns"> <div class="giant-features__block-image-container"> <img class="lazy giant-features__block-image" src="https://gradle.com/wp-content/uploads/2020/08/out-of-box.svg"> </div> <div class="giant-features__content"> <p><strong>Easy to Use</strong></p> <p><span style="font-weight: 400;">Deploy, manage and operate with very little effort</span>.</p> </div> </div> </div> <div class="cell small-12 medium-4"> <div class="giant-features__three_columns"> <div class="giant-features__block-image-container"> <img class="lazy giant-features__block-image" src="https://gradle.com/wp-content/uploads/2020/08/multi-node.svg"> </div> <div class="giant-features__content"> <p><strong>Multi-zone Replication</strong></p> <p><span style="font-weight: 400;">Create replicating caches near your developers for faster access and faster builds.</span></p> </div> </div> </div> <div class="cell small-12 medium-4"> <div class="giant-features__three_columns"> <div class="giant-features__block-image-container"> <img class="lazy giant-features__block-image" src="https://gradle.com/wp-content/uploads/2020/08/audit.svg"> </div> <div class="giant-features__content"> <p><strong>Optimized Builds</strong></p> <p><span style="font-weight: 400;">Use in conjunction with Build Scan™ to make your build faster by making better use of the cache</span>.</p> </div> </div> </div> </div> </div> <div class="giant-features__introduction-section"> <div class="grid-x grid-padding-x"> <!-- COLUMN 1 --> <div class="cell small-12 medium-4"> </div> <!-- COLUMN 2 --> <div class="cell small-12 medium-8"> </div> </div> </div> <div class="giant-features__learn"> <h2 class="solutions-h1">Learn more</h2> <div class="giant-features__resources grid-x grid-padding-x"> <div class="cell small-12 medium-6"> <div class="giant-features__resouce"> <a href="http://tv.gradle.com/build-faster"> <img class="lazy giant-features__resource-icon" src="https://gradle.com/wp-content/uploads/2020/07/learn-more-video.svg" alt="" > </a> <a class="giant-features__resource-link" href="http://tv.gradle.com/build-faster">Video Playlist: Build Cache & Test Distribution for Faster Feedback Cycles</a> </div> </div> <div class="cell small-12 medium-6"> <div class="giant-features__resouce"> <a href="https://tv.gradle.com/maven-build-cache-demo"> <img class="lazy giant-features__resource-icon" src="https://gradle.com/wp-content/uploads/2020/07/learn-more-video.svg" alt="" > </a> <a class="giant-features__resource-link" href="https://tv.gradle.com/maven-build-cache-demo">Video: Maven Build Cache | Technology & Business Case Explained (17min)</a> </div> </div> </div> </div> </div> </section> <section class="giant-features" style="background-color: #ffffff; padding-top: 60px; padding-bottom: 60px;"> <div class="grid-container"> <div class="giant-features__introduction-section"> <div class="grid-x"> <div class="cell small-12 medium-4"> <div class="giant-features__introduction-image-container"> <div style="display: table; height: 100%"> <div style="display: table-cell; vertical-align: middle"> <img class="lazy giant-features__introduction-image" src="https://gradle.com/wp-content/uploads/2020/08/distributed-testing@3x-1024x1024.png" alt="" > </div> </div> </div> </div> <div class="cell small-12 medium-8"> <div style="display: table; height: 100%"> <div style="display: table-cell; vertical-align: middle"> <h2 class="solutions-h1"><a name="test-distribution" style="color: #000000">Test Distribution</a></h2> <div class="giant-features__introduction-content"><p>Often when developers say their builds are slow, they really mean their tests are slow or they believe their builds are fine, but their tests are slow. Either way test time is often the key driver of build times. There are many factors that contribute to test time including the growing number of integration and functional tests to cover a wide range of inputs, running tests sequentially, and dependencies on expensive external services.</p> <p>Test Distribution is an approach that accelerates test execution and complements build caching while addressing many of the limitations of single-machine parallelism and CI fanout. And it gets around limitations in the number of parallel forks dictated by a single machine’s CPU and memory resources. It does this by extending test parallelism by fanning out test execution to remote executors.</p> <p>The Develocity extension for the Maven & Gradle build tool coordinates partitioning of the test set and collection of results, while Develocity requests and caches test inputs, executes tests, and reports results back to the build tool for storage, all that with a low overhead that allows for fine-grained distribution.</p> <div class="callout"> <p><b><a name="limitations"></a>Limitations of Existing Test Acceleration Techniques</b></p> <ul> <li style="font-weight: 400;"><b>Build Caching </b><span style="font-weight: 400;">is great in many cases but doesn’t help when test inputs have changed.</span></li> <li style="font-weight: 400;"><b>Single machine parallelism</b><span style="font-weight: 400;"> is limited by that machine’s resources.</span></li> <li><b>CI fanout</b> does not help during local development, is inefficient (in particular on ephemeral CI agents or without build cache), requires manual setup and test partitioning, and causes <span style="font-weight: 400;">disjoint test reporting.</span></li> </ul> </div> </div> </div> </div> </div> </div> </div> <div class="giant-features__features" style="background-color: "> <div class="grid-x grid-padding-x"> <div class="cell small-12 medium-12"> <h2>Features</h2> </div> </div> <div class="grid-x grid-padding-x"> <div class="cell small-12 medium-4"> <div class="giant-features__three_columns"> <div class="giant-features__block-image-container"> <img class="lazy giant-features__block-image" src="https://gradle.com/wp-content/uploads/2020/08/parallelism.svg"> </div> <div class="giant-features__content"> <p><span style="font-weight: 400;">Uses single-machine parallelism when no agents are available or in combination with remote agents (ensures test distribution will never be slower)</span></p> </div> </div> </div> <div class="cell small-12 medium-4"> <div class="giant-features__three_columns"> <div class="giant-features__block-image-container"> <img class="lazy giant-features__block-image" src="https://gradle.com/wp-content/uploads/2020/08/simple-configuration.svg"> </div> <div class="giant-features__content"> <p><span style="font-weight: 400;">Requires a simple change to the build configuration to enable</span></p> </div> </div> </div> <div class="cell small-12 medium-4"> <div class="giant-features__three_columns"> <div class="giant-features__block-image-container"> <img class="lazy giant-features__block-image" src="https://gradle.com/wp-content/uploads/2020/08/partition-test-sets.svg"> </div> <div class="giant-features__content"> <p><span style="font-weight: 400;">Partitions test sets automatically</span></p> </div> </div> </div> <div class="cell small-12 medium-4"> <div class="giant-features__three_columns"> <div class="giant-features__block-image-container"> <img class="lazy giant-features__block-image" src="https://gradle.com/wp-content/uploads/2020/08/local-and-ci-builds.svg"> </div> <div class="giant-features__content"> <p><span style="font-weight: 400;">Works for local and CI builds</span></p> </div> </div> </div> <div class="cell small-12 medium-4"> <div class="giant-features__three_columns"> <div class="giant-features__block-image-container"> <img class="lazy giant-features__block-image" src="https://gradle.com/wp-content/uploads/2020/08/shows-results.svg"> </div> <div class="giant-features__content"> <p><span style="font-weight: 400;">Shows the results of all tests via test reports and Build Scan™</span></p> </div> </div> </div> <div class="cell small-12 medium-4"> <div class="giant-features__three_columns"> <div class="giant-features__block-image-container"> <img class="lazy giant-features__block-image" src="https://gradle.com/wp-content/uploads/2020/08/agent-info-in-build-scans.svg"> </div> <div class="giant-features__content"> <p><span style="font-weight: 400;">Makes Information about used agents available in the Build Scan™</span></p> </div> </div> </div> <div class="cell small-12 medium-4"> <div class="giant-features__three_columns"> <div class="giant-features__block-image-container"> <img class="lazy giant-features__block-image" src="https://gradle.com/wp-content/uploads/2020/08/transfers-outputs.svg"> </div> <div class="giant-features__content"> <p><span style="font-weight: 400;">Transfers and merges outputs back to the build automatically (e.g. JaCoCo)</span></p> </div> </div> </div> <div class="cell small-12 medium-4"> <div class="giant-features__three_columns"> <div class="giant-features__block-image-container"> <img class="lazy giant-features__block-image" src="https://gradle.com/wp-content/uploads/2020/08/run-subsets-of-tests.svg"> </div> <div class="giant-features__content"> <p><span style="font-weight: 400;">Allows running a subset of tests on specific agents based on requirements specified in the build configuration (e.g. certain tests should only run on agents with a specific OS)</span></p> </div> </div> </div> <div class="cell small-12 medium-4"> <div class="giant-features__three_columns"> <div class="giant-features__block-image-container"> <img class="lazy giant-features__block-image" src="https://gradle.com/wp-content/uploads/2020/08/on-premises.svg"> </div> <div class="giant-features__content"> <p><span style="font-weight: 400;">Runs on-premise inside your own network infrastructure</span></p> </div> </div> </div> </div> </div> <div class="giant-features__introduction-section"> <div class="grid-x grid-padding-x"> <div class="cell small-12 medium-12"> <h2 class="giant-features__learn-title">Results</h2> </div> </div> <div class="grid-x grid-padding-x"> <!-- COLUMN 1 --> <div class="cell small-12 medium-4"> <p>Here is actual test time savings experienced by Develocity Test Distribution customers and how that translates directly into hard annual savings in terms of developer years and cost.</p> </div> <!-- COLUMN 2 --> <div class="cell small-12 medium-8"> <p><img decoding="async" class="aligncenter size-large wp-image-3090" src="https://gradle.com/wp-content/uploads/2021/08/TD-Trial-Results-1024x516.png" alt="" width="1024" height="516" srcset="https://gradle.com/wp-content/uploads/2021/08/TD-Trial-Results-1024x516.png 1024w, https://gradle.com/wp-content/uploads/2021/08/TD-Trial-Results-300x151.png 300w, https://gradle.com/wp-content/uploads/2021/08/TD-Trial-Results-768x387.png 768w, https://gradle.com/wp-content/uploads/2021/08/TD-Trial-Results-1536x773.png 1536w, https://gradle.com/wp-content/uploads/2021/08/TD-Trial-Results-2048x1031.png 2048w" sizes="(max-width: 1024px) 100vw, 1024px" /></p> </div> </div> </div> <div class="giant-features__learn"> <h2 class="solutions-h1">Learn more</h2> <div class="giant-features__resources grid-x grid-padding-x"> <div class="cell small-12 medium-6"> <div class="giant-features__resouce"> <a href="http://tv.gradle.com/intro-distributed-testing"> <img class="lazy giant-features__resource-icon" src="https://gradle.com/wp-content/uploads/2020/07/learn-more-video.svg" alt="" > </a> <a class="giant-features__resource-link" href="http://tv.gradle.com/intro-distributed-testing">Video: Using Test Distribution for the Apache Cassandra Project (4min)</a> </div> </div> <div class="cell small-12 medium-6"> <div class="giant-features__resouce"> <a href="https://youtu.be/rkXzZR60NVo"> <img class="lazy giant-features__resource-icon" src="https://gradle.com/wp-content/uploads/2020/07/learn-more-video.svg" alt="" > </a> <a class="giant-features__resource-link" href="https://youtu.be/rkXzZR60NVo">On-Demand Webcast: Introduction to Test Distribution Webcast (90m)</a> </div> </div> </div> </div> </div> </section> <section class="giant-features" style="background-color: #f3f5f4; padding-top: 60px; padding-bottom: 60px;"> <div class="grid-container"> <div class="giant-features__introduction-section"> <div class="grid-x"> <div class="cell small-12 medium-4"> <div class="giant-features__introduction-image-container"> <div style="display: table; height: 100%"> <div style="display: table-cell; vertical-align: middle"> <img class="lazy giant-features__introduction-image" src="https://gradle.com/wp-content/uploads/2020/08/performance-profiling@3x-1024x1024.png" alt="" > </div> </div> </div> </div> <div class="cell small-12 medium-8"> <div style="display: table; height: 100%"> <div style="display: table-cell; vertical-align: middle"> <h2 class="solutions-h1"><a name="performance-profiling" style="color: #000000">Performance Profiling</a></h2> <div class="giant-features__introduction-content"><p><span style="font-weight: 400;">Performance Profiling is the analytics capability associated with the Develocity Build Cache and Test Distribution solutions. It sets up easily and scales to the largest builds on the planet.</span></p> <p><span style="font-weight: 400;"> It leverages </span><a href="/gradle-enterprise-solution-overview/build-scan-root-cause-analysis-data/" target="_blank" rel="noopener"><b>Build Scan™</b></a><span style="font-weight: 400;"> and the </span><b>Build & Test Performance Trends </b><span style="font-weight: 400;">dashboard</span><span style="font-weight: 400;"> to give build engineers the insights to continually audit and tune build and cache performance. </span></p> <p><span style="font-weight: 400;">For example, the </span><span style="font-weight: 400;">Build & Test Performance Trends</span><span style="font-weight: 400;"> dashboard allows you to filter for and discover builds with specific performance characteristics or anomalies like builds with slow dependency download times, bad parallelism or low cache effectiveness. The associated Build Scan™ then allows you to determine the root cause of these anomalies. For example, the Build Scan™ can help you determine whether a high dependency download time is caused by a network bandwidth constraint or a high level of data traffic.</span></p> </div> </div> </div> </div> </div> </div> <div class="giant-features__example-image"> <h2 class="giant-features__example-image-title"></h2> <div class="giant-features__example-image-image-wrapper"> <img class="lazy giant-features__example-image-image" src="https://gradle.com/wp-content/uploads/2020/08/performance-ui.png" alt="Develocity screenshots of performance dashboards used to identify slow Java and Android builds and unlock ways to speed them up." > </div> <p class="giant-features__example-image-description">Use the Trends Dasbhoard to observe when your Maven or Gradle build times are regressing and the Performance Dashboard to understand why.</p> </div> <div class="giant-features__introduction-section"> <div class="grid-x grid-padding-x"> <!-- COLUMN 1 --> <div class="cell small-12 medium-4"> </div> <!-- COLUMN 2 --> <div class="cell small-12 medium-8"> </div> </div> </div> <div class="giant-features__learn"> <h2 class="solutions-h1">Learn more</h2> <div class="giant-features__resources grid-x grid-padding-x"> <div class="cell small-12 medium-6"> <div class="giant-features__resouce"> <a href="http://tv.gradle.com/intro-performance-profiling"> <img class="lazy giant-features__resource-icon" src="https://gradle.com/wp-content/uploads/2020/07/learn-more-video.svg" alt="" > </a> <a class="giant-features__resource-link" href="http://tv.gradle.com/intro-performance-profiling">Video: Analyzing Build Cache Efficiency for Gradle and Spring Boot Using Performance Profiling (4min)</a> </div> </div> </div> </div> </div> </section> <section class="get-started-section" style="background-image: url(https://gradle.com/wp-content/uploads/2020/05/cta-artwork@4x-1.png)"> <img class="lazy get-started-section__image" data-src="https://gradle.com/wp-content/uploads/2020/05/cta-center@4x.png" alt=""> <h2 class="get-started-section__title">Get started today</h2> <div class="get-started-section__content">Request a 30-day free trial of Develocity.</div> <a class="button button--blue" href="/enterprise/trial/">Free 30-day trial</a> </section> </main> <footer class="site__footer"> <div class="footer-top"> <div class="footer-row"> <div class="footer-row__item menu-item menu-item-type-custom menu-item-object-custom menu-item-32 menu-item-has-children"> <h3 class="footer-top__menu-title"> <span>Community</span></h3> <div class="footer-subnav"> <ul class="footer-subnav__container"> <li class="footer-subnav__item"> <a class="footer-subnav__link" href="https://twitter.com/gradle"> Twitter </a> </li> <li class="footer-subnav__item"> <a class="footer-subnav__link" href="/blog/"> Blog </a> </li> <li class="footer-subnav__item"> <a class="footer-subnav__link" href="https://www.linkedin.com/company/gradle/"> LinkedIn </a> </li> <li class="footer-subnav__item"> <a class="footer-subnav__link" href="https://www.youtube.com/channel/UCvClhveoEjokKIuBAsSjEwQ"> YouTube </a> </li> <li class="footer-subnav__item"> <a class="footer-subnav__link" href="/gradle-dpe-newsletters/"> Newsletters </a> </li> <li class="footer-subnav__item"> <a class="footer-subnav__link" href="https://gradle.org/"> Gradle.org </a> </li> </ul> </div> </div> <div class="footer-row__item menu-item menu-item-type-custom menu-item-object-custom menu-item-3282 menu-item-has-children"> <h3 class="footer-top__menu-title"> <span>Get Started Now</span></h3> <div class="footer-subnav"> <ul class="footer-subnav__container"> <li class="footer-subnav__item"> <a class="footer-subnav__link" href="/gradle-enterprise-solutions/"> Solutions Overview </a> </li> <li class="footer-subnav__item"> <a class="footer-subnav__link" href="https://www.youtube.com/embed/4ARx80ns6XI"> Develocity Demo (Video) </a> </li> <li class="footer-subnav__item"> <a class="footer-subnav__link" href="/enterprise/trial/"> Start a Free Trial </a> </li> <li class="footer-subnav__item"> <a class="footer-subnav__link" href="/develocity/contact/"> Contact </a> </li> </ul> </div> </div> <div class="footer-row__item menu-item menu-item-type-post_type menu-item-object-page menu-item-56 menu-item-has-children"> <h3 class="footer-top__menu-title"> <span>About</span></h3> <div class="footer-subnav"> <ul class="footer-subnav__container"> <li class="footer-subnav__item"> <a class="footer-subnav__link" href="/who-we-are/"> Who We Are </a> </li> <li class="footer-subnav__item"> <a class="footer-subnav__link" href="/our-story/"> Our Story </a> </li> <li class="footer-subnav__item"> <a class="footer-subnav__link" href="/careers/"> Working at Gradle </a> </li> <li class="footer-subnav__item"> <a class="footer-subnav__link" href="/our-team/"> Our Team </a> </li> <li class="footer-subnav__item"> <a class="footer-subnav__link" href="/press-media/"> Press & Media Center </a> </li> <li class="footer-subnav__item"> <a class="footer-subnav__link" href="/brand/"> Brand </a> </li> </ul> </div> </div> <div class="footer-row__item section--page-footer__item section--page-footer__newsletter"> <!-- <div class="section--page-footer__item__title section--page-footer__item__title disclaimer"> <strong>Subscribe for news and important updates about Gradle.</strong> By entering your email, you agree to our <a href="/legal/terms-of-service">Terms</a> and <a href="/legal/privacy">Privacy Policy</a>, including receipt of emails. You can unsubscribe at any time. </div> <iframe id="newsletter-form-frame" src="https://go.gradle.com/l/68052/2018-10-17/bl6sbs" style="display: block; width: 100%; border: 0; max-height: 133px;"></iframe> <div class="section--page-footer__item__title disclaimer"></div> --> </div> </div> </div> <div class="grid-container footer__container"> <div class="grid-x grid-margin-x align-middle"> <div class="cell small-shrink medium-4 footer__copy"> © Gradle Inc. 2024 </div> <div class="cell small-12 medium-3 large-4 site-footer__logo-container"> <img class="lazy site-footer__logo" src="https://gradle.com/wp-content/uploads/2020/05/gradle-elephant-icon-gradient-primary.svg" alt="" width=90 height=66> </div> <div class="cell small-auto medium-5 large-4 site-footer__links"> <div class=""> <a href="/legal/privacy/">Privacy Policy</a> | <a href="/legal/terms-of-use/">Terms</a> | <a href="https://status.gradle.com/">Status</a> </div> </div> </div> </div> <div id="cookie-banner" class="cookie-banner"> <div class="cookie-inner"> <p>We'd like to collect non-essential cookies for analytics and marketing which involves cookies managed by third parties. You can read more about how we use cookies in our <a class="underline" href="/legal/privacy/">Privacy Policy</a>. By clicking “Accept,” below you agree to our website's cookie use as described in our Privacy Policy and our collection of non-essential cookies. </p> <div class="button-cookie-container"> <button id="reject-cookies" class="basic__buton button--blue reject-cookies">Reject</button> <button id="close-banner" class="close-banner basic__button button--blue">Accept</button> </div> </div> </div> </footer> <script type="text/javascript" src="https://gradle.com/wp-content/plugins/svg-support/vendor/DOMPurify/DOMPurify.min.js?ver=1.0.1" id="bodhi-dompurify-library-js"></script> <script type="text/javascript" src="https://gradle.com/wp-includes/js/comment-reply.min.js?ver=6.6.1" id="comment-reply-js" async="async" data-wp-strategy="async"></script> <script type="text/javascript" src="https://gradle.com/wp-content/themes/fuel/assets/build/blog.19fea6acad0b398708fb.js?ver=6.6.1" id="blog-js"></script> <script type="text/javascript" src="https://gradle.com/wp-content/themes/fuel/assets/build/main.19fea6acad0b398708fb.js?ver=3.0.0" id="main-js-js"></script> <script type="text/javascript" src="https://gradle.com/wp-content/themes/fuel/assets/build/abm.19fea6acad0b398708fb.js?ver=3.0.0" id="abm-js-js"></script> <script type="text/javascript" src="//cdn.jsdelivr.net/npm/slick-carousel@1.8.1/slick/slick.min.js" id="slick-js"></script> <script type="text/javascript" src="https://gradle.com/wp-content/themes/fuel/assets/build/homeCarousel.19fea6acad0b398708fb.js" id="homeCarousel-js"></script> <script type="text/javascript" src="https://gradle.com/wp-content/themes/fuel/src/js/home-customer-carousel.js" id="homeCustomerCarousel-js"></script> <script type="text/javascript" id="megamenu-js-extra"> /* <![CDATA[ */ var megamenu = {"timeout":"300","interval":"100"}; /* ]]> */ </script> <script type="text/javascript" src="https://gradle.com/wp-content/plugins/megamenu/js/maxmegamenu.js" id="megamenu-js"></script> <script type="text/javascript" src="https://gradle.com/wp-content/themes/fuel/assets/js/sticky-utm.js?ver=10.0.0" id="sticky-utm-js"></script> <script type="text/javascript" src="https://gradle.com/wp-content/themes/fuel/assets/js/ScrollMagic.min.js?ver=1.0.0" id="scrollmagic-js-js"></script> <script type="text/javascript" src="https://gradle.com/wp-content/themes/fuel/assets/js/global.js?ver=2.9.0" id="global-js-js"></script> <script type="text/javascript" src="https://gradle.com/wp-content/themes/fuel/assets/js/cookiebanner.js?ver=1732369917" id="cookiebanner-js-js"></script> <script type="text/javascript" src="https://gradle.com/wp-content/themes/fuel/assets/js/iframeResizer.min.js" id="resizer-js"></script> <script type="text/javascript" src="https://gradle.com/wp-content/themes/fuel/assets/js/announcement-banner-cookie.js?ver=1732369917" id="announcement-banner-cookie-js"></script> <script type="text/javascript" src="https://gradle.com/wp-content/themes/fuel/assets/js/updated-menu.js?ver=2.0.0" id="updated-menu-js-js"></script> <script type="text/javascript" src="https://gradle.com/wp-content/plugins/enlighter/cache/enlighterjs.min.js?ver=0A0B0C" id="enlighterjs-js"></script> <script type="text/javascript" id="enlighterjs-js-after"> /* <![CDATA[ */ !function(e,n){if("undefined"!=typeof EnlighterJS){var o={"selectors":{"block":"pre.EnlighterJSRAW","inline":"code.EnlighterJSRAW"},"options":{"indent":4,"ampersandCleanup":true,"linehover":true,"rawcodeDbclick":false,"textOverflow":"break","linenumbers":true,"theme":"enlighter","language":"generic","retainCssClasses":false,"collapse":false,"toolbarOuter":"","toolbarTop":"{BTN_RAW}{BTN_COPY}{BTN_WINDOW}{BTN_WEBSITE}","toolbarBottom":""}};(e.EnlighterJSINIT=function(){EnlighterJS.init(o.selectors.block,o.selectors.inline,o.options)})()}else{(n&&(n.error||n.log)||function(){})("Error: EnlighterJS resources not loaded yet!")}}(window,console); /* ]]> */ </script> <!-- TC Custom JavaScript --><script type="text/javascript">var acc = document.getElementsByClassName("accordion"); var i; for (i = 0; i < acc.length; i++) { acc[i].addEventListener("click", function() { /* Toggle between adding and removing the "active" class, to highlight the button that controls the panel */ this.classList.toggle("active"); /* Toggle between hiding and showing the active panel */ var panel = document.getElementById(this.id + "_panel"); if (panel.style.display === "block") { panel.style.display = "none"; } else { panel.style.display = "block"; } }); } jQuery( document ).ready(function() { jQuery('policy-text').html('This website uses cookies and other technology to provide you a more personalized experience. <a href="/legal/privacy/">Learn More</a>.'); }); window.addEventListener("message", function (event) { if (event.origin === "https://go.gradle.com") { console.log(event.data); // Log the received event.data var iframes = document.getElementsByClassName("resize-iframe"); for (var i = 0; i < iframes.length; i++) { iframes[i].height = event.data + "px"; } } }); </script> </body> </html>