Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将TeamCity参数设置为日期变量_Teamcity - Fatal编程技术网

将TeamCity参数设置为日期变量

将TeamCity参数设置为日期变量,teamcity,Teamcity,我有一个TeamCity构建,它将一些参数传递给.exe并每天运行。一个参数是日期参数,当前设置为静态日期。它现在需要是动态的,传递当前日期 我尝试将该值设置为%env.BUILD\u START\u DATE%,但由于对该env变量的隐式要求,这使得我的所有代理都不兼容。我还尝试在DOS命令行脚本中设置日期,完全跳过了TC参数,但最终还是得到了隐含的要求。这里的首要答案是: 第二个答案表明需要一个TC插件,但是,它不需要插件,而且基本上已经完成。我是如何在第二个答案的变体上工作的: 1.)添加

我有一个TeamCity构建,它将一些参数传递给.exe并每天运行。一个参数是日期参数,当前设置为静态日期。它现在需要是动态的,传递当前日期

我尝试将该值设置为%env.BUILD\u START\u DATE%,但由于对该env变量的隐式要求,这使得我的所有代理都不兼容。我还尝试在DOS命令行脚本中设置日期,完全跳过了TC参数,但最终还是得到了隐含的要求。

这里的首要答案是: 第二个答案表明需要一个TC插件,但是,它不需要插件,而且基本上已经完成。我是如何在第二个答案的变体上工作的:

1.)添加powershell生成步骤以运行以下操作:

echo "##teamcity[setParameter name='env.BUILD_START_DATE' value='$([DateTime]::Now)']"
2.)在环境变量部分为env.BUILD_START_DATE指定一个默认值。如果没有默认值,TC认为拥有该值是构建代理的一个隐含要求,这使得它们都不兼容。

这里的首要答案是: 第二个答案表明需要一个TC插件,但是,它不需要插件,而且基本上已经完成。我是如何在第二个答案的变体上工作的:

1.)添加powershell生成步骤以运行以下操作:

echo "##teamcity[setParameter name='env.BUILD_START_DATE' value='$([DateTime]::Now)']"

2.)在环境变量部分为env.BUILD_START_DATE指定一个默认值。如果没有默认值,TC认为拥有该值是构建代理的一个隐含要求,这使得它们都不兼容。

如果您不熟悉PowerShell,这里有一个Bash方法

您可以使用脚本设置参数,并从下一个构建步骤中检索值

echo "##teamcity[setParameter name='env.BUILD_START_DATE' value='$(date +%%Y-%%m-%%dT%%H:%%M:%%S%%z)']"
之所以将
%%
加倍,是因为TeamCity将
%%
视为构建脚本中自己的参数


参数将具有ISO8601格式的时间戳。对于其他格式,请参见此处的各种Bash日期格式

如果您不熟悉PowerShell,这里有一个Bash方法

您可以使用脚本设置参数,并从下一个构建步骤中检索值

echo "##teamcity[setParameter name='env.BUILD_START_DATE' value='$(date +%%Y-%%m-%%dT%%H:%%M:%%S%%z)']"
之所以将
%%
加倍,是因为TeamCity将
%%
视为构建脚本中自己的参数


参数将具有ISO8601格式的时间戳。对于其他格式,请参见此处的各种Bash日期格式

您可以在配置中设置变量,该变量应在运行时被覆盖。我在TC参数中没有看到env.BUILD\u START\u DATE,但我看到了system.buildStartTime。我将它设置为一个虚拟值(我使用“[自动填充]”),一切正常。生成运行,system.buildStartTime在生成时被重写

您可以在配置中设置变量,该变量应在运行时被覆盖。我在TC参数中没有看到env.BUILD\u START\u DATE,但我看到了system.buildStartTime。我将它设置为一个虚拟值(我使用“[自动填充]”),一切正常。生成运行,system.buildStartTime在生成时被重写

Powershell已获取日期。您可以添加一个powershell脚本,以这种方式设置变量值。请使用此处答案的一些变体:如果您需要exe中的当前日期,那么为什么必须从TeamCity传递它?生成开始日期和当前日期只差几秒钟。exe需要接受任何日期。对于我的实现,它需要当前日期,但其他实现需要向它传递一个静态/特定日期。Powershell具有
获取日期
。您可以添加一个powershell脚本,以这种方式设置变量值。请使用此处答案的一些变体:如果您需要exe中的当前日期,那么为什么必须从TeamCity传递它?生成开始日期和当前日期只差几秒钟。exe需要接受任何日期。对于我的实现,它需要当前日期,但其他实现需要传递一个静态/特定日期。