我正在尝试迁移我编写的 Ant 脚本,以从 Jenkins 框架内构建和部署项目(而不是从 SVN 提交后挂钩触发,这是我们最初处理事情的权宜之计)。一切都很好,除了我需要为部署步骤暂存文件,并且我想将它们填充到 Jenkins 为该工作创建的“构建”目录中(并且由于我的 build.xml 位于非项目特定的位置,${ basedir} 和 ${user.dir} 不指向所需的位置)。
在 Jenkins 配置中,我设置了以下内容:
[Jenkins] 构建记录根目录:E:/builds/${ITEM_FULLNAME}
[作业特定] 构建文件:C:\vc-tools\shadow\build.xml
运行构建时,会适当地启动脚本并创建特定于作业的构建目录,例如
E:\builds\Test\2012-08-07_12-51-21
我想从构建脚本中获取这个目录,但不知道如何。我尝试过的一些事情:
[echo] ${basedir}: C:\vc-tools\shadow
[echo] ${user.dir}: C:\vc-tools
[echo] ${env.workspace}: C:\Program Files (x86)\Jenkins\workspace\Test
[echo] ${env.build_id}: 2012-08-07_12-51-21
[echo] ${jenkins_home}: C:\Program Files (x86)\Jenkins
[echo] ${BuildDir}: E:/builds/${ITEM_FULLNAME}
注意:对于最后一个,我尝试传入:
BuildDir=E:/builds/${ITEM_FULLNAME}
作为从 Jenkins 中的作业配置的属性(显然 ${} 扩展不会在这种情况下发生)。
根据文档,没有设置为完整构建目录路径的特定环境变量——我可以通过硬编码 E:\builds 根目录并添加 ${env.build_id} 来伪造它,但希望会有一种从 Jenkins 公开的内容(Ant 属性和环境变量)访问完整路径的更简单方法,以使脚本更加灵活。
我正在使用 Jenkins 版本 1.476。
谢谢