IMO,这个用例确实需要在插件的网页/文档上特别说明。
假设我有一个名为 U 代表上游和 D 代表下游的项目。当 U 完成构建时,我希望 D 签出 U 刚刚构建的相同版本。您将始终结帐 HEAD。
这是我所做的:
- 在 U 中,我为“在其他项目上触发参数化构建”添加了“构建后操作”。
- 对于“要构建的项目”,我输入了 D 并且仅在“稳定”时构建。
- 我为“Subversion revision”添加了一个触发器。
- 我保存了这个配置
现在我不知道接下来我应该做什么,但我没有收到任何反馈表明这是有效的。事实上,即使这个提交给插件源的测试用例也表明这就是我应该做的。
但是,如果我猜的话,我想我应该将 U 标记为参数化构建并为其添加一个参数。这个参数应该命名为 U 发送给 D 的内容。但是,如果我有正确的想法,我不知道应该如何命名这个参数。D 的控制台日志和 U 的控制台日志都没有提到任何新参数。
我猜测并在 U 中创建了一个名为“SVN_REVISION”的字符串参数,并将其默认为 -1,但这没有任何效果。每次 D 触发构建时,SVN_REVISION 默认为 -1。
这是在export
D 项目上运行的输出:
+ export
export BUILD_ID="2013-03-20_09-48-32"
export BUILD_NUMBER="4522"
export BUILD_TAG="jenkins-D-4522"
export BUILD_URL="http://my.jenkins.server.com:8081/job/D/4522/"
export EXECUTOR_NUMBER="2"
export HUDSON_COOKIE="8ec52f7a-d60d-4640-83a9-dbed7351b32a"
export HUDSON_HOME="/opt/hudson"
export HUDSON_SERVER_COOKIE="633967fcd1d6f7b38a85042ada5c3949"
export HUDSON_URL="http://my.jenkins.server.com:8081/"
export JAVA_HOME="/opt/java"
export JENKINS_HOME="/opt/hudson"
export JENKINS_SERVER_COOKIE="633967fcd1d6f7b38a85042ada5c3949"
export JENKINS_URL="http://my.jenkins.server.com:8081/"
export JOB_NAME="D"
export JOB_URL="http://my.jenkins.server.com:8081/job/D/"
export LANG="en_US.UTF-8"
export LD_LIBRARY_PATH="/opt/jdk1.6.0_30/jre/lib/i386/server:/opt/jdk1.6.0_30/jre/lib/i386:/opt/jdk1.6.0_30/jre/../lib/i386"
export M2="/opt/maven/bin"
export M2_HOME="/opt/maven"
export MAVEN_OPTS="-Xms256m -Xmx512m"
export NHINC_PROPERTIES_DIR="/opt/nhinc/Properties"
export NLSPATH="/usr/dt/lib/nls/msg/%L/%N.cat"
export NODE_LABELS="master"
export NODE_NAME="master"
export OLDPWD
export PATH="/sbin:/usr/sbin:/bin:/usr/bin:/opt/java/bin:/opt/apache-ant-1.8.1/bin:/usr/local/bin:/opt/maven/bin"
export PWD="/opt/hudson/jobs/D/workspace"
export SHLVL="2"
export SVN_REVISION="24186"
export SVN_URL="https://a/url/trunk"
export TERM="xterm"
export WORKSPACE="/opt/hudson/jobs/D/workspace"
export XFILESEARCHPATH="/usr/dt/app-defaults/%L/Dt"
export _="/opt/java/bin/java"
所以看起来它有一个 SVN_REVISION 环境变量。但我认为这不一定来自插件。我的证据来自詹金斯对“存储库 URL”的描述:
在构建过程中,已签出的模块的修订号可通过环境变量 SVN_REVISION 获得,前提是您只签出一个模块。如果您检查了多个模块,请使用 svnversion 命令。如果您有多个模块签出,您可以使用 svnversion 命令获取修订信息,或者您可以使用 SVN_REVISION_ 环境变量,其中 1 是与配置的位置匹配的基于 1 的索引。这些 URL 可通过类似的 SVN_URL_ 环境变量获得。
但是让我们假设这是从 U 而不是 D 设置的。我如何让 D 使用它,或者当 D 被触发时我怎么知道它正在使用它?
让我问一个我接下来可能需要问的问题。一旦我知道我需要使用的参数的名称,我该如何修改 D 的配置以便它检查该修订?我是否修改“存储库 URL”以将 a@${PARAMETER_NAME}
放在末尾或其他什么地方?