TFS在Jenkins合并分支

时间:2018-03-08 10:49:12

标签: jenkins tfs jenkins-pipeline

我试图在Jenkins的两个分支之间合并,但我没有得到它。我试图解决这个问题,创建一个管道(groovy)并运行tfs merge命令,如下所示:

stage('Merging between Dev and Homologação') {
        steps {
            script{

                try{
                     bat "tf merge ${TFS_BRANCH_DEV} ${TFS_BRANCH_HOMOLOGACAO} /recursive /version:T /login:${TFS_USR};${TFS_PSW}"
                }
                catch (exception) {
                    IS_MERGE = 1
                }

                try{   
                    if (IS_MERGE == 1){
                        //resolve the merge conflits
                        bat "tf resolve ${TFS_BRANCH_HOMOLOGACAO} /auto:TakeTheirs /recursive /noprompt /login:${TFS_USR};${TFS_PSW}"

                        //build the solution
                        bat "\"${tool name: '.NET Compilação', type: 'msbuild'}\" ${TFS_BRANCH_HOMOLOGACAO_SO} /p:Configuration=Jenkins;Platform=\"Any CPU\" /t:Clean;Build" 
                    }
                }
                catch (exception) {                        
                    throw exception
                }
            }
        }

另一种解决方案是创建两个作业(自由样式),用于获取和构建开发和同源分支,然后使用multijob插件创建另一个作业。在那里,我调用其他两个构建作业,然后在命令窗口区域中运行merge and resolve命令。它不起作用。

我不知道该怎么办。我很容易使用git另一个项目,但使用TFS很难做到。

有人可以帮助我吗?

感谢。

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。

首先,必须删除所有工作区。之后,它需要清理TFS缓存,如下所示:

Tfs 2017:"%localappdata%\ Microsoft \ Team Foundation \ 7.0 \ Cache \"
Tfs 2015:"%localappdata%\ Microsoft \ Team Foundation \ 6.0 \ Cache \"
Tfs 2013:"%localappdata%\ Microsoft \ Team Foundation \ 5.0 \ Cache \"
Tfs 2012:"%localappdata%\ Microsoft \ Team Foundation \ 4.0 \ Cache \"

最后,如果jenkins中有自由样式的作业,请检查工作区是否正确。在常规选项卡中,单击高级项目选项按钮,然后标记"使用自定义工作区",在目录字段中通知工作区。