
For all other targets we can use a cheap Linux host. We can use different operating systems, and compile only required targets on expensive hosts. As a result, you can run out of quota, especially if you use the free plan.įortunately, there is a solution to the problem. For example in the case of GitHub Actions, it costs ten times more to use macOS than Linux, and twice more to use Windows than Linux.

However there is one drawback of this approach - Apple hardware is more expensive, so it may cost you more to use it. GitHub Actions, the configuration will be also simpler. You can just use Apple hardware with macOS installed. CI setup is also much easier for single host builds. There is no extra setup required, and you can easily compile and publish your project with just a single Gradle command. In such cases you may find it easier to use the macOS host for all compilations.


#Kotlin klib android
For example, Android and JVM targets can be compiled on any host, however Apple targets ( ios, watchos, etc.) require macOS host.įrom my observations, most commonly used targets are Android and iOS, sometimes JVM and JS are also supported, as well as additional Apple targets like watchOS or tvOS. There are targets that can be compiled on any host OS, and there are targets that can be compiled only on a specific host OS. Kotlin Multiplatform supports different targets (platforms), which require different host operating systems for compilation. Optimising CI build times of a Kotlin Multiplatform project
