Packages
deli
0.1.21
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/mix/tasks/deli/deli.release.ex
defmodule Mix.Tasks.Deli.Release do
use Mix.Task
import Deli.Shell
alias Deli.{Release, Versioning}
@moduledoc """
To build a release of current master into staging, do:
$ mix deli.release
Or, if you want to specify a version or target environment, do:
$ mix deli.release --version=1.0.0 --target=prod
You can also specify if you want assets to be included or not.
It defaults to false, but you can change that in `config :deli, assets: true`
$ mix deli -t prod -a
"""
@shortdoc "Only builds application release (without deploy)"
def run(args) do
_ = Application.ensure_all_started(:deli)
options = args |> parse_options
if assets?(options), do: System.put_env("ASSETS", "1")
tag = options |> Versioning.fetch_version_tag()
target = options |> Keyword.fetch!(:target)
Release.build(tag, target)
end
defp assets?(options) do
if options |> Keyword.get(:assets) do
true
else
:deli |> Application.get_env(:assets, false)
end
end
end