01. Anatomy of the Build
 02. Tip - First Make Sure Your Application Build Process Works Outside of Jenkins
 03. Manually Building with Maven and Then Running the Sample App
 04. Porting Manual Expertise to Automated
 05. Creating a First Freestyle Project (aka Job) and Configuring It to Clone Our Git Repo
 06. Testing if Jenkins Can Clone the Git Repo
 07. Fixing the Default Branch Specifier to Use Main Not the Default of Master
 08. Configuring a Shell Build Step to Run the Maven Wrapper to Compile Our App
 09. The Workspace Is Where Jenkins Performs Disk Based Build Operations
 10. Never Forget the Console Output Is Your Troubleshooting Best Friend
 11. Packaging Our App While Viewing Build Output in Real Time with the Scrolling Console
 12. Navigating Build Aka Run History without Losing Context
 13. Capturing App Build Artifacts- In This Case a Jar File
 14. Configuring Our Job to Capture Rich Unit Test Results
 15. Drilling into the Captured Unit Test Overview
 16. Viewing Test Result Trends and Stepping through the History of Build Overviews
 17. Aborting a Long Running Build and the Legend of Balls and Weather
 18. Visualizing Common Build Triggers - Push, Pull, and Scheduled
 19. Configuring Our Job to Trigger by Polling for Changes
 20. Testing Our Polling Trigger by Pushing a Broken Test
 21. Perusing Polling Logs after Triggering an Automated Build
 22. Surfacing Test Failures and Troubleshooting What Went Wrong
 23. Zippering Git Commit History with Build History - an Invaluable, Automatic Changelog