@@ -892,3 +892,56 @@ def test_diff_procfile_types(self, mock_requests):
892892 prefix = f"[{ release .app .id } ]: [pipeline] release v{ release .version } "
893893 exp_msg = f"{ prefix } no changes, skip executing pipeline.deploy"
894894 mock_logger .log .assert_any_call (logging .INFO , exp_msg )
895+
896+ @override_settings (DRYCC_PILELINE_RUN_TIMEOUT = 600 )
897+ def test_run (self , mock_requests ):
898+ app_id = self .create_app ()
899+ app = App .objects .get (id = app_id )
900+ user = User .objects .get (username = 'autotest' )
901+ dryccfile = {
902+ "run" : {
903+ "args" : ["sleep" , "60s" ],
904+ "image" : "registry.drycc.cc/drycc/base:bookworm"
905+ },
906+ "deploy" : {
907+ "web" : {
908+ "image" : "registry.drycc.cc/drycc/python-dev" ,
909+ "args" : ["python" , "-m" , "http.server" , "5000" ]
910+ },
911+ "task" : {
912+ "image" : "docker.io/library/nginx:mainline-bookworm-perl" ,
913+ "command" : ["sleep" ],
914+ "args" : ["infinity" ]
915+ }
916+ }
917+ }
918+ build = Build .objects .create (
919+ owner = user , app = app , image = "qwerty" , procfile = {},
920+ sha = 'african-swallow' , dockerfile = {}, dryccfile = dryccfile )
921+ release = Release .objects .create (
922+ version = 2 , owner = user , app = app , config = app .config_set .latest (),
923+ build = build , state = "succeed" )
924+ self .assertEqual (release .get_run_timeout (), 600 )
925+ self .assertEqual (release .get_run_trigger (), True )
926+ # change timeout
927+ dryccfile ['run' ]['when' ] = {'ptypes' : ['web' ]}
928+ dryccfile ['run' ]['timeout' ] = 3600
929+ dryccfile ['deploy' ]['web' ]['image' ] = 'registry.drycc.cc/drycc/python-dev:latest'
930+ build = Build .objects .create (
931+ owner = user , app = app , image = "qwerty" , procfile = {},
932+ sha = 'african-swallow' , dockerfile = {}, dryccfile = dryccfile )
933+ release = Release .objects .create (
934+ version = 3 , owner = user , app = app , config = app .config_set .latest (),
935+ build = build , state = "succeed" )
936+ self .assertEqual (release .get_run_timeout (), 3600 )
937+ self .assertEqual (release .get_run_trigger (), True )
938+ # change task image
939+ dryccfile ['deploy' ]['task' ]['image' ] = 'docker.io/library/nginx:latest'
940+ build = Build .objects .create (
941+ owner = user , app = app , image = "qwerty" , procfile = {},
942+ sha = 'african-swallow' , dockerfile = {}, dryccfile = dryccfile )
943+ release = Release .objects .create (
944+ version = 4 , owner = user , app = app , config = app .config_set .latest (),
945+ build = build , state = "succeed" )
946+ self .assertEqual (release .get_run_timeout (), 3600 )
947+ self .assertEqual (release .get_run_trigger (), False )
0 commit comments