【发布时间】:2020-02-18 10:16:06
【问题描述】:
我的任务是将基于 gnu-make 的构建系统移动到 GitLab CI 并遇到了一个问题 - 是否有一个很好的模式来说明它应该如何工作?
问题是我创建了一个多阶段、多作业管道,并小心地将输出从作业 X 传递到作业 Y(例如)作为 GitLab CI artefacts 和 dependencies。然而,我继承的 Makefiles 对曾经构建的所有事物都有完全深入的知识,因此他们查看从 Job X 继承的 artefacts,尝试决定是否需要重建它们并最终重建了 Job X 构建的所有内容,因为 gnu-make 看不到 Job X 在 Job Y 的上下文中使用的中间构建输出。所以基本上所有东西都被构建了很多很多次,GitLab CI artefacts 几乎没用。
这感觉就像人们以前一定遇到过的东西,但我正在努力寻找任何指导。谁能指出一些很好的资源来解释解决这个问题的最佳模式?
谢谢!
【问题讨论】:
-
没有答案,但现在我正在通过将整个输出复制到工件中并从每个阶段构建越来越大的工件集来解决问题。一点也不漂亮:-(。