fix: Properly inject MIX_ENV to subtasks

This commit is contained in:
Robert Prehn 2023-08-10 22:59:25 +00:00
parent 03e200a3b1
commit 7832ac109e
No known key found for this signature in database
4 changed files with 17 additions and 8 deletions

View file

@ -12,7 +12,7 @@ defmodule MashConfig do
%{ %{
name: :compile_dev, name: :compile_dev,
needs: [:restore_cache], needs: [:restore_cache],
run: mix("compile", [], env: [{"MIX_ENV", "dev"}]) run: mix("do", ["deps.compile,", "compile"], env: [{"MIX_ENV", "dev"}])
}, },
%{ %{
name: :test, name: :test,
@ -26,7 +26,7 @@ defmodule MashConfig do
}, },
%{ %{
name: :save_cache, name: :save_cache,
needs: [:test, :compile_dev], needs: [:restore_cache],
run: save_cache() run: save_cache()
}, },
%{ %{

View file

@ -13,7 +13,7 @@ Add mash to your dependencies like so:
```elixir ```elixir
def deps do def deps do
[ [
{:mash, "~> 0.1.1"} {:mash, "~> 0.1.2"}
] ]
end end
``` ```

View file

@ -15,10 +15,19 @@ defmodule Mash.Helpers do
mix_env = mix_env =
Enum.find_value(env, fn {key, value} -> key == "MIX_ENV" && value end) || Enum.find_value(env, fn {key, value} -> key == "MIX_ENV" && value end) ||
Atom.to_string(Mix.Task.preferred_cli_env(task_name)) || Mix.Task.preferred_cli_env(task_name) ||
Atom.to_string(Mix.env()) || Mix.env() ||
:dev :dev
mix_env =
case mix_env do
env when is_binary(env) ->
env
env ->
Atom.to_string(env)
end
fn io_pid -> fn io_pid ->
cmd("mix", [task_name | args], io_pid, [{"MIX_ENV", mix_env} | env]) cmd("mix", [task_name | args], io_pid, [{"MIX_ENV", mix_env} | env])
end end
@ -74,9 +83,9 @@ defmodule Mash.Helpers do
end end
defp cmd(command, args, io_pid, env) do defp cmd(command, args, io_pid, env) do
exec_string = "-c #{command} #{Enum.join(args, " ")}" exec_string = ~s(-c #{command} #{Enum.join(args, " ")})
System.cmd("script", ["-eqf", exec_string, "/dev/null"], System.cmd("script", ["/dev/null", "-eqf", exec_string],
into: IO.stream(io_pid, :line), into: IO.stream(io_pid, :line),
env: env, env: env,
parallelism: true, parallelism: true,

View file

@ -4,7 +4,7 @@ defmodule Mash.MixProject do
def project do def project do
[ [
app: :mash, app: :mash,
version: "0.1.1", version: "0.1.2",
elixir: "~> 1.14", elixir: "~> 1.14",
start_permanent: Mix.env() == :prod, start_permanent: Mix.env() == :prod,
deps: deps(), deps: deps(),