package Ġcom . av ito . instrumentation . scheduling Ċ Ċ import Ġcom . av ito . instrumentation . configuration . Instrumentation Configuration Ċ import Ġcom . av ito . instrumentation . exec uting . Execution Parameters Ċ import Ġcom . av ito . instrumentation . exec uting . Test Executor Ċ import Ġcom . av ito . instrumentation . exec uting . Test Executor Factory Ċ import Ġcom . av ito . instrumentation . report . Report Ċ import Ġcom . av ito . instrumentation . report . listener . Test Reporter Ċ import Ġcom . av ito . instrumentation . reservation . client . Reservation Client Factory Ċ import Ġcom . av ito . instrumentation . suite . model . Test With Target Ċ import Ġcom . av ito . instrumentation . suite . model . transform Tests With New Job Slug Ċ import Ġcom . av ito . report . Reports Api Ċ import Ġcom . av ito . report . model . Report Coordinates Ċ import Ġcom . av ito . report . model . Simple Run Test Ċ import Ġcom . av ito . report . model . Test Static Data Ċ import Ġcom . av ito . runner . service . model . TestCase Ċ import Ġcom . av ito . utils . gradle . Kubernetes Credentials Ċ import Ġcom . av ito . utils . logging . CI Logger Ċ import Ġorg . f unktion ale . tri es . Try Ċ import Ġjava . io . File Ċ import Ġjava . nio . file . Files Ċ Ċ interface ĠTests Runner Ġ{ ĊĊĠĠĠ Ġfun Ġrun Tests ( ĊĠĠĠĠĠĠĠ Ġmain A pk : ĠFile , ĊĠĠĠĠĠĠĠ Ġtest A pk : ĠFile , ĊĠĠĠĠĠĠĠ Ġrun Type : ĠTest Executor . Run Type , ĊĠĠĠĠĠĠĠ Ġreport Coordinates : ĠReport Coordinates , ĊĠĠĠĠĠĠĠ Ġreport : ĠReport , ĊĠĠĠĠĠĠĠ Ġtests To Run : ĠList < Test With Target > ĊĠĠĠ Ġ): ĠTry < List < Simple Run Test >> Ċ } Ċ Ċ class ĠTests Runner Implementation ( ĊĠĠĠ Ġprivate Ġval Ġtest Executor Factory : ĠTest Executor Factory , ĊĠĠĠ Ġprivate Ġval Ġkubernetes Credentials : ĠKubernetes Credentials , ĊĠĠĠ Ġprivate Ġval Ġtest Reporter Factory : Ġ( Map < TestCase , ĠTest Static Data >, ĠFile , ĠReport ) Ġ-> ĠTest Reporter ?, ĊĠĠĠ Ġprivate Ġval Ġlogger : ĠCI Logger , ĊĠĠĠ Ġprivate Ġval Ġbuild Id : ĠString , ĊĠĠĠ Ġprivate Ġval Ġbuild Type : ĠString , ĊĠĠĠ Ġprivate Ġval ĠprojectName : ĠString , ĊĠĠĠ Ġprivate Ġval Ġexecution Parameters : ĠExecution Parameters , ĊĠĠĠ Ġprivate Ġval Ġoutput Directory : ĠFile , ĊĠĠĠ Ġprivate Ġval Ġinstrument ation Configuration : ĠInstrument ation Configuration . Data , ĊĠĠĠ Ġprivate Ġval Ġreports Api : ĠReports Api , ĊĠĠĠ Ġprivate Ġval Ġregistry : ĠString Ċ ) Ġ: ĠTests Runner Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġrun Tests ( ĊĠĠĠĠĠĠĠ Ġmain A pk : ĠFile , ĊĠĠĠĠĠĠĠ Ġtest A pk : ĠFile , ĊĠĠĠĠĠĠĠ Ġrun Type : ĠTest Executor . Run Type , ĊĠĠĠĠĠĠĠ Ġreport Coordinates : ĠReport Coordinates , ĊĠĠĠĠĠĠĠ Ġreport : ĠReport , ĊĠĠĠĠĠĠĠ Ġtests To Run : ĠList < Test With Target > ĊĠĠĠ Ġ): ĠTry < List < Simple Run Test >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( tests To Run . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTry . Success ( emptyList ()) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoutput Ġ= ĠFile ( output Directory , Ġrun Type . id ). apply Ġ{ Ġmkdir s () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlog cat Dir Ġ= ĠFiles . create Temp Directory ( null ). to File () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtest Reporter Ġ= Ġtest Reporter Factory . invoke ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtests To Run . associate Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTestCase ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠclassName Ġ= Ġit . test . name . className , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠmethodName Ġ= Ġit . test . name . methodName , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdevice Name Ġ= Ġit . target . device Name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġto Ġit . test ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlog cat Dir , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreport ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlogger Ġ= Ġlogger . child ( run Type . id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTODO : Ġpass Ġthrough Ġconstructor Ġand Ġisolate Ġk 8 s ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreservation Client Factory Ġ= ĠReser vation Client Factory . Impl ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger Ġ= Ġlogger , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Id Ġ= Ġbuild Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Type Ġ= Ġbuild Type , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠprojectName Ġ= ĠprojectName , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkubernetes Credentials Ġ= Ġkubernetes Credentials , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġregistry Ġ= Ġregistry , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoutput Ġ= Ġoutput , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlog cat Dir Ġ= Ġlog cat Dir ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTODO : Ġpass Ġthrough Ġconstructor ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexecutor Ġ= Ġtest Executor Factory . create Executor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger Ġ= Ġlogger , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreservation Client Factory Ġ= Ġreservation Client Factory , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtest Reporter Ġ= Ġtest Reporter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġexecutor . execute ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapplication Ġ= Ġmain A pk , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtest Application Ġ= Ġtest A pk , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtests To Run Ġ= Ġtests To Run . transform Tests With New Job Slug ( report Coordinates . job Slug ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexecution Parameters Ġ= Ġexecution Parameters , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration Ġ= Ġinstrument ation Configuration . copy ( name Ġ= Ġ"${ instrumentation Configuration . name }-${ run Type . id } "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoutput Ġ= Ġoutput , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrun Type Ġ= Ġrun Type , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlog cat Dir Ġ= Ġlog cat Dir ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// todo ĠÑĩ ÐµÑĢ ÐµÐ· ĠReport ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreports Api . get Tests For Run Id ( report Coordinates ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