标签: teamcity-9.0

仅在特定分支上运行构建步骤

我有一个构建配置,包含两个构建步骤"构建"和"部署".此构建配置使用Git VCS并配置为运行所有分支.

我们假设我目前有两个分支"master"和"Feature in Development".

我想将"部署"步骤分为两部分."部署生产"和"部署Beta".只有在更改主分支并且当前正在构建时,才应执行"部署生产"步骤.

是否有内置的可能性,或者我必须在脚本中手动检查%teamcity.build.branch.is_default%变量?

teamcity-9.0

6
推荐指数
1
解决办法
2396
查看次数

Gradle测试无法在teamcity上找到flowId

我们正在使用Teamcity 9.0.3,我们尝试使用测试运行gradle构建.但是,它失败了以下异常:

[15:25:41][:test] Failed to find flowId for [com.stub.AppTest]
[15:25:41][:test] java.lang.NullPointerException: Failed to find flowId for [com.stub.AppTest]
[15:25:41][:test]   at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[15:25:41][:test]   at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
[15:25:41][:test]   at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
[15:25:41][:test]   at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
Run Code Online (Sandbox Code Playgroud)

我使用gradle包装器和它的2.5版本以及用于构建的teamcity代理.我怎样才能解决这个问题?

java gradle teamcity-9.0

6
推荐指数
1
解决办法
885
查看次数

在构建失败条件下需要跳过TeamCity步骤

根据我对TeamCity如何工作的观察,我注意到在完成所有步骤之后评估构建失败条件.这非常烦人,因为如果遇到任何构建失败条件,我就无法执行一个步骤.

我不是指常见的构建失败条件,例如"至少一个测试失败".我指的是手动添加的故障情况,例如公制更改.

当我检查构建日志时,我清楚地看到所有步骤都已执行,并且最后它只评估构建失败条件,并记录相应的错误(如果有的话).但是在这个过程中为时已晚,因为条件步骤(必须基于"如果构建状态成功则仅执行"失败)已经执行.

问题:我怎样才能做到这一点?

从上面可以看出,我已经尝试了一个条件步骤并添加了构建失败条件,但无法实现所需的结果.

为清晰起见添加:

基本上,我有一个部署应用程序的步骤.但是,我的期望是,如果满足构建失败条件,我不应该部署.我所拥有的构建失败条件的示例是度量标准更改.显然,这可以表示为构建失败条件,并且我可以在构建状态不成功的情况下使构建步骤失败.然而,似乎不是构建步骤将如何表现,所以我很困惑(我认为这是构建步骤中条件的目的).我错过了什么?

teamcity build teamcity-9.0

6
推荐指数
1
解决办法
999
查看次数

将Team City参数传递给PowerShell文件

我在Team City中定义了以下参数:

团队城市参数

我想将此参数传递给我拥有的powershell脚本(将使用版本号更新xml文件).

步骤参数作为参数

但是这会将实际文本%version%插入到脚本中(不会替换参数的实际值.)

但是,我知道我的脚本正在运行,因为如果我对这样的值进行硬编码,那么它的工作原理如下:

步骤与硬编码参数

当用作PowerShell脚本参数时,有没有办法让%version%转换为实际值?

powershell teamcity powershell-2.0 teamcity-9.0

6
推荐指数
1
解决办法
8949
查看次数

动态改变'teamcity.build.branch'

我想根据构建管道的另一个TC构建配置部分的结果动态设置'teamcity.build.branch'的值.

这甚至可能吗?看起来值是在构建管道的开始处评估和使用的.

用例:

  • 我正在执行将生成唯一编号的TC构建配置
  • 在同一管道的连接TC构建配置部分中,我希望在'teamcity.build.branch'中使用该数字 - 仅用于可视化目的

我已经使用消息服务覆盖参数,但不考虑更改.看起来这个值是在构建过程的早期阶段读取的.

teamcity teamcity-9.0

6
推荐指数
1
解决办法
3675
查看次数

如何为元运行器提示TeamCity配置参数?

