我有一台hudson build服务器。源代码由git存储库管理。对于每个构建,都会签出并编译最新版本。现在我想告诉hudson不要使用最新版本的代码,而是使用旧版本的代码(由我指定)。
在hudson中,我有两个参数可以设置。第一个“仓库名称”,默认值为"origin“,第二个refspec的值为+refs/heads/*:refs/remotes/origin/*。我尝试了一些像origin/[commitid]或+refs/heads/*:refs/remotes/origin/[commitid]这样的东西。但是,没有一件事情像预期的那样工作。
我想我必须使用参数化的作业,这样我才能将提交作为参数提供给作业。
我如何告诉hudson使用特定的提交而不是最新的提交?
发布于 2014-04-11 22:35:41
我只想让this回答得更清楚。如何让你的工作一步一步地签出一个特定的提交:
使用名称将字符串参数添加到作业中,使其在my example.
COMMIT (由example.
${COMMIT},它是对作业参数的引用,将在构建过程中解析。就是这样,启动构建,在日志中您将看到类似如下的内容:
Cloning the remote Git repository
Cloning repository ssh://your-repo.git
Fetching upstream changes from ssh://your-repo.git
using GIT_SSH to set credentials
Fetching upstream changes from ssh://your-repo.git
using GIT_SSH to set credentials
Checking out Revision af63e2102b65953316e512c0bb659578bb143a33 (detached)请注意,还有其他方法可以在SCM签出之前设置环境变量,例如,使用EnvInject Plugin中的Prepare environment for the run步骤(您甚至可以使用Groovy来完成此操作)。
另外,如果你没有看到我所说的选项,或者它们不起作用,请确保你有一个新版本的Git插件,在我的例子中是2.2.0。
发布于 2014-02-28 22:33:19
您可以使用jenkins-git-plugin的分支参数来定义特定的提交id。
然后,Jenkins将只签出该提交,而不是分支的头部。
发布于 2016-05-06 10:01:25
就像文档上说的:

在“要构建的分支”设置中输入您的提交id。
https://stackoverflow.com/questions/4207450
复制相似问题