jenkins管道项目3个存储库

时间:2017-10-18 09:37:08

标签: git jenkins jenkins-plugins jenkins-pipeline

在我的项目中,我使用的是Multi scm,但它已经被删除了 我在项目A branche x中有jenkinsFile 我需要两个输入 输入1:选择项目B的分支 输入2:选择项目C的分支 我正在使用GitParameter插件

2 个答案:

答案 0 :(得分:0)

从您的问题看来,这些项目显然是相关的。因此,它们应该是同一解决方案的一部分。 (我假设您使用的是.NET,但如果情况并非如此,那么这个想法仍然存在。)

一旦它们在一个解决方案中结合在一起,我建议当前的最佳实践(在编写每周发布时为2.85)是使用多分支管道作业,它将自动检测给定存储库中的分支。通过这种方式,Jenkins更加紧密地集成了Git和GitHub的功能。

鉴于您已经建议您的项目不相关,我建议您将所有源代码放在Git中并使用Gi​​t插件,该插件允许您使用参数动态指定分支名称。

请参阅this帖子和this帖子。

答案 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: ']])

              }
           }
        }
    }