我有一个包含我添加到TeamCity中的各种包的项目的Git回购。如何正确触发TeamCity构建git上的单个包?
回购组织这样的:
README.md
packages/
packages/buildscript
packages/packageOne/manifest (and files)
packages/packageTwo/manifest (and files)
packages/packageThree/manifest (and files)
我想配置TeamCity的执行buildscript建立一个特定的包时,它要么修改或添加到该回购协议。
我已经有了运行buildscript作为构建步骤的一部分,但我不知道如何确保每个包下载和buildscript跑了每一个。
目前buildscript接收包名称,做一些工作,然后运行一个NuGet包。
我是在想,我必须写构建检测哪些软件包已经改变步骤正确,然后做每包所需的行动?就像这样:
拉包
软件包运行buildscript
推到的NuGet饲料
还是有内置的功能做一些步骤?
编辑:
目前,我有它设置,使后更改了Git的回购做,所有的包都将被重建......这显然是很麻烦。
似乎我需要为每个包创建一个构建配置,如果我希望它们单独触发。这发生在我
一种解决方案是有一个步骤,它确定了哪些软件包自上次构建更新,然后执行为他们每个人的构建脚本。因此,我现在正在寻求建议有效的方法,可能涉及在某些构建步骤脚本中运行Git命令。
感谢您的信息!我最终修改了我的构建步骤,如下所示: 'Get-Content“%system.teamcity.build.changedFiles。file%“| Select-String -Pattern”packages/*“|%{($ _ -split”:“)[0]} |%{($ _ -split”/“)[1]} | Sort-Object -Unique | Where-Object {Test-Path $ _ -PathType容器} |%{。\ build $ _}' 关于以下更改: 'packages/packageOne/manifest.nuspec:CHANGED:[hash] 包/ packageTwo /工具/ chocolateyInstall.ps1:CHANGED:[散列] 包/ README.md:CHANGED:[散列] file.txt的:CHANGED:[散列] README.md Otherscript.ps1' packageOne& packageTwo将脚本运行:) –
对SE的第一评论,所以我不知道有关字符限制,有点搞砸了我的意图评论,但我希望任何人想知道我如何结束去得到这是它的要点。 –