Last active
June 1, 2018 02:26
-
-
Save Brantone/02df6a1ad3defc5896ede03711ca0c4e to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import hudson.FilePath | |
import jenkins.model.Jenkins | |
import com.cloudbees.hudson.plugins.folder.* | |
Jenkins jkns = Jenkins.instance | |
def build_vars = build.buildVariables | |
def base_folder_name = build_vars['baseFolderName'] | |
def build_proj_file = 'ServerBuild.proj' | |
def tier = (build_vars['assembliesTier'].toInteger() - 1) | |
// Ensure base folder exists | |
def baseFolder = jkns.getItemByFullName(base_folder_name) | |
if (baseFolder == null) { | |
baseFolder = jkns.createProject(Folder.class, base_folder_name) | |
} | |
FilePath build_proj_fp = build.workspace.child(build_proj_file) | |
if (!build_proj_fp.exists()) { | |
println "ERROR!!" | |
exit 0 | |
} | |
def xml = new XmlSlurper().parseText(build_proj_fp.readToString()) | |
def msBuildTags = xml.'**'.find{ | |
it.name() == 'Target' && it.attributes()['Name'] == 'Assemblies' | |
}.MSBuild | |
def projects = msBuildTags[tier].@"Projects".text().trim().tokenize(';') | |
projects.each { proj -> | |
// 2nd spot should have what we want, folder name after "$(LocalSolutionPath)\Assemblies\" | |
def name = proj.trim().tokenize('\\')[2] | |
println "Checking if ${name} folder exists in ${baseFolder.getName()} ..." | |
def folderName = "${baseFolder.getName()}/${name}" | |
def folder = jkns.getItemByFullName(folderName) | |
if (folder == null) { | |
folder = baseFolder.createProject(Folder.class, name) | |
} | |
} | |
return 0 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment