diff --git a/first-class-pipeline/src/com/freeleaps/devops/ChangedComponentsDetector.groovy b/first-class-pipeline/src/com/freeleaps/devops/ChangedComponentsDetector.groovy index d4e89a5e..4d7e512c 100644 --- a/first-class-pipeline/src/com/freeleaps/devops/ChangedComponentsDetector.groovy +++ b/first-class-pipeline/src/com/freeleaps/devops/ChangedComponentsDetector.groovy @@ -16,6 +16,8 @@ class ChangedComponentsDetector { def changedFiles = steps.sh(script: 'git diff --name-only HEAD~1 HEAD', returnStdout: true) .trim() .split('\n') + + steps.log.info("ChangedComponentsDetector", "Changed files: ${changedFiles}") changedFiles.each { file -> components.each { component -> diff --git a/first-class-pipeline/vars/executeFreeleapsPipeline.groovy b/first-class-pipeline/vars/executeFreeleapsPipeline.groovy index e35d366a..662c6338 100644 --- a/first-class-pipeline/vars/executeFreeleapsPipeline.groovy +++ b/first-class-pipeline/vars/executeFreeleapsPipeline.groovy @@ -736,11 +736,21 @@ spec: stage("Pipeline :: Components Build (Dynamic Generated Stages)") { steps { script { - if (env.executeMode == "fully" || env.changedComponents.split(/\s+/).toList().size() > 0) { + if (env.executeMode == "fully") { configurations.components.each { component -> log.info("Pipeline", "Executing generated stages for ${component.name}...") generateComponentStages(component, configurations)() } + } else if { + def changedComponents = env.changedComponents.split(/\s+/).toList() + configurations.components.each { component -> + if (changedComponents.contains(component.name)) { + log.info("Pipeline", "Executing generated stages for ${component.name}...") + generateComponentStages(component, configurations)() + } + } + } else { + log.info("Pipeline", "No components changed, skipping...") } } }