- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在 TeamCity 中构建 nuget,并且希望在 checkin 触发构建时将后缀“-pre”附加到版本号。当手动触发构建时,我希望能够提供一个复选框,以确定此构建应该是预览版本还是适合生产。
我已经创建了一个这样的配置参数:
在这种情况下,我总是将 -pre
添加到版本号中,即使我手动触发构建并且不选中该复选框。
如果我从参数的默认值中删除值 -pre
,则复选框提示将按预期工作。但是,当我的构建通过 checkin 触发时,系统不会给我 -pre
后缀,最终我会得到一个只能手动创建的生产版本。
有什么方法可以实现我所需要的吗?
或者,我只想在构建的手动触发上发布 nuget,并不真正关心预发布,但我似乎找不到任何方法来检查构建是手动触发的还是通过签到。
最佳答案
第一部分相对简单,使用一个步骤来检查复选框的值并根据它设置一个参数 - 这里我使用了 powershell,但这可以在 bash 中完成(我假设 powershell 和你一样)重新生成 nuget 包)
请注意,我稍微颠倒了您的逻辑,但它产生了您想要的结果。
您应该能够在需要时使用 %ReleaseSuffix%。
关于你的第二个要求,我再次假设你只想发布一个基于发布构建而不是预发布的 nuget 包(如果我错误地假设了这一点,请告诉我) )
基于参数值的条件构建步骤是我在 YouTrack 上跟踪了一段时间的内容。自 2011 年以来就已提出要求,但仍未将其作为一项功能纳入其中。我在 2014 年发表此评论作为一种解决方法,但没有 Java 技能(你可能会)- My comment on YouTrack Issue
还有另一种方法可以使其正常工作,这可能需要对您的构建配置进行一些修改。
如果您的“发布 NuGet”步骤没有被任何事情触发(假设它是由之前的构建完成触发的),那么您可以有一个构建步骤
它可能看起来像这样 - 只需确保替换突出显示的位
希望这有帮助
关于teamcity - TeamCity 中复选框参数的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30270315/
我是一名优秀的程序员,十分优秀!