使用外部文件更改作为触发器

Using an external file change as trigger

我正在使用 drake 来编排一个工作流,如果外部闪亮应用程序(存储在 project_dir/shiny/app.R 中)发生变化,我想触发一个 docker 构建。

shiny_plan <- drake_plan(

  docker_build = system(command = "docker build shiny/. -t docker.com/my-dash")

)

鉴于 drake 无助于创建 app.R,我如何检测 app.R 中的变化以触发目标 docker_build

最佳

你可以把 file_in() 放在任何你想要的地方。

shiny_plan <- drake_plan(
  docker_build = {
    file_in("app.R")
    system(command = "docker build shiny/. -t docker.com/my-dash")
  }
)

或者,您可以使 Docker 构建依赖于 UI 和服务器对象。这样,如果您所做的只是更改应用代码中的注释或空格,Docker 将不会不必要地触发。

shiny_plan <- drake_plan(
  docker_build = {
    ui
    server
    system(command = "docker build shiny/. -t docker.com/my-dash")
  }
)