你如何将多个TFS回购拉入单个Jenkins工作?

Tyl*_*ith 6 tfs jenkins jenkins-plugins

我有一个repo,有2个子文件夹$/Repo/project和$/Repo/thirdparty.我需要将这两者都拉到Jenkins中进行单一构建.当然,我试着拉动$/Repo,但这给了我一些其他项目以及错误的民意调查(每次将任何东西检入$/Repo时都会建立).我已经尝试使用多scm插件工作,但不保存配置(烦人,但不是无法使用).我尝试使用常规tfs插件并手动将其他repo的调用放入windows命令(即使通过我将它们绑定到不同的文件夹,这也无法工作).

解决这个问题的最佳方法是什么?吸引第三方的某种subjob?修复多个scm插件?拉动项目时是否有一些tfs命令或触发器来拉出不同的仓库?

小智 5

我能够通过工作管道实现这一目标.这有点哈哈,但它确实有效.

我正在尝试构建的程序使用$/Department/Framework/Main(as workspace\Framework)和$/Department/Products/TheProgram/Main(as workspace\TheProgram).

我在Jenkins创建了三个工作,每个工作都在另一个"下游":

  • Framework-Get:在TFS的项目路径上触发的正常源代码$/Department/Framework/Main.没有构建步骤.
  • TheProgram-Get:在TFS的产品路径上触发的正常源代码$/Department/Products/TheProgram.没有构建步骤.
  • TheProgram-Build:没有源代码控制.但构建步骤xcopy是上述两个步骤的来源.然后,您可以运行正常的构建步骤.

TheProgram-Build的第一个构建步骤是一个Windows批处理命令:

REM ====================================
REM First Get the Framework folder:
rmdir /s/q Framework
mkdir Framework
xcopy /y /q /e ..\..\Framework-Get\Workspace\Framework Framework

REM ====================================
REM Then Get the TheProgram Folder:
rmdir /s/q TheProgram 
mkdir TheProgram 
xcopy /y /q /e ..\..\TheProgram-Get\Workspace\TheProgram TheProgram

第二个构建步骤是对ant的简单调用.但是你可以使用msbuild或者你喜欢的任何东西.


Łuk*_*nek 2

Jenkins 的 TFS 插件当前不支持从多个位置检查源。multiple-scm-plugin 可能是答案,但正如您在问题中指出的那样 - 目前这确实不是一个选择。据我所知,实际上只有可能的解决方案供您测试:

  1. 在 TFS 中创建一个工作区,其中将包含所有必要的导入。我在每天使用 TFS 时都会使用此功能,尽管我从未有机会将其与 Jenkins 插件一起使用。它可能有效,也可能无效。
  2. 你可以使用,请 - 这是一个非常严肃的选择,至少对我来说 - git。有一个git-tfs并将所有必需的项目导入 git 存储库。将它们放在 git 中将为您带来很多可能性,包括为每个文件夹使用单独的存储库、使用 git 模块、git 外部...等等。所以,至少对我来说,这是一个有效的选择,尽管乍一看似乎是一个丑陋的解决方法......