如何在Jenkins

时间:2017-11-06 18:47:22

标签: java git jenkins dependencies continuous-integration

我试图找出解决这个问题的方法已经很长时间了,但还没有找到好的解决方案,也许有人可以帮我提出任何建议或良好做法。

在这里:

我有三个git项目:compilerweb,compiler和common

  • 这三个项目指向git的主分支
  • 编译器和common是java项目,compilerweb是java web项目
  • 我已经设置了三个jenkins工作来单独编译每个项目
  • 项目之间的依赖关系如下:( - >)意味着取决于:
    • compilerweb - >编译器 - >通用
  • 编译器项目作为独立项目启动,并由compilerweb用作库
  • compilerweb具有集成测试

我想要做的是配置一个持续集成架构,其中任何提交和推送三个项目中的任何一个都会启动完整版本以确保 整个项目的稳定性,但我不确定采取何种程序或策略

我首先尝试的是以下内容:

  • 如果检测到普通的推送,那么编译common,然后编译器,最后是compileweb,启动集成测试
  • 如果在编译器中检测到推送,则编译编译器,最后是启动集成测试的compilerweb
  • 如果在compilerweb中检测到推送,则编译启动集成测试的compilerweb

但是使用这个模式,例如,如果开发人员同时处理这三个项目,然后他执行提交并推送compilerweb项目,那么将启动完整版本而不需要他的共同更改和编译器构建将失败。

当项目之间存在依赖关系并且所有项目都指向主分支时,实现持续集成的标准方法是什么?

非常感谢任何建议或回答! :)

1 个答案:

答案 0 :(得分:2)

配置一个作业以启动另一个作业。

common 完成构建并成功时,启动编译器

编译器成功完成时,启动 compilerweb

您可以在" Post build Action" >> "建立另一个项目"

配置为在推送到任何git存储库时触发编译器作业。

这样,无论推动发生在哪里,每次你都会完成3个工作。

您可以为作业添加延迟,以避免提交问题并推送所有git回购。

延迟触发作业

http://myjenkins/job/jobname/build?delay=15

如果提交有或没有特定的消息,另一种方法就是运行构建。为此,您需要与开发人员交谈。 如果他们要进行需要在3个repos上提交的更改,则仅在最后一次提交时启动构建。

例如:

如果提交中包含单词"" ON HOLD"则将脚本配置为不启动构建。在消息中。