shake-build-system - 如何使用抖动跟踪“运行时”依赖项?
问题描述
我想扩展我们基于抖动的构建系统以包括运行集成测试,但是运行这些测试需要启动一些 docker 容器,这些容器依赖于测试并且可能会或可能不会作为构建过程的一部分进行重建。
简而言之,我需要跟踪“实时”进程,如果它们的底层图像发生变化,则杀死/重新启动它们。我怎么能用摇晃来实现呢?
解决方案
我将假设我们想要在docker image
更改时运行和image
更改(将其概括为任何名称并不难,但会分散重要部分的注意力)。
想象一下,服务一直在运行,永远不会跌倒,并且完全在 Shake 的控制之下。我们可以写:
"runner" %> \out -> do
need ["image"]
cmd_ "docker kill"
cmd_ "docker start image"
writeFile' out ""
在这里,我们有一个产生 的规则runner
,并且作为副作用取决于image
并开始/停止docker
。任何使用跑步者的测试都应该need ["runner"]
在开始之前进行。如果他们还依赖于图像的内容,他们应该这样做need ["runner","image"]
。
如果图像不受 Shake 控制,并且其他人正在刺激它们,您可能想要addOracle
定义一个检测当前正在运行的 docker 图像的 oracle,并依赖于runner
.
推荐阅读
- html - 添加 CSS 属性后,水平规则不显示
- javascript - 如果第一个不起作用,则使用 axios 提出新请求
- c# - 如何将控制台构建添加到 C# Windows 服务应用程序并显示控制台?
- angular - 带有行单击和操作按钮的角度材料表作为单独的操作
- reporting-services - SSRS 报告中损坏的图像框
- labview - myRIO 模块 - 对 FPGA 串行闪存进行编程与仅对 FPGA 进行编程
- flutter - 每次都可靠地提取 Flutter List 中的字符串
- postgresql - 使用 Kotlin Exposed 删除带有复杂过滤器的查询
- r - 州多边形的相邻邮政编码
- ide - Visual Studio 2019 无法覆盖 CodeStyle 选项