Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion lib/mix/lib/mix/release.ex
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,7 @@ defmodule Mix.Release do
version_path: Path.join([path, "releases", version]),
erts_source: erts_source,
erts_version: erts_version,
applications: Map.delete(loaded_apps, :erts),
applications: loaded_apps,
boot_scripts: %{start: start_boot, start_clean: start_clean_boot},
config_providers: config_providers,
options: opts,
Expand Down
6 changes: 3 additions & 3 deletions lib/mix/lib/mix/tasks/release.ex
Original file line number Diff line number Diff line change
Expand Up @@ -1131,8 +1131,8 @@ defmodule Mix.Tasks.Release do
{consolidation_path, release} = build_rel(release, config)

[
# erts-VSN/
:erts,
# erts-VSN/ - written as __MODULE__ to avoid conflicting with :erts app
__MODULE__,
# releases/VERSION/consolidated
{:consolidated, consolidation_path},
# bin/
Expand Down Expand Up @@ -1392,7 +1392,7 @@ defmodule Mix.Tasks.Release do

## Copy operations

defp copy(:erts, release) do
defp copy(__MODULE__, release) do
_ = Mix.Release.copy_erts(release)
:ok
end
Expand Down
5 changes: 3 additions & 2 deletions lib/mix/test/mix/release_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -84,9 +84,10 @@ defmodule Mix.ReleaseTest do
assert release.applications.kernel[:otp_app?]
end

test "does not include erts in applications" do
test "includes erts in applications when requested" do
release = from_config!(nil, config(releases: [foo: [applications: [erts: :permanent]]]), [])
assert release.applications[:erts] == nil
assert release.applications.erts[:otp_app?]
assert release.applications.erts[:vsn] == to_charlist(@erts_version)
end

test "allows release to be given as an anonymous function" do
Expand Down
19 changes: 19 additions & 0 deletions lib/mix/test/mix/tasks/release_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -370,6 +370,25 @@ defmodule Mix.Tasks.ReleaseTest do
end)
end

test "assembles a bootable release with :erts as one of its applications" do
in_fixture("release_test", fn ->
config = [releases: [release_test: [applications: [erts: :permanent]]]]

Mix.Project.in_project(:release_test, ".", config, fn _ ->
root = Path.absname("_build/dev/rel/release_test")
Mix.Task.run("release")

assert root |> Path.join("erts-#{@erts_version}/bin/erl") |> File.exists?()
assert root |> Path.join("lib/erts-#{@erts_version}/ebin/erts.app") |> File.exists?()

open_port(Path.join(root, "bin/release_test"), [~c"start"])

assert %{release_name: "release_test"} =
wait_until_decoded(Path.join(root, "RELEASE_BOOTED"))
end)
end)
end

test "assembles a rebootable release with runtime configuration" do
in_fixture("release_test", fn ->
config = [releases: [runtime_config: [reboot_system_after_config: true]]]
Expand Down
Loading