In this episode of DPE Showdown we discuss CI quality of service topics with centralized CI teams from Netflix, Slack, Uber, and Gradle. Learn from our panelists who have experience with CI as a service for large numbers of developers across many different platforms and projects.
Get hands-on training on how to tackle build performance issues with the Maven build cache. Topics include build cache basics, task...
Read more
Get hands-on training on how to tackle build performance issues with the Maven build cache. Description In this training, you will learn the basics and best practices to make the most of caching in your build. We’ll discuss the different possible architectures, how they affect build performance, and how Gradle Enterprise can help you manage, analyze, and troubleshoot the build cache. Duration 2.5 hours training session followed by 30-minutes Q&A. Audience Maven build tool users, as well as Gradle Enterprise users interested in speeding up builds, are encouraged to attend the training. Prerequisites This course assumes a good understanding of the Java language and working knowledge of Maven. Objectives After this training the participants will be able to: Understand the benefits of using the Maven build cache Use and configure the build cache Optimize build logic for maximum cacheability Maximize the benefits of the build cache with Gradle Enterprise Course Outline Overview Introduction Performance is key Approaches for work avoidance Common use cases Faster Maven builds on CI Visualized savings in Gradle Enterprise What is the build cache? How does it work? Different types of build caches Local build cache Remote build cache Recommended sharing strategy Influencing factors Using the build cache Enabling the cache Adding the Maven extension Generating a build scan Adding the Gradle Enterprise server URL What’s going on under the hood? Configuring the local build cache Lab: Using the local build cache Referencing the Gradle Enterprise credentials Configuring the credentials Enabling the cache on CI Computing the build cache key Build cache operations Lab: Using the remote build cache What makes a build “cacheable”? Cacheability influencing factors Cacheable plugins and goals Customization of caching behavior Configuring the Maven extension Declaring inputs and outputs Disabling cacheability Lab: Equipping goals with caching capabilities Troubleshooting the build cache misses Possible approaches Debug log level console information Finding cause of cache misses Using build scans Requirements for cacheable goals Repeatable goal outputs Stable goal outputs Path sensitivity Input normalization Handling cases affecting cache correctness Overlapping outputs External inputs like system properties File encoding Line endings Symlinks Java versions Lab: Handling cache misses Getting started with the build cache Recommended approach Installing the remote build cache Connecting to Gradle Enterprise Wrap up Documentation and resources Try Gradle Enterprise for free
Introduction to Gradle Build Tool is aimed at developers and build engineers who have no previous experience with Gradle Build Tool....
Read more
Description Introduction to Gradle Build Tool is aimed at developers and build engineers who have no previous experience with Gradle Build Tool. It is designed to give you a foundation in Gradle fundamentals. We assume you have some familiarity with software development. Our goal is to demonstrate the building blocks necessary for you to manage your own Gradle build projects. This class is hands-on, so you will spend a significant portion of the class with your hands on the keyboard, learning by doing, working through lab exercises. By the end of this class, you will know the basics of Gradle and have a feel for how Gradle tasks and builds work. Duration 4 hours training session Audience This class is designed for developers and build engineers who want to learn about Gradle. Prerequisites No prior experience with Gradle Build Tool is required. Install the latest version of Gradle Build Tool along with at least Java 1.8 Recommended: IntelliJ community edition Some experience with software development Training materials use some Java and Kotlin, experience with these or similar languages is a bonus but not required Objectives Learn core Gradle concepts and terminology Get practical experience with hands-on exercises Course Outline About Gradle Build Tool Build automation concepts Gradle Build Tool core concepts Gradle community Core concepts Build configuration Overview of Gradle configuration layout Creating configuration using Gradle init Opening in IDE Gradle wrapper Hands-on exercise 1 Build lifecycle The 3 lifecycle phases Plugins Plugin types Java plugins example SourceSets Tasks Task categories Inputs and outputs Dependency and ordering Task outcomes Authoring custom tasks Supporting command-line parameters Task configuration reading Custom actions in doFirst and doLast Build Scan service Hands-on exercise 2 Dependency management Types of dependencies Repository Modules Configuration of dependencies Transitive dependencies Module versioning Dynamic and changing versions Conflict resolution Documenting dependencies Hands-on exercise 3 Publishing Multi-project builds Structure Adding subprojects Sharing common configuration using buildSrc Legacy allprojects and subprojects Hands-on exercise 4
Introduction to Gradle Build Tool is aimed at developers and build engineers who have no previous experience with Gradle Build Tool....
Read more
Description Introduction to Gradle Build Tool is aimed at developers and build engineers who have no previous experience with Gradle Build Tool. It is designed to give you a foundation in Gradle fundamentals. We assume you have some familiarity with software development. Our goal is to demonstrate the building blocks necessary for you to manage your own Gradle build projects. This class is hands-on, so you will spend a significant portion of the class with your hands on the keyboard, learning by doing, working through lab exercises. By the end of this class, you will know the basics of Gradle and have a feel for how Gradle tasks and builds work. Duration 4 hours training session Audience This class is designed for developers and build engineers who want to learn about Gradle. Prerequisites No prior experience with Gradle Build Tool is required. Install the latest version of Gradle Build Tool along with at least Java 1.8 Recommended: IntelliJ community edition Some experience with software development Training materials use some Java and Kotlin, experience with these or similar languages is a bonus but not required Objectives Learn core Gradle concepts and terminology Get practical experience with hands-on exercises Course Outline About Gradle Build Tool Build automation concepts Gradle Build Tool core concepts Gradle community Core concepts Build configuration Overview of Gradle configuration layout Creating configuration using Gradle init Opening in IDE Gradle wrapper Hands-on exercise 1 Build lifecycle The 3 lifecycle phases Plugins Plugin types Java plugins example SourceSets Tasks Task categories Inputs and outputs Dependency and ordering Task outcomes Authoring custom tasks Supporting command-line parameters Task configuration reading Custom actions in doFirst and doLast Build Scan service Hands-on exercise 2 Dependency management Types of dependencies Repository Modules Configuration of dependencies Transitive dependencies Module versioning Dynamic and changing versions Conflict resolution Documenting dependencies Hands-on exercise 3 Publishing Multi-project builds Structure Adding subprojects Sharing common configuration using buildSrc Legacy allprojects and subprojects Hands-on exercise 4
Engineers want to focus on developing features for their Android app and not let build logic get in the way. In this training we will...
Read more
Description Engineers want to focus on developing features for their Android app and not let build logic get in the way. In this training we will examine how to organize an Android app that has multiple modules. Along the way we will cover best practices and understand how to modularize your application as well as the build logic for long term success. By the end of the training you will gain familiarity with how Android projects use Gradle Build Tool for managing build logic and become more comfortable working with build logic for both personal and professional Android projects. Duration 3 hours training session Audience This class is designed for developers and build engineers who want to get familiar with build logic for Android projects. Prerequisites Recent version of Android Studio installed https://developer.android.com/studio Some experience creating Android apps Understanding of core Gradle build concepts Kotlin experience is a plus but not required Objectives Get familiar with build logic for Android projects Be comfortable with creating or modifying build logic for existing projects Learn how to modularize Android projects and build logic for long term success Course Outline Overview of sample Android app Creating app with build best practices Using Kotlin for build logic Centrally define dependencies using the version catalog Modularizing your project and build logic Having shared common build logic via convention plugins Next Steps
Engineers want to focus on developing features for their Android app and not let build logic get in the way. In this training we will...
Read more
Description Engineers want to focus on developing features for their Android app and not let build logic get in the way. In this training we will examine how to organize an Android app that has multiple modules. Along the way we will cover best practices and understand how to modularize your application as well as the build logic for long term success. By the end of the training you will gain familiarity with how Android projects use Gradle Build Tool for managing build logic and become more comfortable working with build logic for both personal and professional Android projects. Duration 3 hours training session Audience This class is designed for developers and build engineers who want to get familiar with build logic for Android projects. Prerequisites Recent version of Android Studio installed https://developer.android.com/studio Some experience creating Android apps Understanding of core Gradle build concepts Kotlin experience is a plus but not required Objectives Get familiar with build logic for Android projects Be comfortable with creating or modifying build logic for existing projects Learn how to modularize Android projects and build logic for long term success Course Outline Overview of sample Android app Creating app with build best practices Using Kotlin for build logic Centrally define dependencies using the version catalog Modularizing your project and build logic Having shared common build logic via convention plugins Next Steps
The objective of this training is to teach individual developers how they can use Gradle Enterprise to help identify, prioritize, and...
Read more
Description The objective of this training is to teach individual developers how they can use Gradle Enterprise to help identify, prioritize, and fix flaky tests using a data-driven approach. Topics Covered What is a flaky test? The cost of flaky tests Causes of flakiness Detecting flaky tests Tips towards fixing flaky tests Duration 40 minutes of content with 20 minutes of Q&A. Audience Software engineers and technical managers interested in automated testing. Prerequisites None. Objectives Leaving this training developers will understand how to bring visibility to broken and flaky tests and use data to identify, triage, and prioritize fixing flaky tests.
Get hands-on training on how to tackle build performance issues with the Gradle build cache. Topics include build cache basics, task...
Read more
Get hands-on training on using Gradle’s Build Cache for improving performance. Description The Gradle build cache significantly reduces build time by reusing outputs produced by other builds in your organization. In this training you will learn the basics and best practices to improve the performance of your builds by using the build cache. We’ll go over the recommended architecture for setting up a cache as well as how to author tasks to correctly utilize caching. We will also use Gradle Enterprise to learn how to analyze and troubleshoot issues. Duration 2.5 hours training session followed by 30-minutes Q&A. Audience Gradle build tool users as well as Gradle Enterprise users interested in speeding up builds are encouraged to attend the training. Prerequisites Gradle Build Tool experience Knowledge of core concepts Authoring build files Kotlin experience a plus but not required Experience with Java software development Objectives After this training the participants will be able to: Understand the benefits of using the Gradle build cache Use and configure the build cache Optimize build logic for maximum cacheability Course Outline Historical Background Context of problem we’re trying to solve Life of a build Performance Ideas: Re-use Build Cache in Gradle Incremental Builds Visible through task outcomes How it works Build-in tasks that support Limitations Local Cache How it works and benefits How to enable and use Limitations Hands-on exercise 1 Remote Cache How it works and benefits How to enable and use Hands-on exercise 2 Enabling with Custom Tasks Wiring inputs and outputs using annotations for caching Normalizing inputs Using runtime API to enable caching Hands-on exercise 3 Troubleshooting Tasks Possible problems Approaches to debugging Using build scans Hands-on exercise 4 Next Steps Getting started with local cache Gradle Enterprise for remote cache
Developers, software architects, decision makers: the 3 days of conferences and workshops allow everyone to discover the latest trends in the Java world, and beyond.
Developers, software architects, decision makers: the 3 days of conferences and workshops allow everyone to discover the latest trends in the Java world, and beyond.
Get hands-on training on how to tackle build performance issues with the Gradle build cache. Topics include build cache basics, task...
Read more
Get hands-on training on using Gradle’s Build Cache for improving performance. Description The Gradle build cache significantly reduces build time by reusing outputs produced by other builds in your organization. In this training you will learn the basics and best practices to improve the performance of your builds by using the build cache. We’ll go over the recommended architecture for setting up a cache as well as how to author tasks to correctly utilize caching. We will also use Gradle Enterprise to learn how to analyze and troubleshoot issues. Duration 2.5 hours training session followed by 30-minutes Q&A. Audience Gradle build tool users as well as Gradle Enterprise users interested in speeding up builds are encouraged to attend the training. Prerequisites Gradle Build Tool experience Knowledge of core concepts Authoring build files Kotlin experience a plus but not required Experience with Java software development Objectives After this training the participants will be able to: Understand the benefits of using the Gradle build cache Use and configure the build cache Optimize build logic for maximum cacheability Course Outline Historical Background Context of problem we’re trying to solve Life of a build Performance Ideas: Re-use Build Cache in Gradle Incremental Builds Visible through task outcomes How it works Build-in tasks that support Limitations Local Cache How it works and benefits How to enable and use Limitations Hands-on exercise 1 Remote Cache How it works and benefits How to enable and use Hands-on exercise 2 Enabling with Custom Tasks Wiring inputs and outputs using annotations for caching Normalizing inputs Using runtime API to enable caching Hands-on exercise 3 Troubleshooting Tasks Possible problems Approaches to debugging Using build scans Hands-on exercise 4 Next Steps Getting started with local cache Gradle Enterprise for remote cache
The objective of this training is to teach individual developers how to increase their productivity by debugging any local and CI...
Read more
Description The objective of this training is to teach individual developers how to increase their productivity by debugging any local and CI build issues faster using Gradle Enterprise, either on their own or in collaboration with colleagues. Topics Covered: Using a Build Scan to uncover what happened in the build Troubleshooting build failures efficiently Understanding dependency graphs in depth Analyzing flaky and failed tests Collaborating with colleagues more effectively Course Outline Duration 40 minutes of content with 20 minutes of Q&A. Audience Developers. Prerequisites None. Objectives Leaving this training developers will understand how to use scans to explore build issues they encounter, better self service troubleshoot their own build failures, and share scans with the build team using collaborative features for complex issues on which they need assistance.
The Cloud Native Computing Foundation’s flagship conference gathers leading technologists from leading open source and cloud native communities...
The Cloud Native Computing Foundation’s flagship conference gathers leading technologists from leading open source and cloud native communities to further the education and advancement of cloud native computing.
Introduction to Gradle Build Tool is aimed at developers and build engineers who have no previous experience with Gradle Build Tool....
Read more
Description Introduction to Gradle Build Tool is aimed at developers and build engineers who have no previous experience with Gradle Build Tool. It is designed to give you a foundation in Gradle fundamentals. We assume you have some familiarity with software development. Our goal is to demonstrate the building blocks necessary for you to manage your own Gradle build projects. This class is hands-on, so you will spend a significant portion of the class with your hands on the keyboard, learning by doing, working through lab exercises. By the end of this class, you will know the basics of Gradle and have a feel for how Gradle tasks and builds work. Duration 4 hours training session Audience This class is designed for developers and build engineers who want to learn about Gradle. Prerequisites No prior experience with Gradle Build Tool is required. Install the latest version of Gradle Build Tool along with at least Java 1.8 Recommended: IntelliJ community edition Some experience with software development Training materials use some Java and Kotlin, experience with these or similar languages is a bonus but not required Objectives Learn core Gradle concepts and terminology Get practical experience with hands-on exercises Course Outline About Gradle Build Tool Build automation concepts Gradle Build Tool core concepts Gradle community Core concepts Build configuration Overview of Gradle configuration layout Creating configuration using Gradle init Opening in IDE Gradle wrapper Hands-on exercise 1 Build lifecycle The 3 lifecycle phases Plugins Plugin types Java plugins example SourceSets Tasks Task categories Inputs and outputs Dependency and ordering Task outcomes Authoring custom tasks Supporting command-line parameters Task configuration reading Custom actions in doFirst and doLast Build Scan service Hands-on exercise 2 Dependency management Types of dependencies Repository Modules Configuration of dependencies Transitive dependencies Module versioning Dynamic and changing versions Conflict resolution Documenting dependencies Hands-on exercise 3 Publishing Multi-project builds Structure Adding subprojects Sharing common configuration using buildSrc Legacy allprojects and subprojects Hands-on exercise 4
Introduction to Gradle Build Tool is aimed at developers and build engineers who have no previous experience with Gradle Build Tool....
Read more
Description Introduction to Gradle Build Tool is aimed at developers and build engineers who have no previous experience with Gradle Build Tool. It is designed to give you a foundation in Gradle fundamentals. We assume you have some familiarity with software development. Our goal is to demonstrate the building blocks necessary for you to manage your own Gradle build projects. This class is hands-on, so you will spend a significant portion of the class with your hands on the keyboard, learning by doing, working through lab exercises. By the end of this class, you will know the basics of Gradle and have a feel for how Gradle tasks and builds work. Duration 4 hours training session Audience This class is designed for developers and build engineers who want to learn about Gradle. Prerequisites No prior experience with Gradle Build Tool is required. Install the latest version of Gradle Build Tool along with at least Java 1.8 Recommended: IntelliJ community edition Some experience with software development Training materials use some Java and Kotlin, experience with these or similar languages is a bonus but not required Objectives Learn core Gradle concepts and terminology Get practical experience with hands-on exercises Course Outline About Gradle Build Tool Build automation concepts Gradle Build Tool core concepts Gradle community Core concepts Build configuration Overview of Gradle configuration layout Creating configuration using Gradle init Opening in IDE Gradle wrapper Hands-on exercise 1 Build lifecycle The 3 lifecycle phases Plugins Plugin types Java plugins example SourceSets Tasks Task categories Inputs and outputs Dependency and ordering Task outcomes Authoring custom tasks Supporting command-line parameters Task configuration reading Custom actions in doFirst and doLast Build Scan service Hands-on exercise 2 Dependency management Types of dependencies Repository Modules Configuration of dependencies Transitive dependencies Module versioning Dynamic and changing versions Conflict resolution Documenting dependencies Hands-on exercise 3 Publishing Multi-project builds Structure Adding subprojects Sharing common configuration using buildSrc Legacy allprojects and subprojects Hands-on exercise 4
In this hands-on workshop with labs—using examples from Java projects that rely on Maven or the Gradle build tool—we will demonstrate...
Read more
Description Developer Productivity Engineering (DPE) is a software development practice used by leading software development organizations to maximize developer productivity and happiness. It uses acceleration technologies to speed up local and CI builds and tests and data analytics to proactively improve the reliability of the developer toolchain and make failure troubleshooting more efficient. In this hands-on training with labs we will demonstrate DPE best practices and tools in action—using examples from Java projects that rely on Maven or the Gradle build tool. Objectives At a high level you will learn how to: Leverage build and test acceleration technologies like Build Cache and Test Distribution to instantly speed up feedback cycles as much as 90%. Cut debugging and troubleshooting time in half using data analytics such as Build Scan™ and failure dashboards to rapidly identify incident root causes and better manage avoidable failures like flaky tests. Continuously improve performance and guard against regressions through metric, KPI and trend observability using performance and trend dashboards. Integrate with Git/Jenkins The end-result of pursuing DPE excellence will be a transformative and highly satisfying developer experience. Duration 2.5 hour training session followed by 30-minutes Q&A. Instructor Raju Gandhi Developer Advocate @ Gradle Audience The target audience for this workshop includes: Any Gradle and Maven build tool users interested in speeding up builds and making troubleshooting more efficient Senior/Lead software developers responsible for the productivity and morale of their team(s) and are particularly focused on increasing trust and confidence in the toolchain to encourage the right behaviors Build engineers responsible for enabling fast and frequent software delivery, improving trust and confidence in toolchain, and making teaming and collaborations with the development team more efficient DPE managers and champions looking for a comprehensive guide to the DPE practice that they can reference, share, and use to socialize the key concepts and tools across the organization CI Teams focused on achieving faster CI builds and more efficient ways for developer and CI engineers to troubleshoot failed CI builds, as well as contain the spiraling costs of their CI infrastructure and compute resources Prerequisites Make sure you have JDK 11 or later installed if you do not already. You can use your favorite IDE or text editor during the workshop. Course Outline Introduction Current state of build engineering What is Gradle Enterprise and what are its benefits? Lab 1: Creating a build scan Lab 2: Extending a build scan What is a build cache? Gradle and Maven build caching Lab 3: Using the local build cache Remote build cache and its topology Lab 4: Using the remote build cache Lab 5: Comparing builds to understand cache misses Best practices to increase cache effectiveness Build cache administration Performance monitoring and data analysis Lab 6: Live dashboard of build activity
Build systems have evolved over time to provide more features to developers. In this course we will go beyond the basics of managing...
Read more
Description: Build systems have evolved over time to provide more features to developers. In this course we will go beyond the basics of managing JVM based projects with the Gradle Build Tool. We will cover best practices that increase the quality and efficiency of building your projects. We will cover how these best practices can be used for projects written in Java, Kotlin, Groovy and Scala. There will be hands-on exercises to help you use what you learn in your projects. Duration: 4 hours training session including time for hands-on exercises and Q&A. Audience: Users that manage projects written in Java, Kotlin, Groovy and Scala with the Gradle build tool. Prerequisites: Gradle Build Tool experience Knowledge of core concepts Authoring Gradle build files Executing common tasks to compile, test and package Kotlin experience is a plus but not required Experience with software development with a JVM language Either Java, Kotlin, Groovy or Scala Objectives: After this training the participants will be able to: Deeper understanding of JVM projects Use modern best practices to boost productivity Course Outline: Evolution of Build Systems Provides context of topics covered in the training Gradle JVM plugins Java plugins Kotlin plugin Groovy plugin Scala plugin Source organization SourceSet concept Handling generated sources Creating separate SourceSets Hands-on exercise 1 Compilation Specifying Java version using Toolchains Using different Java version for specific tasks Dependency management: api vs implementation Declared vs Resolvable dependencies Hands-on exercise 2 Verification Testing Testing pyramid and test grouping Measuring and enforcing test coverage Hands-on exercise 3 Compliance & code quality Enforcing code style Using static code analysis Packaging Creating standalone Jars Dealing with dependency conflicts using shadowing Hands-on exercise 4
Build systems have evolved over time to provide more features to developers. In this course we will go beyond the basics of managing...
Read more
Description: Build systems have evolved over time to provide more features to developers. In this course we will go beyond the basics of managing JVM based projects with the Gradle Build Tool. We will cover best practices that increase the quality and efficiency of building your projects. We will cover how these best practices can be used for projects written in Java, Kotlin, Groovy and Scala. There will be hands-on exercises to help you use what you learn in your projects. Duration: 4 hours training session including time for hands-on exercises and Q&A. Audience: Users that manage projects written in Java, Kotlin, Groovy and Scala with the Gradle build tool. Prerequisites: Gradle Build Tool experience Knowledge of core concepts Authoring Gradle build files Executing common tasks to compile, test and package Kotlin experience is a plus but not required Experience with software development with a JVM language Either Java, Kotlin, Groovy or Scala Objectives: After this training the participants will be able to: Deeper understanding of JVM projects Use modern best practices to boost productivity Course Outline: Evolution of Build Systems Provides context of topics covered in the training Gradle JVM plugins Java plugins Kotlin plugin Groovy plugin Scala plugin Source organization SourceSet concept Handling generated sources Creating separate SourceSets Hands-on exercise 1 Compilation Specifying Java version using Toolchains Using different Java version for specific tasks Dependency management: api vs implementation Declared vs Resolvable dependencies Hands-on exercise 2 Verification Testing Testing pyramid and test grouping Measuring and enforcing test coverage Hands-on exercise 3 Compliance & code quality Enforcing code style Using static code analysis Packaging Creating standalone Jars Dealing with dependency conflicts using shadowing Hands-on exercise 4
Build systems have evolved over time to provide more features to developers. In this course we will go beyond the basics of managing...
Read more
Description The objective of this training is to teach build engineers how to use Gradle Enterprise insights and analytics to debug and accelerate their builds. Fast,efficient and reliable builds provide productivity benefits to all who run the build, and allow the build to be run more often for faster development cycles and identification of issues. Topics covered: About the local build cache and remote build cache How to make tasks cacheable Debugging cache misses 3 build acceleration experiments to conduct Monitoring for build regressions Duration 1 hour of content Audience Build engineers, or any developers wanting to learn more about improving their builds. If an important project currently has nobody responsible for the build, we recommend designating a person to attend this training. Prerequisites Attendance of the Gradle Enterprise for Developers training or the equivalent basic understanding of Gradle Enterprise. (if you have missed the session, you may view a recorded version here: https://tv.gradle.com/ge-training-for-devs) Objectives Individuals who have attended this training will understand how to optimize their builds for build caching to maximize performance benefits and accelerate build times, and how to keep it that way by identifying and addressing regressions that can occur over time.