Current section

Files

Jump to
livebook lib livebook release.ex
Raw

lib/livebook/release.ex

defmodule Livebook.Release do
require Logger
@doc """
Runs the setup for all apps deployed from directory on startup.
"""
def warmup_apps() do
start_app()
if apps_path = Livebook.Config.apps_path() do
case Livebook.Config.apps_path_warmup() do
:manual ->
:ok
other ->
Livebook.Config.abort!(
"expected apps warmup mode to be :manual, got: #{inspect(other)}." <>
" Make sure to set LIVEBOOK_APPS_PATH_WARMUP=manual"
)
end
app_specs =
Livebook.Apps.build_app_specs_in_dir(apps_path,
hub_id: Livebook.Config.apps_path_hub_id()
)
if app_specs != [] do
Logger.info("Running app warmups")
for app_spec <- app_specs do
with {:error, message} <- Livebook.Apps.warmup_app(app_spec) do
Logger.info("Warmup failed for app #{app_spec.slug}, #{message}")
end
end
end
end
end
defp start_app() do
Application.load(:livebook)
Application.put_env(:livebook, :serverless, true)
{:ok, _} = Application.ensure_all_started(:livebook)
end
end