refactor(release): bind discarded results of side-effecting release tasks
This commit is contained in:
parent
fd8e6ac178
commit
5352a635c6
1 changed files with 28 additions and 25 deletions
|
|
@ -22,7 +22,7 @@ defmodule Mv.Release do
|
||||||
require Logger
|
require Logger
|
||||||
|
|
||||||
def migrate do
|
def migrate do
|
||||||
load_app()
|
_ = load_app()
|
||||||
|
|
||||||
for repo <- repos() do
|
for repo <- repos() do
|
||||||
{:ok, _, _} = Ecto.Migrator.with_repo(repo, &Ecto.Migrator.run(&1, :up, all: true))
|
{:ok, _, _} = Ecto.Migrator.with_repo(repo, &Ecto.Migrator.run(&1, :up, all: true))
|
||||||
|
|
@ -75,14 +75,14 @@ defmodule Mv.Release do
|
||||||
dev_path = Path.join(priv, "repo/seeds_dev.exs")
|
dev_path = Path.join(priv, "repo/seeds_dev.exs")
|
||||||
|
|
||||||
prev = Code.compiler_options()
|
prev = Code.compiler_options()
|
||||||
Code.compiler_options(ignore_module_conflict: true)
|
_ = Code.compiler_options(ignore_module_conflict: true)
|
||||||
|
|
||||||
try do
|
try do
|
||||||
Code.eval_file(bootstrap_path)
|
_ = Code.eval_file(bootstrap_path)
|
||||||
IO.puts("✅ Bootstrap seeds completed.")
|
IO.puts("✅ Bootstrap seeds completed.")
|
||||||
|
|
||||||
if System.get_env("RUN_DEV_SEEDS") == "true" do
|
if System.get_env("RUN_DEV_SEEDS") == "true" do
|
||||||
Code.eval_file(dev_path)
|
_ = Code.eval_file(dev_path)
|
||||||
IO.puts("✅ Dev seeds completed.")
|
IO.puts("✅ Dev seeds completed.")
|
||||||
end
|
end
|
||||||
after
|
after
|
||||||
|
|
@ -92,7 +92,7 @@ defmodule Mv.Release do
|
||||||
end
|
end
|
||||||
|
|
||||||
def rollback(repo, version) do
|
def rollback(repo, version) do
|
||||||
load_app()
|
_ = load_app()
|
||||||
{:ok, _, _} = Ecto.Migrator.with_repo(repo, &Ecto.Migrator.run(&1, :down, to: version))
|
{:ok, _, _} = Ecto.Migrator.with_repo(repo, &Ecto.Migrator.run(&1, :down, to: version))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -139,10 +139,11 @@ defmodule Mv.Release do
|
||||||
{:ok, %Role{} = admin_role} ->
|
{:ok, %Role{} = admin_role} ->
|
||||||
case get_user_by_email(email) do
|
case get_user_by_email(email) do
|
||||||
{:ok, %User{} = user} ->
|
{:ok, %User{} = user} ->
|
||||||
user
|
_ =
|
||||||
|> Ash.Changeset.for_update(:update, %{})
|
user
|
||||||
|> Ash.Changeset.manage_relationship(:role, admin_role, type: :append_and_remove)
|
|> Ash.Changeset.for_update(:update, %{})
|
||||||
|> Ash.update!(authorize?: false)
|
|> Ash.Changeset.manage_relationship(:role, admin_role, type: :append_and_remove)
|
||||||
|
|> Ash.update!(authorize?: false)
|
||||||
|
|
||||||
:ok
|
:ok
|
||||||
|
|
||||||
|
|
@ -189,15 +190,16 @@ defmodule Mv.Release do
|
||||||
defp create_admin_user(email, password, admin_role) do
|
defp create_admin_user(email, password, admin_role) do
|
||||||
case Accounts.create_user(%{email: email}, authorize?: false) do
|
case Accounts.create_user(%{email: email}, authorize?: false) do
|
||||||
{:ok, user} ->
|
{:ok, user} ->
|
||||||
user
|
_ =
|
||||||
|> Ash.Changeset.for_update(:admin_set_password, %{password: password})
|
user
|
||||||
|> Ash.update!(authorize?: false)
|
|> Ash.Changeset.for_update(:admin_set_password, %{password: password})
|
||||||
|> then(fn u ->
|
|
||||||
u
|
|
||||||
|> Ash.Changeset.for_update(:update, %{})
|
|
||||||
|> Ash.Changeset.manage_relationship(:role, admin_role, type: :append_and_remove)
|
|
||||||
|> Ash.update!(authorize?: false)
|
|> Ash.update!(authorize?: false)
|
||||||
end)
|
|> then(fn u ->
|
||||||
|
u
|
||||||
|
|> Ash.Changeset.for_update(:update, %{})
|
||||||
|
|> Ash.Changeset.manage_relationship(:role, admin_role, type: :append_and_remove)
|
||||||
|
|> Ash.update!(authorize?: false)
|
||||||
|
end)
|
||||||
|
|
||||||
:ok
|
:ok
|
||||||
|
|
||||||
|
|
@ -207,15 +209,16 @@ defmodule Mv.Release do
|
||||||
end
|
end
|
||||||
|
|
||||||
defp update_admin_user(user, password, admin_role) do
|
defp update_admin_user(user, password, admin_role) do
|
||||||
user
|
_ =
|
||||||
|> Ash.Changeset.for_update(:admin_set_password, %{password: password})
|
user
|
||||||
|> Ash.update!(authorize?: false)
|
|> Ash.Changeset.for_update(:admin_set_password, %{password: password})
|
||||||
|> then(fn u ->
|
|
||||||
u
|
|
||||||
|> Ash.Changeset.for_update(:update, %{})
|
|
||||||
|> Ash.Changeset.manage_relationship(:role, admin_role, type: :append_and_remove)
|
|
||||||
|> Ash.update!(authorize?: false)
|
|> Ash.update!(authorize?: false)
|
||||||
end)
|
|> then(fn u ->
|
||||||
|
u
|
||||||
|
|> Ash.Changeset.for_update(:update, %{})
|
||||||
|
|> Ash.Changeset.manage_relationship(:role, admin_role, type: :append_and_remove)
|
||||||
|
|> Ash.update!(authorize?: false)
|
||||||
|
end)
|
||||||
|
|
||||||
:ok
|
:ok
|
||||||
end
|
end
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue