我正在TeamCity中构建nuget,并希望在签入触发构建时将后缀“-pre”附加到版本号。当手动触发构建时,我希望能够提供一个复选框,如果这个版本应该是预览版本或者是值得的。“
我有一个像这样创建的配置参数:
在这种情况下,我总是将-pre
添加到版本号,即使我手动触发构建并且不选中复选框。
如果我从参数的默认值中删除值-pre
,则复选框提示符按预期工作。但是当通过签入触发我的构建时,系统不会给我-pre
后缀,我最终会生成一个只能手动创建的生产版本。
任何实现我需要的方式?
或者我只想在构建的手动触发器上发布nugets并且不关心预发布,但我似乎无法找到任何方法来检查构建是手动触发还是通过入住。
答案 0 :(得分:3)
第一部分相对简单,使用步骤检查复选框的值并根据它设置参数 - 这里我使用了powershell但这可以用bash完成(我假设powershell,因为你正在制作nuget包)
请注意,我已经改变了你的逻辑,但它会产生你想要的结果。
您应该可以在需要时使用%ReleaseSuffix%。
关于你的第二个要求,我再次假设你只想发布一个nuget包,它基于它是Release版本而不是Pre-Release(如果我已经假设这个错误地让我知道)
基于参数值的条件构建步骤是我在YouTrack上已经跟踪了一段时间的事情。这是自2011年以来的要求,但仍然没有作为一个功能。我在2014年作为一个解决方案发表了这个评论,但是没有Java技能(你可能) - My comment on YouTrack Issue
有另一种方法可以使其工作,这可能需要对构建配置进行一些修改。
如果你的"发布NuGet"步骤不是由任何事物触发的(假设它由之前的构建完成触发)然后你可以有一个构建步骤
它可能看起来像这样 - 只需确保替换突出显示的位
希望这有帮助
答案 1 :(得分:2)