@@ -391,6 +391,54 @@ def test_build_command_docker_compose_single_node(self):
391391 metadata = json .loads (Path ("out/STUDY.json" ).read_text ())
392392 self .assertIn ("docker-compose.yml" , metadata ["checksums" ])
393393
394+ def test_build_command_docker_compose_julia_node (self ):
395+ with self .runner .isolated_filesystem (temp_dir = self .temp_dir ):
396+ result = self .runner .invoke (cli , ["init" , "test-project" ])
397+ self .assertEqual (result .exit_code , 0 )
398+
399+ script_path = Path ("test-project/src/script.py" )
400+ script_path .rename ("test-project/src/script.jl" )
401+ Path ("test-project/src/script.jl" ).write_text (
402+ 'include("concore.jl")\n using .Concore\n '
403+ )
404+
405+ workflow_path = Path ("test-project/workflow.graphml" )
406+ content = workflow_path .read_text ()
407+ workflow_path .write_text (content .replace ("N1:script.py" , "N1:script.jl" ))
408+
409+ result = self .runner .invoke (
410+ cli ,
411+ [
412+ "build" ,
413+ "test-project/workflow.graphml" ,
414+ "--source" ,
415+ "test-project/src" ,
416+ "--output" ,
417+ "out" ,
418+ "--type" ,
419+ "docker" ,
420+ "--compose" ,
421+ ],
422+ )
423+ self .assertEqual (result .exit_code , 0 )
424+
425+ docker_runtime = Path (__file__ ).resolve ().parents [1 ] / "concoredocker.jl"
426+ self .assertEqual (
427+ Path ("out/src/concore.jl" ).read_text (), docker_runtime .read_text ()
428+ )
429+
430+ dockerfile = Path ("out/src/Dockerfile.script" ).read_text ()
431+ self .assertIn ("FROM julia:1.10" , dockerfile )
432+ self .assertIn ('CMD ["julia", "script.jl"]' , dockerfile )
433+
434+ build_script = Path ("out/build" ).read_text ()
435+ self .assertIn ("cp ../src/script.jl ." , build_script )
436+ self .assertIn ("cp ../src/concore.jl ." , build_script )
437+
438+ compose_content = Path ("out/docker-compose.yml" ).read_text ()
439+ self .assertIn ("container_name: 'N1'" , compose_content )
440+ self .assertIn ("image: 'docker-script'" , compose_content )
441+
394442 def test_build_command_docker_compose_multi_node (self ):
395443 with self .runner .isolated_filesystem (temp_dir = self .temp_dir ):
396444 Path ("src" ).mkdir ()
0 commit comments