The Jenkins Git Plugin is the cornerstone utility for connecting to both local and remote repositories, but the add-on provides much more than just a connection to source code repositories stored on GitHub, GitLab, Bitbucket or even the local file system. Here are five cool continuous integration functions, from the Jenkins Git push to the ability to perform a sparse checkout, which you probably didn't realize the Jenkins Git Plugin could do.
1. Poll the Git repository for changes
Once the Jenkins Git Plugin is installed and configured, your build jobs can poll any local or remote repositories for new commits. The Jenkins environment uses a cron job scheduling syntax, so polling the repository hourly, daily, monthly or any combination thereof is possible. If new commits are detected, the Jenkins Git Plugin will kick off the build.
It should be noted that the Jenkins Git Plugin will be looking for commits on only specific branches, so the topic branches developers use to create features and bug fixes won't likely trigger a build. But if someone merges a new feature into the master branch, the Jenkins build job will run.
2. Build multiple branches
Jenkins beginners often get the false impression that a build job can only be associated with a single Git branch, but nothing could be further from the truth. Does your Git environment have a feature, fix and master branch? Are there separate user story branches or branches that map to long-lasting Agile epics? You can have the Jenkins Git Plugin build against each of these branches every time it is invoked.
3. Merge before build fix and feature branches
Are your developers supposed to merge their branches into the main development trunk line every night? Do the developers always leave the office before doing so? Using the Merge before build feature, Jenkins can be configured to locally merge any number of development branches and then perform the build on the consolidated code base. If merges occur without conflicts, your developers won't need to perform daily merges anymore.
4. The Jenkins Git push
The Jenkins Git push is one of my favorite hidden features of the plug-in.
When Jenkins jobs are configured to merge branches together before running a build, the commit is local, and there won't automatically be a push of the commit back to the repo from which Git pulls. But you can configure the Jenkins plug-in to perform a Git push back to the remote repo, which then incorporates the merge's commit. The Jenkins Git push feature ensures that the commit becomes part of the distributed version control system's global history.
5. Issue a Git sparse checkout
Repositories can get huge, and pulling down every file and every delta can consume both network resources and disk space. But since version 1.7 of Git, it has been possible to perform a sparse checkout, where only certain folders and subfolders are pulled back from the source code repository. By asking the Jenkins Git Plugin to perform a sparse checkout, your builds will be more focused, run faster and consume fewer resources than a full Git fetch or clone.
Once installed, Jenkins Git Plugin enables your build jobs to perform plenty of other interesting functions, but these are five of the most useful. Integrate these features into your continuous integration builds, and get the most out of your Jenkins CI tool.
Learn Git fast
Interested in learning more about Git? Check out these Git tutorials and resources:
- Find out about the five basic Git commands every developer needs to know.
- Learn how to configure Git for optimal usage.
- Manipulate your commit history with git reset hard.
- Git cherry-pick what you like from other branches.
- Change the default Git text editor to Notepad++.
- See how well you'd do on these Git quiz questions.
- Do you know enough about tools like Git to pass the DevOps interview?