@@ -146,12 +146,13 @@ def create(
146
146
flags : Optional [list [str ]] = typer .Argument (None ),
147
147
editable : Optional [bool ] = None ,
148
148
extra_module : Optional [list [str ]] = None ,
149
+ diracx_dist_dir : Optional [str ] = None ,
149
150
release_var : Optional [str ] = None ,
150
151
run_server_tests : bool = True ,
151
152
run_client_tests : bool = True ,
152
153
):
153
154
"""Start a local instance of the integration tests"""
154
- prepare_environment (flags , editable , extra_module , release_var )
155
+ prepare_environment (flags , editable , extra_module , diracx_dist_dir , release_var )
155
156
install_server ()
156
157
install_client ()
157
158
exit_code = 0
@@ -191,6 +192,7 @@ def prepare_environment(
191
192
flags : Optional [list [str ]] = typer .Argument (None ),
192
193
editable : Optional [bool ] = None ,
193
194
extra_module : Optional [list [str ]] = None ,
195
+ diracx_dist_dir : Optional [str ] = None ,
194
196
release_var : Optional [str ] = None ,
195
197
):
196
198
"""Prepare the local environment for installing DIRAC."""
@@ -227,7 +229,7 @@ def prepare_environment(
227
229
extra_services = list (chain (* [config ["extra-services" ] for config in module_configs .values ()]))
228
230
229
231
typer .secho ("Running docker-compose to create containers" , fg = c .GREEN )
230
- with _gen_docker_compose (modules ) as docker_compose_fn :
232
+ with _gen_docker_compose (modules , diracx_dist_dir = diracx_dist_dir ) as docker_compose_fn :
231
233
subprocess .run (
232
234
["docker-compose" , "-f" , docker_compose_fn , "up" , "-d" , "dirac-server" , "dirac-client" ] + extra_services ,
233
235
check = True ,
@@ -322,7 +324,7 @@ def prepare_environment(
322
324
typer .secho ("Running docker-compose to create DiracX containers" , fg = c .GREEN )
323
325
typer .secho (f"Will leave a folder behind: { docker_compose_fn_final } " , fg = c .YELLOW )
324
326
325
- with _gen_docker_compose (modules ) as docker_compose_fn :
327
+ with _gen_docker_compose (modules , diracx_dist_dir = diracx_dist_dir ) as docker_compose_fn :
326
328
# We cannot use the temporary directory created in the context manager because
327
329
# we don't stay in the contect manager (Popen)
328
330
# So we need something that outlives it.
@@ -545,7 +547,7 @@ class TestExit(typer.Exit):
545
547
546
548
547
549
@contextmanager
548
- def _gen_docker_compose (modules ):
550
+ def _gen_docker_compose (modules , * , diracx_dist_dir = None ):
549
551
# Load the docker-compose configuration and mount the necessary volumes
550
552
input_fn = Path (__file__ ).parent / "tests/CI/docker-compose.yml"
551
553
docker_compose = yaml .safe_load (input_fn .read_text ())
@@ -560,10 +562,12 @@ def _gen_docker_compose(modules):
560
562
docker_compose ["services" ]["diracx-wait-for-db" ]["volumes" ].extend (volumes [:])
561
563
562
564
module_configs = _load_module_configs (modules )
563
- if "diracx" in module_configs :
564
- docker_compose ["services" ]["diracx" ]["volumes" ].append (
565
- f"{ modules ['diracx' ]} /src/diracx:{ module_configs ['diracx' ]['install-location' ]} "
566
- )
565
+ if diracx_dist_dir is not None :
566
+ for container_name in ["dirac-client" , "dirac-server" , "diracx-init-cs" , "diracx-wait-for-db" , "diracx" ]:
567
+ docker_compose ["services" ][container_name ]["volumes" ].append (f"{ diracx_dist_dir } :/diracx_sources" )
568
+ docker_compose ["services" ][container_name ].setdefault ("environment" , []).append (
569
+ "DIRACX_CUSTOM_SOURCE_PREFIXES=/diracx_sources"
570
+ )
567
571
568
572
# Add any extension services
569
573
for module_name , module_configs in module_configs .items ():
0 commit comments