我想创建元运行器,它将要求用户选中复选框('prompt'配置参数)以确认部署到生产.它包含powershell脚本,用于验证是否选中了复选框.这是meta-runner的代码:

<?xml version="1.0" encoding="UTF-8"?>
<meta-runner name="Confirm deploy to production">
  <description>Force user to check checkbox to confirm deploy to production</description>
  <settings>
    <parameters>
      <param name="deploy.to.production.confirmation.checkbox" value="false" spec="checkbox description='Are you sure?' label='This is deployment to PRODUCTION environment.' uncheckedValue='false' display='prompt' checkedValue='true'" />
    </parameters>
    <build-runners>
      <runner name="Confirm deploy to production" type="jetbrains_powershell">
        <parameters>
          <param name="jetbrains_powershell_bitness" value="x86" />
          <param name="jetbrains_powershell_errorToError" value="false" />
          <param name="jetbrains_powershell_execution" value="PS1" />
          <param name="jetbrains_powershell_script_code"><![CDATA[trap
{
    write-output $_
    ##teamcity[buildStatus status='FAILURE' ]
    exit 1
}
write-host "##teamcity[message text='Starting confirmation validation...']"
if("%deploy.to.production.confirmation.checkbox%" -eq "false"){
    write-host "##teamcity[message …
Run Code Online (Sandbox Code Playgroud)

teamcity teamcity-9.0

5
推荐指数
1
解决办法
1270
查看次数

有没有办法在TeamCity中强制参数的默认值,并且一旦设置了不同的值就不会丢失它?

我有一个参数,我正在显示一个提示.我为它设置了一个默认值,并且工作正常.
然而,不起作用的是,如果我在运行构建时选择输入不同的值,那么在下一次构建时,该值将自动成为新的默认值,可以这么说.

我希望默认值始终是固定的,如果在字段中输入不同的值,那么该值将仅用于此构建(并且下一个构建将回退到此参数的固定值,默认值).

这有可能吗?怎么办?

teamcity teamcity-9.0

5
推荐指数
2
解决办法
1587
查看次数

TeamCity Parameterise VCS密码

我正在运行TeamCity 9x,它似乎不支持VCS密码参数,这意味着我必须使用SSH密钥(证明很难,但这是一个单独的问题)或输入每个构建配置的密码,这是不可接受的,因为我们将最终有超过100个构建配置,所以更改密码将是非常艰巨的.

有没有办法可以指定一次密码并将其注入每个VCS根目录?

teamcity teamcity-9.0

5
推荐指数
1
解决办法
1392
查看次数

如何删除所有版本中的 TeamCity 标签?

我找到删除 TeamCity 标签的唯一方法是从所有版本中删除对该标签的所有引用。这是一个手动且费力的过程。有没有办法自动完成?

teamcity teamcity-9.0

5
推荐指数
1
解决办法
974
查看次数

无法在TeamCity中构建应用程序(.NET Framework 4.6.2)

我正在使用TeamCity 9.1.3。我们正在使用MSBuild Tools 15来构建我们的应用程序。我们的应用程序的目标是4.5.2,一切正常。现在,我们已将应用程序内部的框架更改为4.6.2。开发人员可以使用Visual Studio中的Framework 4.6.2在本地构建其应用程序。

但是在我们的TeamCity服务器上,构建失败。看来TeamCity仍在使用旧框架。我们确实安装了4.6.2框架。我们有MS BuildTools15。我们的MSBuild Tools版本是14,运行平台是x64。对于仍使用4.5.2框架的应用程序也是如此。

我们必须更改什么,以便此应用程序的TeamCity Job将使用4.6.2(通过使用与仍在使用4.5.2的其他应用程序相同的buildTools 15)。

我们在作业配置中的MSBuild版本按钮中看不到4.6.2。我们看到BuildTools 15,BuildTools 13和.NET Framework 4.5、4.0、3.5,...

我也看不到Windows的4.6.2框架和服务器的功能(但已安装在主机上)。我们正在使用Windows Server 2012 R2。

.net msbuild teamcity-9.0 .net-4.6.2

5
推荐指数
1
解决办法
2781
查看次数