当前位置:  开发笔记 > 运维 > 正文

使用Hudson构建特定的git提交

如何解决《使用Hudson构建特定的git提交》经验,为你挑选了3个好方法。

我有一个哈德森构建服务器.源代码由git存储库管理.对于每个构建,都会检出并编译最新版本.现在我想告诉hudson不要使用最新版本,而是使用旧版本的代码(由我指定).

在哈德森,我有两个可以设置的参数.第一个"存储库名称",默认值为"origin",第二个refspec为value +refs/heads/*:refs/remotes/origin/*.我尝试了类似origin/[commitid]或类似的东西+refs/heads/*:refs/remotes/origin/[commitid].但没有任何工作按预期.

我想我必须使用参数化作业,以便我可以将提交作为参数提供给作业.

我如何告诉hudson使用特定的提交而不是最新的提交?



1> izzekil..:

我只想更清楚地回答这个问题.如何使您的工作一步一步检查特定的提交:

    使用名称将字符串参数添加到作业中,让它COMMIT在我的示例中.

    选择Git作为SCM(由Jenkins Git插件提供).

    在Git SCM属性中设置您的repo属性.

    在Git SCM中,在要构建类型的分支段中,${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插件中的Prepare environment for the run步骤(您甚至可以使用Groovy).

此外,如果您没有看到我正在谈论的选项或它们不起作用,请确保您有一个新版本的Git插件在我的情况下它是2.2.0.


对于懒惰的,这也适用,而无需使用构建参数,可以简单地粘贴在提交标识为"分行打造".

2> 小智..:

您可以使用jenkins-git-plugin的branch参数来定义特定的提交ID.

然后Jenkins只会检查该提交而不是分支的负责人.


如果单击字段旁边的小问号(?),它会显示:`...可以通过在此字段中指定该修订的SHA1哈希来检出特定修订.这对我来说就像"正确的方式"去做吧".

3> 小智..:

就像文档说的那样:

git插件分支配置

将您的提交ID输入到"要构建的分支"设置.


@cauchy,此文档不在站点上,而是在您的Jenkins实例中,在作业配置中的“源代码管理”->“生成的分支”->?
推荐阅读
牛尾巴2010
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有