diff --git a/first-class-pipeline/vars/executeFreeleapsPipeline.groovy b/first-class-pipeline/vars/executeFreeleapsPipeline.groovy index 03f4a5f7..c6cd3b75 100644 --- a/first-class-pipeline/vars/executeFreeleapsPipeline.groovy +++ b/first-class-pipeline/vars/executeFreeleapsPipeline.groovy @@ -104,89 +104,95 @@ spec: } } - configurations.components.each { component -> - stage("${component} :: Build Agent Setup") { - when { - expression { - return env.executeMode == "fully" || env.changedComponents.contains(component) - } - } - - steps { - script { - def buildAgentImage = component.buildAgentImage - if (buildAgentImage == null || buildAgentImage.isEmpty()) { - log.warn "Not set buildAgentImage for ${component}, using default build agent image" - - def language = ServiceLanguage.parse(configurations.serviceLang) - switch(language) { - case ServiceLanguage.PYTHON: - buildAgentImage = "python:3.10-slim-buster" - break - case ServiceLanguage.JS: - buildAgentImage = "node:lts-alpine" - break - default: - error("Unknown service language") + stage("Components Build (Dynamic Generated Stages)") { + steps { + script { + configurations.components.each { component -> + stage("${component} :: Build Agent Setup") { + when { + expression { + return env.executeMode == "fully" || env.changedComponents.contains(component) + } } - log.info "Using ${buildAgentImage} as build agent image for ${component}" - env.buildAgentImage = buildAgentImage - } - } - } - } + steps { + script { + def buildAgentImage = component.buildAgentImage + if (buildAgentImage == null || buildAgentImage.isEmpty()) { + log.warn "Not set buildAgentImage for ${component}, using default build agent image" - stage("${component} :: Dependencies Resolving") { - when { - expression { - return env.executeMode == "fully" || env.changedComponents.contains(component) - } - } + def language = ServiceLanguage.parse(configurations.serviceLang) + switch(language) { + case ServiceLanguage.PYTHON: + buildAgentImage = "python:3.10-slim-buster" + break + case ServiceLanguage.JS: + buildAgentImage = "node:lts-alpine" + break + default: + error("Unknown service language") + } - agent { - kubernetes { - defaultContainer 'dep-resolver' - yaml """ -apiVersion: v1 -kind: Pod -metadata: - labels: - freeleaps-devops-system/milestone: dependencies-resolving -spec: - containers: - - name: dep-resolver - image: ${env.buildAgentImage} - command: - - cat - tty: true - volumeMounts: - - name: workspace - mountPath: /workspace - volumes: - - name: workspace - emptyDir: {} -""" - } - } - - steps { - script { - def language = ServiceLanguage.parse(component.language) - - def depManager = DependenciesManager.parse(component.dependenciesManager) - - def dependenciesResolver = new DependenciesResolver(this, language) - dependenciesResolver.useManager(depManager) - - if (component.buildCacheEnabled) { - dependenciesResolver.enableCachingSupport() - } else { - dependenciesResolver.disableCachingSupport() + log.info "Using ${buildAgentImage} as build agent image for ${component}" + env.buildAgentImage = buildAgentImage + } + } + } } - sourceFetcher.fetch(configurations) - dependenciesResolver.resolve(configurations) + stage("${component} :: Dependencies Resolving") { + when { + expression { + return env.executeMode == "fully" || env.changedComponents.contains(component) + } + } + + agent { + kubernetes { + defaultContainer 'dep-resolver' + yaml """ + apiVersion: v1 + kind: Pod + metadata: + labels: + freeleaps-devops-system/milestone: dependencies-resolving + spec: + containers: + - name: dep-resolver + image: ${env.buildAgentImage} + command: + - cat + tty: true + volumeMounts: + - name: workspace + mountPath: /workspace + volumes: + - name: workspace + emptyDir: {} + """ + } + } + + steps { + script { + def language = ServiceLanguage.parse(component.language) + + def depManager = DependenciesManager.parse(component.dependenciesManager) + + def dependenciesResolver = new DependenciesResolver(this, language) + dependenciesResolver.useManager(depManager) + + if (component.buildCacheEnabled) { + dependenciesResolver.enableCachingSupport() + } else { + dependenciesResolver.disableCachingSupport() + } + + sourceFetcher.fetch(configurations) + dependenciesResolver.resolve(configurations) + } + } + } } } }