Jef*_*tin 9 teamcity continuous-integration
我有一个包含多个代理的构建环境.
我想在我的构建中设置一个代理要求,以检测是否安装了某些软件.在某些情况下,我可以在env.Path中查找特定字符串.但有些软件不会修改Path.
我意识到在安装软件之后我可以编辑BuildAgent.properties文件来设置一个特定的属性,但我希望它更自动化.
具体的实例是我有一个使用MSDeploy来部署网站的构建,但是如果没有安装MSDeploy,它将无法工作.如何在构建中指定我需要安装了MSDeploy的代理?
据我所知,代理要求只需验证代理参数是否存在或设置的值即可工作。正如您所说,这需要<agent home>/conf/buildAgent.properties手动或以某种自动方式编辑配置文件。
在自动化方面,您可以采用编写充当代理引导程序的构建配置的方法;<agent home>/conf/buildAgent.properties即在所有代理上运行的构建(安排过夜/手动触发)并根据代理上的某些条件在文件中维护构建代理参数。像(伪)的东西:
if [ exists /path/to/MSDeploy ] then echo MSDeployExists to buildAgent.properties
这附带了一个很大的免责声明;我自己没有尝试过这一点,我相信代理会根据对此文件的更改自动重新启动,因此自动编辑该文件可能会出现问题。但这是一个以集中方式维护需求的潜在解决方案,如果它有效的话那就太好了。我使用类似的方法将自定义构建脚本引导到所有代理,以增强 TeamCity 中已经丰富的功能集。
| 归档时间: |
|
| 查看次数: |
1592 次 |
| 最近记录: |