Jenkins 2 Introduction for Beginners on Mac OS
This is a beginner’s course designed to show how to setup and run a Jenkins CI server starting with continuous inspection (build, test and analysis) for users of MacOS-based systems. This course provides a strong foundation for implementing continuous inspection and integration at your company or studio. In order to keep the course short and to-the-point, several decisions were made in order to provide a complete path to continuous integration.
The pipeline created in this course consists of the following:
- Jenkins CI server installed and configured on Windows
- Git as the source control system
- Java as the main programming language of build projects
- Maven as the build tool
This set of tools provides a comprehensive, end-to-end implementation continuous integration pipeline. Jenkins can be installed on many operating systems and supports a myriad of tools and technologies — which means, this course provides tremendous value to those comfortable or interested in other operating systems and/or technologies.
Introduction provides an overview for the course, which leas to the Core Concepts for Jenkins. This provides a foundation for the remainder of the course.
Quick Installation provides an abbreviated step-by-step instructions on how to setup Jenkins and all the related tools specifically on Windows. Full Installation details is covered in the bonus section of the course.
Jenkins Basics provides a first look at Jenkins at work with a very simple “freestyle” project. This allows us to learn the Jenkins interface and the key features it provides.
After our initial introduction to Jenkins, we Manage Jenkins plugins and global configuration.
Then, we dive into Maven Projects specifically — since Jenkins can understand Maven and thus provides special features for Maven projects — with the right plugins installed.
We venture beyond the basics with Scheduled Projects and periodically Polling Source Control, which are closely related. Then we look at how to Link Projects together by calling upstream and downstream projects. Finally, we organize our projects with Views.
Presentations provide audio/video training of conceptual ideas in each major area or introduction of new concepts.
Screencasts provide a video of the instructor’s computer system with any actions, commands, or screens displayed and narrated. There are several hours of screencat video content — it makes up the vast majority of the course. Any command line based screencast will include a command listing in the lecture downloads.
An overview of the key Jenkins topics covered in this course, such as automating Maven builds.
An explanation of the way this course is taught; mostly step-by-step instructional screen cast videos supplemented with slideshows on key concepts.
A basic overview of what Jenkins is and why you should use it to automate builds.
A quick narrated diagram showing the way that Jenkins functions on your host system.
A quick overview of the tools we will be installing for this course.
A quick guide to getting the titular Jenkins installed and running on your host system.
A quick explanation of how to start and stop Jenkins running on Mac OS X.
A quick look into the Basic Jenkins topics covered in this first section.
A quick explanation of how to get logged into your user account on Jenkins to be ready to get some work done in the next lectures.
A quick overview of the important items on your Jenkins dashboard.
Creating our fist Job in Jenkins so that we will have something to work with throughout this section.
An explanation of the basic functionality of the project configuration page in Jenkins.
Triggering our first project builds and seeing how that affects the Jenkins home page.
A quick overview of the useful items on the project's homepage.
How to enable and disable projects, just in case something goes wrong.
Reviewing the history of builds for a job within Jenkins.
Reviewing the information Jenkins has for specific builds within a job.
Creating a basic shell script freestyle Job within Jenkins
Making a build fail in order to understand what a build failure looks like in Jenkins.
Reviewing the purpose of items on the Jenkins dashboard now that it is populated with built jobs.
Removing a project that is no longer wanted from Jenkins.
Editing the job's build configuration to get a successful build running once again.
Duplicating an existing project in order to populate our Jenkins server with jobs for the next section.
An overview of the goals for this section, namely being able to install and configure plugins within Jenkins, as well as being able to configure Jenkins itself.
An overview of the various configuration tools accessible to us for managing Jenkins itself.
A walk through of the process for installing new releases of Jenkins onto your Mac operating system.
Keeping plugins within Jenkins up to date.
Learning how to pick a plugin when you need additional functionality in Jenkins.
Adding a plugin to Jenkins after locating it from an external resource.
Removing unwanted plugins from Jenkins.
Disabling a problematic plugin as a way to troubleshoot issues in Jenkins, as well as enabling it again afterwards.
Installing the Maven plugin, which is important to future lessons.
Configuring basic items in Jenkins, such as the number of build executors and the use of a system message.
Pointing our installation of Jenkins to the installations of Java, Git, and Maven on our local system.
An overview of the topics in this section, namely building our Maven project locally, importing the project into Jenkins via GitHub, and troubleshooting build issues that arise.
Testing out our Maven build on our local system before testing it within Jenkins.
Configuring our Maven project to work in Jenkins by importing it from GitHub.
Building our Maven project within Jenkins and inspecting the results.
Inspecting the Maven Module builds within Jenkins, as provided by the Maven integration plugin.
Forcing our Maven build to fail in order to allow us to troubleshoot the issue in future lessons.
Using the console output of our Maven build to help understand the underlying issue with the build.
Troubleshooting a failing build in Jenkins by removing Jenkins from the equation and building on our local system.
Troubleshooting our Maven build by inspecting the files within our Jenkins workspace to understand what part of the code is throwing errors.
Fixing the issue we created in our Maven project to get our build back into a working state.
An overview of the upcoming section on scheduling Jobs in Jenkins.
Making our Jenkins job run on a schedule with an explanation of how the scheduling field works in Jenkins.
Watching our build trigger automatically while also showing we can still manually trigger builds.
Revising our automatic build schedule to trigger builds on a more reasonable schedule.
Source Code Polling
An overview of the polling we will be using in this section. We will use it in order to trigger Jenkins to build upon source code changes.
Setting up our Maven project to Poll the GitHub source control for updates in order to automatically trigger the Jenkins build.
Watching our project trigger and then viewing the Git polling log to better understand the build trigger.
Changing our GitHub source code in order to trigger our Jenkins build, while also seeing how this affects our Git polling log.
Revising our schedule to make sense for a live production sever.
An overview of how we will be using upstream and downstream projects to create a Jenkins build workflow in this section.
Creating a basic Jenkins workflow by making an upstream job that will trigger one of our existing jobs after it builds.
Building our upstream project in order to see the project workflow in Jenkins.
Creating a project such that it will be triggered downstream another project being successfully built.
Watching our downstream job get triggered and reviewing the workflow this created.
In this section we will manage our job views in Jenkins, including automation with regular expressions.
How to create and manage custom views in Jenkins.
Creating views that select projects based on a regular expression selecting jobs based on name.
Deleting an unwanted view in Jenkins.
Adding descriptions to views in order to further help with organization and consistency.
Navigating between and into views to understand how views help categorize jobs in Jenkins.
Viewing history of multiple related jobs in Jenkins through views.
An overview of the basics that we have learned about Jenkins in this course.
Errata and Updates
Bonus: Full Install on Mac
A list of tools that we will install on Mac OS X in this section.
A guide to installing the web browser Google Chrome on Mac OS.
A guide to installing Git from Apple on Mac OS.
A guide to getting help in Git.
Configuring Git with the basic information needed to be able to use it.
A guide to installing the text editor TextMate 2.
A guide to configuring TextMate 2 to work in the terminal.
A guide to integrating TextMate 2 with Git.
A guide to installing Java 8 on Mac OS.
A guide to setting up Maven on Mac OS.
A guide to installing Jenkins 2 on Mac OS.
A guide to getting started in Jenkins on Mac OS.
A guide to resolving the issue of Git not working after upgrading to a new version of Mac OS.