我正在尝试迁移我编写的Ant脚本,以便在Jenkins框架内构建和部署项目(而不是从SVN post-commit钩子触发,这是我们最初处理事物的权宜之计).一切都很棒,除了我需要为部署步骤暂存文件,我想把它们填入Jenkins为工作创建的'build'目录中(因为我的build.xml位于非项目特定的位置,$ { basedir}和$ {user.dir}没有指向所需的位置.
在Jenkins配置中,我设置了以下内容:
[Jenkins]构建记录根目录:E:/ builds/$ {ITEM_FULLNAME}
[特定于作业]构建文件:C:\ vc-tools\shadow\build.xml
在运行构建时,适当地启动脚本并创建特定于作业的构建目录,例如
E:\建立\测试\ 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}
Run Code Online (Sandbox Code Playgroud)
注意:对于最后一个,我试过传递:
BuildDir=E:/builds/${ITEM_FULLNAME}
Run Code Online (Sandbox Code Playgroud)
作为从Jenkins中的作业配置的属性(显然$ {}扩展不会在此上下文中发生).
根据文档,没有特定的环境变量被设置为完整的构建目录路径 - 我可以通过硬编码E:\ builds root并添加到$ {env.build_id}来捏造它,但希望会有从Jenkins公开的东西(Ant属性和环境变量)访问完整路径的简单方法,以使脚本更灵活.
我使用的是Jenkins版本1.476.
谢谢
Mar*_*nor 12
对于您的项目来说,在源代码旁边包含它的构建逻辑副本总是一个好主意.它使您的构建在整个机器上更加便携.
已经说过,设置包含公共共享构建逻辑的构建文件也很常见.ANT定义了以下任务来支持此类活动:
因此,一种可能的解决方案是在项目目录的根目录中存储一个简单的build.xml文件:
<project name="my project" default="build">
<include file="C:\vc-tools\shadow\common-build-1.0.xml" as="common"/>
<target name="build" depends="common.build"/>
</project>
Run Code Online (Sandbox Code Playgroud)
笔记:
当Jenkins运行作业时,会设置许多环境变量.
以下ANT逻辑将打印Jenkins工作空间目录的位置:
<property environment="env"/>
<target name="run">
<echo message="Jenkins workspace: ${env.WORKSPACE}"/>
<echo message="Job directory: ${env.WORKSPACE}../../jobs/${env.JOB_NAME}"/>
<echo message="Build data: ${env.WORKSPACE}../../jobs/${env.JOB_NAME}/build/${env.BUILD_ID}"/>
</target>
Run Code Online (Sandbox Code Playgroud)
这些天(Jenkins v.1.484)从上面的答案中"运行"目标应如下所示:
<target name="run">
<echo message="Jenkins workspace: ${env.WORKSPACE}"/>
<echo message="Job directory: ${env.WORKSPACE}/../../${env.JOB_NAME}"/>
<echo message="Build data: ${env.WORKSPACE}/../../${env.JOB_NAME}/builds/${env.BUILD_ID}"/>
</target>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
28054 次 |
| 最近记录: |