While working with many FlexDeploy customers on DevOps for middleware and enterprise applications, I have noticed that organizations setup a multitude of Git repositories and each repository is used to store source code for many artifacts. For example, one Git repository may contain a few integration composites, service bus projects, application server configurations etc., and there can be many such Git repositories. Why am I talking about this? As we have blogged before on out-of-the-box FlexDeploy capabilities to support many of these use cases without any scripting, there is an underlying basic feature for detecting changes at sparse folder level which has gone unnoticed. Let’s review more.
Look at this sample repository for demonstration purposes. I have two folders here: Folder1 and Folder2. Consider those to be source code for two different artifacts.
As we are just going to review how changes are detected, let’s just talk at high level. I have created two Jobs in Jenkins version 2.121.1. Both jobs are setup to poll every 5 minutes and each job is using sparse checkout for specific folder. As expected both jobs (as no previous build) will run and are successful.
Similarly, FlexDeploy is setup with two projects both pointing to individual folders in Git and polling setup to run every minute. As expected, the first build will be initiated (as no previous build) and is successful.
Notice FlexDeploy only built project Folder1, as a change was made only in Folder1.
FlexDeploy will keep track of the revision for each folder, and in addition change logs will be captured only for configured sparse folders. Jenkins does have capability to ignore commits in certain paths which I validated to be working correctly for poll build. Although, captured change logs for build may not always be correct if build was initiated manually.
Additionally, FlexDeploy provides partial deployment capability for EBS, Salesforce, SQL files and many more where change detection is performed at the file level, which allows users to easily track their changes as it progresses through the Pipeline.