My Job DSL / Multi SCM integration has suddenly stopped working. When i apply something like
multiscm {
git {
remote {
name('origin')
credentials('00000001-0000-0000-0000-000000000001')
url('[email protected]:user/path.git')
}
branch('*/dev')
extensions {
cleanBeforeCheckout()
}
}
git {
remote {
name('origin')
credentials('00000001-0000-0000-0000-000000000001')
url('[email protected]:user/path-2.git')
}
branch('master')
extensions {
relativeTargetDirectory("""path""")
}
}
}
i get following output:
<scm class="org.jenkinsci.plugins.multiplescms.MultiSCM">
<scms>
<scm class="hudson.plugins.git.GitSCM">
<userRemoteConfigs>
<hudson.plugins.git.UserRemoteConfig>
<name>origin</name>
<url>[email protected]:user/path.git</url>
<credentialsId>00000001-0000-0000-0000-000000000001</credentialsId>
</hudson.plugins.git.UserRemoteConfig>
</userRemoteConfigs>
<branches>
<hudson.plugins.git.BranchSpec>
<name>*/dev</name>
</hudson.plugins.git.BranchSpec>
</branches>
<configVersion>2</configVersion>
<disableSubmodules>false</disableSubmodules>
<recursiveSubmodules>false</recursiveSubmodules>
<doGenerateSubmoduleConfigurations>false</doGenerateSubmoduleConfigurations>
<authorOrCommitter>false</authorOrCommitter>
<clean>false</clean>
<wipeOutWorkspace>false</wipeOutWorkspace>
<pruneBranches>false</pruneBranches>
<remotePoll>false</remotePoll>
<ignoreNotifyCommit>false</ignoreNotifyCommit>
<gitTool>Default</gitTool>
<skipTag>true</skipTag>
<extensions>
<hudson.plugins.git.extensions.impl.CleanBeforeCheckout/>
</extensions>
</scm>
<scm class="hudson.plugins.git.GitSCM">
<userRemoteConfigs>
<hudson.plugins.git.UserRemoteConfig>
<name>origin</name>
<url>
[email protected]:user/path-2.git
</url>
<credentialsId>00000001-0000-0000-0000-000000000001</credentialsId>
</hudson.plugins.git.UserRemoteConfig>
</userRemoteConfigs>
<branches>
<hudson.plugins.git.BranchSpec>
<name>master</name>
</hudson.plugins.git.BranchSpec>
</branches>
<configVersion>2</configVersion>
<disableSubmodules>false</disableSubmodules>
<recursiveSubmodules>false</recursiveSubmodules>
<doGenerateSubmoduleConfigurations>false</doGenerateSubmoduleConfigurations>
<authorOrCommitter>false</authorOrCommitter>
<clean>false</clean>
<wipeOutWorkspace>false</wipeOutWorkspace>
<pruneBranches>false</pruneBranches>
<remotePoll>false</remotePoll>
<ignoreNotifyCommit>false</ignoreNotifyCommit>
<gitTool>Default</gitTool>
<skipTag>true</skipTag>
<extensions>
<hudson.plugins.git.extensions.impl.RelativeTargetDirectory>
<relativeTargetDir>path</relativeTargetDir>
</hudson.plugins.git.extensions.impl.RelativeTargetDirectory>
</extensions>
</scm>
</scms>
</scm>
(sorry for verbosity)
And my job fails to check out anything at all. If i configure it manually through web UI, i get quite different xml, that checks out magnificently:
<scm class="org.jenkinsci.plugins.multiplescms.MultiSCM" plugin="[email protected]">
<scms>
<hudson.plugins.git.GitSCM plugin="[email protected]">
<configVersion>2</configVersion>
<userRemoteConfigs>
<hudson.plugins.git.UserRemoteConfig>
<url>[email protected]:user/path.git</url>
<credentialsId>00000001-0000-0000-0000-000000000002</credentialsId>
</hudson.plugins.git.UserRemoteConfig>
</userRemoteConfigs>
<branches>
<hudson.plugins.git.BranchSpec>
<name>*/master</name>
</hudson.plugins.git.BranchSpec>
</branches>
<doGenerateSubmoduleConfigurations>false</doGenerateSubmoduleConfigurations>
<submoduleCfg class="list"/>
<extensions>
<hudson.plugins.git.extensions.impl.CleanBeforeCheckout/>
</extensions>
</hudson.plugins.git.GitSCM>
<hudson.plugins.git.GitSCM plugin="[email protected]">
<configVersion>2</configVersion>
<userRemoteConfigs>
<hudson.plugins.git.UserRemoteConfig>
<url>[email protected]:user/path.git</url>
<credentialsId>00000001-0000-0000-0000-000000000001</credentialsId>
</hudson.plugins.git.UserRemoteConfig>
</userRemoteConfigs>
<branches>
<hudson.plugins.git.BranchSpec>
<name>*/master</name>
</hudson.plugins.git.BranchSpec>
</branches>
<doGenerateSubmoduleConfigurations>false</doGenerateSubmoduleConfigurations>
<submoduleCfg class="list"/>
<extensions/>
</hudson.plugins.git.GitSCM>
</scms>
</scm>
What happens here and how do i fix it? Are there any other options rather than direct configure blocks? I have tons of similar jobs and job DSL is my only option here.
