You can setup your own CI server with real devices on gitlab with these scripts and setups. I found this issues that are common between any CI server:

Since Espresso will wait for AsyncTask to finish, we can take advantage of this making every RX call use the ThreadPool from there on every request, how to overrite that?

Using @JvmOverloads tag helps to avoid multiple constructors with Kotlin