Automated Detection and Reporting of Build Cache Misses
We will show how the continuous detection and reporting of build cache misses can be automated in CI via build validation scripts and how the surfaced build cache misses can be investigated via comparison of build scans. In addition, we will demonstrate how the automated execution of build caching experiments allow for a fair interpretation of build trends, taking into account project growth and changes in the cacheability of tasks and goals in the build.
Codebase Growth and the Developer Productivity Impact
Valuable codebases grow over time. But beneath the relentless addition of shiny new features is the inevitable counterpart: growth in time required to build and test the code. Left unchecked, build and test growth can easily become a developer productivity hazard, impacting delivery velocity, innovation, and developer happiness.
Join us as we explore the techniques that enabled the Jamf team to make 23% improvement year-over-year in build & test times for our flagship product (a million+ LOC monorepo), while supporting 10-15% growth across all other measures in the codebase. See how we measure the ROI on productivity engineering, making the case for continued investment. Topics include remote build cache, Predictive Test Selection, and Test Distribution, the impact of each and a discussion of problems and solutions along the way.
Unlocking Build Analytics: iFood’s Journey with the Gradle Enterprise API
The Gradle Enterprise dashboards are great, but have you ever wished for a metric or graph that isn’t supported yet, like the median duration of a particular task? The REST API is a powerful tool for custom analysis of your build data.
We built ‘gradle-enterprise-api-kotlin’ to use the API in new ways, from Kotlin scripts to Jupyter notebooks. In this talk, we’ll explore iFood’s results combining the API and the library. For example, the API allows us to build weekly reports on flaky tests and their impact, encouraging teams to fix them. It allows us to track a specific task’s duration, such as KotlinCompile, to watch for regressions when rolling out new GC settings. Interactively, inside Jupyter notebooks, we can quickly sift through build scans and create any custom graph to explore a hypothesis or investigate a regression.
Join us to learn how you can use the API to unlock the full potential of your Gradle Enterprise data!