Current section

Files

Jump to
mandrag lib mix tasks mandrag.build.ex
Raw

lib/mix/tasks/mandrag.build.ex

defmodule Mix.Tasks.Mandrag.Build do
use Mix.Task
import Mandrag
def run(_), do: build(location)
defp build(:local) do
message "Building locally."
Mix.Task.run "compile"
Mix.Shell.IO.cmd "npm install"
Mix.Shell.IO.cmd "node_modules/brunch/bin/brunch build --production"
Mix.Task.run "phoenix.digest", []
Mix.Task.run "release", []
end
defp build(:remote) do
message "Building on target."
ssh "cd #{name} && git pull"
scp "config/prod.secret.exs", "#{name}/config/prod.secret.exs"
ssh "cd #{name} && MIX_ENV=#{Mix.env} mix deps.get"
ssh "cd #{name} && MIX_ENV=#{Mix.env} mix compile"
ssh "cd #{name} && npm install"
ssh "cd #{name} && node_modules/brunch/bin/brunch build --production"
ssh "cd #{name} && MIX_ENV=#{Mix.env} mix phoenix.digest"
ssh "cd #{name} && MIX_ENV=#{Mix.env} mix release"
end
end