Browse Source

Fix RELX_OUTPUT_DIR

Was broken in the move to Relx v4.
Loïc Hoguin 2 years ago
parent
commit
72910c8559
2 changed files with 19 additions and 2 deletions
  1. 2 2
      plugins/relx.mk
  2. 17 0
      test/plugin_relx.mk

+ 2 - 2
plugins/relx.mk

@@ -62,7 +62,7 @@ define relx_release.erl
 		{git, long} -> string:trim(os:cmd("git rev-parse HEAD"), both, "\n");
 		VsnStr -> Vsn0
 	end,
-	{ok, _} = relx:build_release(#{name => Name, vsn => Vsn}, Config),
+	{ok, _} = relx:build_release(#{name => Name, vsn => Vsn}, Config ++ [{output_dir, "$(RELX_OUTPUT_DIR)"}]),
 	halt(0).
 endef
 
@@ -77,7 +77,7 @@ define relx_tar.erl
 		{git, long} -> string:trim(os:cmd("git rev-parse HEAD"), both, "\n");
 		VsnStr -> Vsn0
 	end,
-	{ok, _} = relx:build_tar(#{name => Name, vsn => Vsn}, Config),
+	{ok, _} = relx:build_tar(#{name => Name, vsn => Vsn}, Config ++ [{output_dir, "$(RELX_OUTPUT_DIR)"}]),
 	halt(0).
 endef
 

+ 17 - 0
test/plugin_relx.mk

@@ -102,6 +102,23 @@ relx-bare-rel: init
 	$t test -d $(APP)/_rel/$(APP)_release/releases
 	$t test -d $(APP)/_rel/$(APP)_release/releases/1
 
+relx-output-dir: init
+
+	$i "Bootstrap a new release named $(APP)"
+	$t mkdir $(APP)/
+	$t cp ../erlang.mk $(APP)/
+	$t $(MAKE) -C $(APP) -f erlang.mk bootstrap bootstrap-rel $v
+
+	$i "Set RELX_OUTPUT_DIR to _rel2"
+	$t perl -ni.bak -e 'print;if ($$.==1) {print "RELX_OUTPUT_DIR = _rel2\n"}' $(APP)/Makefile
+
+	$i "Build the release"
+	$t $(MAKE) -C $(APP) $v
+
+	$i "Check that the release exists in the correct location"
+	$t ! test -d $(APP)/_rel
+	$t test -d $(APP)/_rel2
+
 relx-post-rel: init
 
 	$i "Bootstrap a new release named $(APP)"