gpt4 book ai didi

teamcity - TeamCity 中复选框参数的默认值

转载 作者:行者123 更新时间:2023-12-02 02:58:31 28 4
gpt4 key购买 nike

我正在 TeamCity 中构建 nuget,并且希望在 checkin 触发构建时将后缀“-pre”附加到版本号。当手动触发构建时,我希望能够提供一个复选框,以确定此构建应该是预览版本还是适合生产。

我已经创建了一个这样的配置参数:

Prerelease configuration parameter

-Pre is always added

在这种情况下,我总是将 -pre 添加到版本号中,即使我手动触发构建并且不选中该复选框。

如果我从参数的默认值中删除值 -pre,则复选框提示将按预期工作。但是,当我的构建通过 checkin 触发时,系统不会给我 -pre 后缀,最终我会得到一个只能手动创建的生产版本。

有什么方法可以实现我所需要的吗?

或者,我只想在构建的手动触发上发布 nuget,并不真正关心预发布,但我似乎找不到任何方法来检查构建是手动触发的还是通过签到。

最佳答案

第一部分相对简单,使用一个步骤来检查复选框的值并根据它设置一个参数 - 这里我使用了 powershell,但这可以在 bash 中完成(我假设 powershell 和你一样)重新生成 nuget 包)

请注意,我稍微颠倒了您的逻辑,但它产生了您想要的结果。

  1. 定义两个变量

Variables

  • 设置复选框
  • Checkbox definition

  • 设置两个构建步骤
  • Build Steps

  • 第一步,测试参数并用它来设置另一个参数
  • First Step

  • 在第二步中,我将证明该值已正确设置
  • enter image description here

    您应该能够在需要时使用 %ReleaseSuffix%

    关于你的第二个要求,我再次假设你只想发布一个基于发布构建而不是预发布的 nuget 包(如果我错误地假设了这一点,请告诉我) )

    基于参数值的条件构建步骤是我在 YouTrack 上跟踪了一段时间的内容。自 2011 年以来就已提出要求,但仍未将其作为一项功能纳入其中。我在 2014 年发表此评论作为一种解决方法,但没有 Java 技能(你可能会)- My comment on YouTrack Issue

    还有另一种方法可以使其正常工作,这可能需要对您的构建配置进行一些修改。

    如果您的“发布 NuGet”步骤没有被任何事情触发(假设它是由之前的构建完成触发的),那么您可以有一个构建步骤

    • 检查 %ReleaseSuffix% 参数
    • 调用 REST API 来触发构建以发布 NuGet

    它可能看起来像这样 - 只需确保替换突出显示的位

    Trigger Build

    TeamCity Documentation

    希望这有帮助

    关于teamcity - TeamCity 中复选框参数的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30270315/

    28 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com