在我的项目中,我使用的是Multi scm,但它已经被删除了 我在项目A branche x中有jenkinsFile 我需要两个输入 输入1:选择项目B的分支 输入2:选择项目C的分支 我正在使用GitParameter插件
答案 0 :(得分:0)
从您的问题看来,这些项目显然是相关的。因此,它们应该是同一解决方案的一部分。 (我假设您使用的是.NET,但如果情况并非如此,那么这个想法仍然存在。)
一旦它们在一个解决方案中结合在一起,我建议当前的最佳实践(在编写每周发布时为2.85)是使用多分支管道作业,它将自动检测给定存储库中的分支。通过这种方式,Jenkins更加紧密地集成了Git和GitHub的功能。
鉴于您已经建议您的项目不相关,我建议您将所有源代码放在Git中并使用Git插件,该插件允许您使用参数动态指定分支名称。
答案 1 :(得分:0)
嗨我确实看了git插件+ git参数插件一切都很好,但是当我想选择每个repo的分支时,它重新组合了同一个参数中两个存储库的所有分支,我想是工作区的一些问题
所以我做了一些研究,我发现了这个并且它有效。 谢谢你的朋友的帮助
node() {
stage('select') {
timeout(time: 5)
{
dir("repo x") {
git branch: 'master', credentialsId: 'xxxx', url: 'ssh://xx.git'
String remoteBranchesStr = sh(script: "git branch -r", returnStdout: true).trim()
remoteBranchesStr = remoteBranchesStr.replaceAll(" ", "")
remoteBranchesStr = remoteBranchesStr.replaceAll(",", "")
remoteBranchesStr = remoteBranchesStr.replaceAll("[", "")
remoteBranchesStr = remoteBranchesStr.replaceAll("]", "")
def remoteBranches = [];
remoteBranches= remoteBranchesStr.split('origin/');
gitBranch = input(id: 'x', message: 'Sélectionner la branche x :', parameters: [[$class: 'ChoiceParameterDefinition', choices: "$remoteBranches", description: '', name: 'x : ']])
}
dir("repo y") {
git branch: 'master', credentialsId: 'yyyy', url: 'ssh://y.git'
String remoteBranchesStr = sh(script: "git branch -r", returnStdout: true).trim()
remoteBranchesStr = remoteBranchesStr.replaceAll(" ", "")
remoteBranchesStr = remoteBranchesStr.replaceAll(",", "")
remoteBranchesStr = remoteBranchesStr.replaceAll("[", "")
remoteBranchesStr = remoteBranchesStr.replaceAll("]", "")
def remoteBranches = [];
remoteBranches = remoteBranchesStr.split('origin/');
gitBranch = input(id: 'y', message: 'Sélectionner la branche y:', parameters: [[$class: 'ChoiceParameterDefinition', choices: "$remoteBranches", description: '', name: 'y: ']])
}
}
}
}