continuous-integration - 如何使用 CruiseControlNet 将集成属性传递给批处理文件?

标签 continuous-integration cruisecontrol.net ccnet-config

构建日志 在我的项目中,我可以看到这些属性:

<integrationProperties>
  <CCNetProject>Gdet_T</CCNetProject>
  ...
  <LastModificationDate>4/6/2010 1:29:04 PM</LastModificationDate>
  <LastChangeNumber>10841</LastChangeNumber>
</integrationProperties>

我要传递属性(property)CCNetProjectLastChangeNumber到批处理文件。 它适用于 CCNetProject , 因为它可以在批处理中用作环境变量 %CCNetProject% .

但它不适用于其他属性 (那些不是以 CCnet 前缀开头)为 LastChangeNumberLastModificationDate .

我试图将它作为参数传递,但它失败了!
<exec>
  <executable>$(WorkingFolderBase)\MyBatch.bat</executable>
  <baseDirectory>$(WorkingFolderBase)\</baseDirectory>
  <buildArgs>$(LastModificationDate)</buildArgs>
</exec>

我试图将它作为环境变量传递,但它失败了:
<exec>
  <executable>$(WorkingFolderBase)\MyBatch.bat</executable>
  <baseDirectory>$(WorkingFolderBase)\</baseDirectory>
  <environment>
    <variable>
      <name>svn_label</name>
      <value>"${LastModificationDate}"</value>
    </variable>
  </environment>
</exec>

当我显示参数或变量时,结果始终相同:空字符串或变量名称 $(svn_label)
我确定这很简单,但是......我找不到!任何的想法 ?

最佳答案

CCNET 将以下参数传递给外部程序:

CCNetArtifactDirectory 
CCNetBuildCondition 
CCNetBuildDate 
CCNetBuildTime 
CCNetFailureUsers 
CCNetIntegrationStatus 
CCNetLabel 
CCNetLastIntegrationStatus 
CCNetListenerFile 
CCNetModifyingUsers 
CCNetNumericLabel 
CCNetProject 
CCNetProjectUrl 
CCNetRequestSource 
CCNetUser 
CCNetWorkingDirectory 

如您所见 LastIntegrationStatus例如可通过 CCNetLastIntegrationStatus 获得但是 LastModificationDate例如没有等价物。

你可以通过 <buildArgs> 传递额外的参数或 <environment>但是 您拥有的 CCNET 配置 无权限关于上面提到的积分属性。大多数从 CCNET 开始的人(包括我自己)都会尝试类似 <buildArgs>$(CCNetProject)</buildArgs> 的方法。并失败。

看看我的 answer to a similar question .

抱歉,我无法提供更好的解决方案。

更新(关于 Thinker's suggestion):

使用 $[$CCNetLabel] CCNET 里面的配置好像不行。

坦率地说,如果有的话,我会感到相当惊讶。配置是静态的,而 CCNetLabel是动态的,可能会随着每个集成构建而改变。假设您可以访问配置中的这些动态属性,配置可能会随着每次构建而改变。由于更改配置意味着自动重新启动 CCNET 服务器,因此每次构建都会导致服务器重新启动。实际上不是一种理想的行为,是吗?

关于continuous-integration - 如何使用 CruiseControlNet 将集成属性传递给批处理文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2592059/

相关文章:

build - 如何在多个 CruiseControl.NET 构建之间共享标签值?

Msbuild 10 和 Nant 不复制 weboutput

CruiseControl.net Windows server 2008 图像丢失

cruisecontrol.net - 使用 Ant for CruiseControl.NET 配置计划 block 时检测到未使用的节点

ios - 是否可以为 iOS 应用程序开发设置持续集成和持续部署?

svn - 如何让 Jenkins 作业显示来自另一个存储库的更改?

Github Action 触发另一个 repo 更新(push、pull_request)

ccnet-config - ccnet webdashboard 身份验证表单模式如何设置以使其安全

CruiseControl.NET中的辅助支持-如何清理和更新构建文件夹?

ruby-on-rails - 使用 Capistrano 自动构建 Rails