diff --git a/pom.xml b/pom.xml index db63330..7aa2247 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ com.e-gineering gitflow-helper-maven-plugin - 1.7.0 + 1.7.1 maven-plugin gitflow-helper-maven-plugin diff --git a/src/main/java/com/e_gineering/maven/gitflowhelper/MasterPromoteExtension.java b/src/main/java/com/e_gineering/maven/gitflowhelper/MasterPromoteExtension.java index 74f59be..6f6e90a 100644 --- a/src/main/java/com/e_gineering/maven/gitflowhelper/MasterPromoteExtension.java +++ b/src/main/java/com/e_gineering/maven/gitflowhelper/MasterPromoteExtension.java @@ -50,6 +50,7 @@ public void afterProjectsRead(MavenSession session) throws MavenExecutionExcepti // Look for a gitflow-helper-maven-plugin, so we can determine what the gitBranchExpression and masterBranchPattern are... String masterBranchPattern = null; + String supportBranchPattern = null; String gitBranchExpression = null; boolean pluginFound = false; @@ -88,6 +89,10 @@ public void afterProjectsRead(MavenSession session) throws MavenExecutionExcepti masterBranchPattern = extractPluginConfigValue("masterBranchPattern", plugin); } + if (supportBranchPattern == null) { + supportBranchPattern = extractPluginConfigValue("supportBranchPattern", plugin); + } + if (gitBranchExpression == null) { gitBranchExpression = extractPluginConfigValue("gitBranchExpression", plugin); } @@ -109,10 +114,16 @@ public void afterProjectsRead(MavenSession session) throws MavenExecutionExcepti if (pluginFound) { if (masterBranchPattern == null) { logger.debug("Using default master branch Pattern."); - masterBranchPattern = "origin/master"; + masterBranchPattern = "(origin/)?master"; } logger.debug("Master Branch Pattern: " + masterBranchPattern); + if (supportBranchPattern == null) { + logger.debug("Using default support branch Pattern."); + supportBranchPattern = "(origin/)?support/(.*)"; + } + logger.debug("Support Branch Pattern: " + supportBranchPattern); + if (gitBranchExpression == null) { logger.debug("Using default branch expression resolver."); gitBranchExpression = ScmUtils.resolveBranchOrExpression(scmManager, session.getTopLevelProject(), new DefaultLog(logger)); @@ -124,10 +135,17 @@ public void afterProjectsRead(MavenSession session) throws MavenExecutionExcepti String gitBranch = pr.resolveValue(gitBranchExpression, session.getCurrentProject().getProperties(), systemEnvVars); logger.info("gitflow-helper-maven-plugin: Build Extension resolved gitBranchExpression: " + gitBranchExpression + " to: " + gitBranch); - // Test to see if the current GIT_BRANCH matches the masterBranchPattern... + // If the current git branch matches the master or support branch, prune the build plugin list. + boolean pruneBuild = false; if (gitBranch != null && gitBranch.matches(masterBranchPattern)) { logger.info("gitflow-helper-maven-plugin: Enabling MasterPromoteExtension. GIT_BRANCH: [" + gitBranch + "] matches masterBranchPattern: [" + masterBranchPattern + "]"); + pruneBuild = true; + } else if (gitBranch != null && gitBranch.matches(supportBranchPattern)) { + logger.info("gitflow-helper-maven-plugin: Enabling MasterPromoteExtension. GIT_BRANCH: [" + gitBranch + "] matches supportBranchPattern: [" + supportBranchPattern + "]"); + pruneBuild = true; + } + if (pruneBuild) { for (MavenProject project : session.getProjects()) { // Drop all the plugins from the build except for the gitflow-helper-maven-plugin, or plugins we // invoked goals for which could be mapped back to plugins in our project build.