@@ -21,7 +21,7 @@ defmodule Mix.Tasks.Testcontainers.Run do
2121 { :ok , _ } = Application . ensure_all_started ( app )
2222 end )
2323
24- { :ok , _ } = Testcontainers . start_link ( )
24+ { :ok , _ } = Testcontainers . start ( )
2525
2626 { opts , rest_args , _ } =
2727 OptionParser . parse ( args ,
@@ -41,25 +41,24 @@ defmodule Mix.Tasks.Testcontainers.Run do
4141 [ ] -> { "test" , [ ] }
4242 end
4343
44- run_sub_task_and_exit ( database , sub_task , sub_task_args , db_volume )
45- end
44+ IO . puts ( "Starting database container: #{ database } " )
45+ IO . puts ( "Using database volume: #{ db_volume || "none" } " )
4646
47- @ spec run_sub_task_and_exit ( String . t ( ) , String . t ( ) , list ( String . t ( ) ) , String . t ( ) | nil ) :: no_return ( )
48- defp run_sub_task_and_exit ( database , sub_task , sub_task_args , db_volume ) do
49- { container , env } = setup_container ( database , db_volume )
47+ { _container , env } = setup_container ( database , db_volume )
5048
51- IO . puts ( "Starting in-process mix task: #{ sub_task } #{ Enum . join ( sub_task_args , " " ) } " )
49+ run_sub_task_and_exit ( sub_task , sub_task_args , env )
50+ end
5251
53- System . at_exit ( fn _ ->
54- try do
55- Testcontainers . stop_container ( container . container_id )
56- catch
57- _ , _ -> :ok
58- end
59- end )
52+ @ spec run_sub_task_and_exit ( String . t ( ) , list ( String . t ( ) ) , list ( { String . t ( ) , String . t ( ) } ) ) :: no_return ( )
53+ defp run_sub_task_and_exit ( sub_task , sub_task_args , env ) do
54+
55+ IO . puts ( "Starting mix task: #{ sub_task } #{ Enum . join ( sub_task_args , " " ) } " )
6056
6157 Enum . each ( env , fn { k , v } -> System . put_env ( k , v ) end )
62- Mix.Task . run ( sub_task , sub_task_args )
58+
59+ :ok = Mix.Task . run ( sub_task , sub_task_args )
60+
61+ IO . puts ( "Task finished: #{ sub_task } #{ Enum . join ( sub_task_args , " " ) } " )
6362 end
6463
6564 defp setup_container ( database , db_volume ) do
0 commit comments