gpt4 book ai didi

eclipse - 使用 Jenkins/Hudson 的集成管理器 Git 工作流

转载 作者:太空狗 更新时间:2023-10-29 12:55:08 26 4
gpt4 key购买 nike

我正在尝试实现修改后的 Integration-Manager 工作流程,类似于 ProGit 中描述的内容.

Diagram of the Integration-Manager workflow

我希望开发人员在发布他们的代码之前在本地 merge ,而不是执行 merge 的集成管理器,并且我想要一个执行我们的持续集成标准的Quality Gateway,例如最低水平的代码覆盖率和 100% 的测试通过,然后才允许代码进入 blessed 存储库以供其他开发人员检查。这个想法是 blessed 存储库中的代码始终满足我们定义和构建的最低标准。

我希望 Jenkins 扮演质量网关的角色,只在构建成功时才将代码推送到受祝福的存储库。

到目前为止,我已经设置了系统,以便有以下公共(public)存储库:blessed 存储库,Jenkins 构建服务器上的存储库,这是一个通过 gitosis 访问的裸存储库,当然还有开发人员自己的存储库。

我让开发人员从 blessed 仓库中 pull 并推送到集成仓库。现在我正试图让 Jenkins 将成功的构建从集成仓库推送到 blessed 仓库。

到目前为止,我所看到的唯一与我试图实现的类似的选项是“Push Only If Build Succeeds”选项,在 Post Build 的 Git Publisher 设置中Jenkins 项目配置中的操作。但是,该选项不允许您指定要推送到的推送 URL 或远程。

据我了解,Git Publisher 设置会将 repo Jenkins 的克隆推送到其工作区中,并返回到 Jenkins 的公共(public) repo 中,但我想推送到不同的远程仓库。

有没有人对我如何让 Jenkins 推送到 blessed repo 有任何建议?

编辑 0:我尝试放置一个 Post Step 来执行推送命令到我的祝福存储库。这似乎有效,因为没有错误。然而,没有推送任何更改,日志显示 git 认为一切都是最新的:

[INFO] ------------------------------------------------------------------------ 
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1 minute 7 seconds
[INFO] Finished at: Fri Nov 18 16:10:50 UTC 2011
[INFO] Final Memory: 19M/45M
[INFO] ------------------------------------------------------------------------
channel stopped
[My Project] $ /bin/sh -xe /tmp/hudson5604254372179801803.sh + git push git@example.com:my-project.git --all
Everything up-to-date

我不知道为什么 git 认为没有什么可推送的,因为肯定有。

最佳答案

如何使用 Jenkins 的“仅在构建成功时推送”操作,在集成存储库上使用提交后或接收后 Hook ,以便在 Jenkins 成功构建后推送时推送到受祝福的存储库?

关于eclipse - 使用 Jenkins/Hudson 的集成管理器 Git 工作流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8183511/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com