Packages
deli
0.1.14
0.2.0-rc.6
0.2.0-rc.5
0.2.0-rc.4
0.2.0-rc.3
0.2.0-rc.2
0.2.0-rc.1
0.1.28
0.1.27
0.1.26
0.1.25
0.1.23
0.1.22
0.1.21
0.1.20
0.1.19
0.1.18
0.1.17
0.1.15
0.1.14
0.1.13
0.1.12
0.1.11
0.1.10
0.1.9
0.1.8
retired
0.1.7
retired
0.1.6
retired
0.1.5
retired
0.1.4
retired
0.1.3
retired
0.1.2
retired
0.1.1
retired
0.1.0
retired
Easy deployment for Elixir apps
Current section
Files
Jump to
Current section
Files
lib/deli/deploy.ex
defmodule Deli.Deploy do
import Deli.Shell
alias Deli.{Check, Config}
@moduledoc false
def run(target) do
IO.puts("🤞")
edeliver_target = target |> Config.edeliver_target()
edeliver("deploy release to #{edeliver_target}")
restart_target(target)
end
defp restart_target(target) do
target |> Config.hosts() |> Enum.each(&restart_host/1)
end
defp restart_host(host) do
app = Config.app()
controller = Config.controller()
id = "#{app}@#{host}"
IO.puts("restarting #{id}...")
:ok = app |> controller.restart_host(host)
IO.puts([IO.ANSI.green(), "restarted #{id}", IO.ANSI.reset()])
:timer.sleep(1_000)
Check.run(host)
end
end