我是詹金斯的新手,我喜欢帮助(保证)我认为我应该如何安排工作。
最终目标非常简单。
目标1:当开发人员向mercurial repo提交代码时,Jenkins会提取更改,构建项目并运行单元测试。这种情况在一天中持续发生,因此如果开发人员破坏了某些内容,开发人员将获得尽可能早的反馈。
目标2:每晚,Jenkins从上面拉出最后一个稳定版本并运行自动UI测试。如果这些测试通过,它会在某处发布每晚构建。
我的工作配置达到了目标1,但我正在努力实现目标2。 (不是出版部分,用目标1的最后稳定构建来播种这个工作的想法)。
目前,我打算在HG回购中使用分支来实现这一点。
我的分支看起来像Main>> Int>>开发。
目标1中的工作将适用于Dev分支的提示。 如果构建成功并且测试通过则它将提交到Int分支。
目标2中的工作可以简单地处理Int分支的提示。
这是一般性的吗?
我一直在考虑/考虑: - 像Promoted Builds和Copy Artifacts这样的插件 - 参数化构建 - 下游工作
IMO我的目标相当普遍但我在网上找不到这种方法的很多例子。也许这是显而易见的,没有必要,但我只是想检查一下。
答案 0 :(得分:0)
过去我在工件库中存储了这样的生成工件。你可以使用像Nexus或Artifactory这样的东西,但我也只使用了平面文件系统。
你可以将构建工件放在源代码控制中,就像你说的那样,但是通常没有理由对编译版本进行版本控制(你应该可以根据版本号重新创建它们) - 它们通常是只需占用你回购中的大量空间。
如果您的版本号本质上是渐进式的,那么您每晚的工作应该能够轻松地提取最新版本。
答案 1 :(得分:0)
也许您可以捕获最后一个好的修订版ID并将其发布到某处。然后每晚构建可以使用最后已知的良好修订。执行此操作的方法可能会有所不同,但其使用的修订ID的概念我想在此处进行通信。这可以防止您必须创建单独的分支。