Skip to content

Commit 905327e

Browse files
Fix stale files in release overlays
1 parent 3c55db7 commit 905327e

File tree

2 files changed

+23
-1
lines changed

2 files changed

+23
-1
lines changed

lib/mix/lib/mix/tasks/release.ex

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1101,6 +1101,8 @@ defmodule Mix.Tasks.Release do
11011101
message = "#{release.name}-#{release.version} on MIX_ENV=#{Mix.env()}"
11021102
info(release, [:green, "* assembling ", :reset, message])
11031103

1104+
File.rm_rf!(release.path)
1105+
11041106
# releases/
11051107
# VERSION/
11061108
# consolidated/
@@ -1190,7 +1192,6 @@ defmodule Mix.Tasks.Release do
11901192

11911193
defp build_rel(release, config) do
11921194
version_path = release.version_path
1193-
File.rm_rf!(version_path)
11941195
File.mkdir_p!(version_path)
11951196
release = maybe_add_config_reader_provider(config, release, version_path)
11961197

lib/mix/test/mix/tasks/release_test.exs

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -786,6 +786,27 @@ defmodule Mix.Tasks.ReleaseTest do
786786
end)
787787
end
788788

789+
test "stale files in overlays" do
790+
in_fixture("release_test", fn ->
791+
Mix.Project.in_project(:release_test, ".", fn _ ->
792+
File.mkdir_p!("rel/overlays")
793+
File.write!("rel/overlays/file1", "hello")
794+
File.write!("rel/overlays/file2", "world")
795+
796+
root = Path.absname("_build/dev/rel/release_test")
797+
798+
Mix.Task.run("release")
799+
assert root |> Path.join("file1") |> File.read!() == "hello"
800+
assert root |> Path.join("file2") |> File.read!() == "world"
801+
802+
File.rm!("rel/overlays/file2")
803+
804+
Mix.Task.rerun("release", ["--overwrite"])
805+
refute root |> Path.join("file2") |> File.exists?()
806+
end)
807+
end)
808+
end
809+
789810
defp open_port(command, args, env \\ []) do
790811
env = for {k, v} <- env, do: {to_charlist(k), to_charlist(v)}
791812
Port.open({:spawn_executable, to_charlist(command)}, [:hide, args: args, env: env])

0 commit comments

Comments
 (0)