【问题标题】:Jenkins and git building only the changed foldersJenkins 和 git 只构建更改的文件夹
【发布时间】:2018-02-05 23:20:56
【问题描述】:

我在 Jenkins 有一个多分支管道项目。我的 Jenkins 工作主要包括构建 dotnet-core docker 映像并将它们推送到 docker 存储库,然后使用 compose 文件在 Jenkins 从站上启动容器。在我的 VS 解决方案文件中,我在不同的文件夹中有 6-7 个项目。数量会增加。它们都是将在容器中运行的 docker 镜像。

目前,我为每个项目使用dotnet publish,然后使用 compose 文件构建图像。问题是,即使图像没有变化,我也需要构建所有这些。我只想构建未更改的应用程序。有没有办法让我过滤掉未更改的文件夹并只构建它们?

【问题讨论】:

  • 当有人提交时,它会触发工作,对吧?如果是这样,也许您可​​以找出哪些文件已更改,并基于此,您只构建受影响的项目?我不熟悉 VS 解决方案文件,但如果工作空间在构建之间保留,那么 VS 解决方案只会构建“脏”的项目?
  • 好吧,在构建之间保留工作区可能会起作用,但在这种情况下,删除的文件是个问题。奇怪的是,我曾在另一个项目上尝试过,当我选择不清理它时,工作区的大小不断增加。这可能是因为 MSBuild 的自动生成的文件。随着项目的发展,它们只会不断堆积。找出提交之间更改的文件夹会起作用,尽管它需要太多的脚本工作。感谢您的评论

标签: git docker jenkins microservices


【解决方案1】:

我认为分离到不同的存储库并为每个存储库设置不同的 jenkins 作业可能是有意义的。 然后,您将微服务架构拆分到不同的存储库中,您甚至可以测试运行每个微服务的 docker 映像的每个微服务。

这就是我们公司的做法。对我来说,最后看起来更好,但一开始可能需要很大的努力。

【讨论】:

  • 我们实际上是这样做的,然后我们的客户希望我们使用单个存储库,现在我们正在寻找解决方法。我同意,在微服务架构中分离存储库可能更有意义。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-10-17
  • 1970-01-01
  • 1970-01-01
  • 2013-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多