使用外部文件更改作为触发器
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")
}
)
我正在使用 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")
}
)