Skip to content

Commit 4154ea2

Browse files
authored
Merge pull request #94 from arkivanov/parallel-non-native-build
Parallel non-native build
2 parents c344dbb + 901e015 commit 4154ea2

File tree

13 files changed

+70
-17
lines changed

13 files changed

+70
-17
lines changed

.github/workflows/build.yml

Lines changed: 31 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,32 @@ name: Build
33
on: [pull_request]
44

55
jobs:
6-
non-native-build:
7-
name: Build JVM, Android, JS
6+
android-build:
7+
name: Build Android
8+
runs-on: ubuntu-latest
9+
steps:
10+
- name: Checkout
11+
uses: actions/checkout@v1
12+
- name: Install Java
13+
uses: actions/setup-java@v1
14+
with:
15+
java-version: 1.8
16+
- name: Build Android
17+
run: ./gradlew build -Pbuild_type=ANDROID
18+
jvm-build:
19+
name: Build JVM
20+
runs-on: ubuntu-latest
21+
steps:
22+
- name: Checkout
23+
uses: actions/checkout@v1
24+
- name: Install Java
25+
uses: actions/setup-java@v1
26+
with:
27+
java-version: 1.8
28+
- name: Build JVM
29+
run: ./gradlew build -Pbuild_type=JVM
30+
js-build:
31+
name: Build JS
832
runs-on: ubuntu-latest
933
steps:
1034
- name: Checkout
@@ -17,8 +41,8 @@ jobs:
1741
run: sudo apt-get update
1842
- name: Install dependencies
1943
run: sudo apt-get install nodejs chromium-browser
20-
- name: Build JVM, Android, JS
21-
run: ./gradlew :utils-internal:build :rx:build :rx-internal:build :mvikotlin:build :mvikotlin-test-internal:build :mvikotlin-main:build :mvikotlin-logging:build :mvikotlin-timetravel-proto-internal:build :mvikotlin-timetravel:build :mvikotlin-timetravel-client:client-internal:build :mvikotlin-timetravel-client:plugin-idea:build :mvikotlin-extensions-reaktive:build :mvikotlin-extensions-coroutines:build :androidx-lifecycle-interop:build :sample:todo-app-android:assembleDebug :sample:todo-app-js:build -Pbuild_type=NON_NATIVE
44+
- name: Build JS
45+
run: ./gradlew build -Pbuild_type=JS
2246
linux-build:
2347
name: Build Linux
2448
runs-on: ubuntu-latest
@@ -30,7 +54,7 @@ jobs:
3054
with:
3155
java-version: 1.8
3256
- name: Build Linux
33-
run: ./gradlew :utils-internal:build :rx:build :rx-internal:build :mvikotlin:build :mvikotlin-test-internal:build :mvikotlin-main:build :mvikotlin-logging:build :mvikotlin-timetravel-proto-internal:build :mvikotlin-timetravel:build :mvikotlin-extensions-reaktive:build :mvikotlin-extensions-coroutines:build -Pbuild_type=LINUX
57+
run: ./gradlew build -Pbuild_type=LINUX
3458
ios-build:
3559
name: Build iOS
3660
runs-on: macos-latest
@@ -42,7 +66,7 @@ jobs:
4266
with:
4367
java-version: 1.8
4468
- name: Build iOS
45-
run: ./gradlew :utils-internal:build :rx:build :rx-internal:build :mvikotlin:build :mvikotlin-test-internal:build :mvikotlin-main:build :mvikotlin-logging:build :mvikotlin-timetravel-proto-internal:build :mvikotlin-timetravel:build :mvikotlin-extensions-reaktive:build :mvikotlin-extensions-coroutines:build :sample:todo-darwin-umbrella:iosX64MainBinaries :sample:todo-darwin-umbrella:iosArm64MainBinaries -Pbuild_type=IOS
69+
run: ./gradlew build -Pbuild_type=IOS
4670
macos-build:
4771
name: Build macOS
4872
runs-on: macos-latest
@@ -54,4 +78,4 @@ jobs:
5478
with:
5579
java-version: 1.8
5680
- name: Build macOS
57-
run: ./gradlew :utils-internal:build :rx:build :rx-internal:build :mvikotlin:build :mvikotlin-test-internal:build :mvikotlin-main:build :mvikotlin-logging:build :mvikotlin-timetravel-proto-internal:build :mvikotlin-timetravel:build :mvikotlin-timetravel-client:client-internal:build :mvikotlin-extensions-reaktive:build :mvikotlin-extensions-coroutines:build :sample:todo-darwin-umbrella:macosX64MainBinaries -Pbuild_type=MAC_OS
81+
run: ./gradlew build -Pbuild_type=MAC_OS

buildSrc/src/main/kotlin/Config.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import org.jetbrains.kotlin.gradle.targets.js.KotlinJsTarget
1919
import org.jetbrains.kotlin.gradle.targets.jvm.KotlinJvmTarget
2020

2121
enum class BuildType {
22-
ALL, METADATA, NON_NATIVE, LINUX, IOS, MAC_OS
22+
ALL, METADATA, NON_NATIVE, ANDROID, JVM, JS, LINUX, IOS, MAC_OS
2323
}
2424

2525
val ExtensionAware.buildType: BuildType
@@ -69,6 +69,9 @@ private val BUILD_TYPE_TO_BUILD_TARGETS: Map<BuildType, Set<BuildTarget>> =
6969
BuildType.ALL to ALL_BUILD_TARGETS,
7070
BuildType.METADATA to ALL_BUILD_TARGETS,
7171
BuildType.NON_NATIVE to setOf(BuildTarget.Android, BuildTarget.Jvm, BuildTarget.Js),
72+
BuildType.ANDROID to setOf(BuildTarget.Android),
73+
BuildType.JVM to setOf(BuildTarget.Jvm),
74+
BuildType.JS to setOf(BuildTarget.Js),
7275
BuildType.LINUX to setOf(BuildTarget.LinuxX64),
7376
BuildType.IOS to setOf(BuildTarget.IosX64, BuildTarget.IosArm64),
7477
BuildType.MAC_OS to setOf(BuildTarget.MacOsX64)

sample/todo-common-internal/build.gradle.kts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
buildTargets = setOf(BuildTarget.Android, BuildTarget.Js, BuildTarget.IosX64, BuildTarget.IosArm64)
2+
13
setupMultiplatform()
24

35
kotlin {

sample/todo-common/build.gradle.kts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
buildTargets = setOf(BuildTarget.Android, BuildTarget.Js, BuildTarget.IosX64, BuildTarget.IosArm64)
2+
13
setupMultiplatform()
24
setupXcodeSync()
35

sample/todo-coroutines/build.gradle.kts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
buildTargets = setOf(BuildTarget.Android, BuildTarget.Js)
2+
13
setupMultiplatform()
24

35
kotlin {

sample/todo-darwin-umbrella/build.gradle.kts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget
22

3+
buildTargets = setOf(BuildTarget.IosX64, BuildTarget.IosArm64)
4+
35
setupMultiplatform()
46

57
kotlin {

sample/todo-reaktive/build.gradle.kts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
buildTargets = setOf(BuildTarget.Android, BuildTarget.Js, BuildTarget.IosX64, BuildTarget.IosArm64)
2+
13
setupMultiplatform()
24
setupXcodeSync()
35

sample/todo-reaktive/src/commonTest/kotlin/com/arkivanov/mvikotlin/sample/todo/reaktive/controller/TodoDetailsReaktiveControllerTest.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import com.arkivanov.mvikotlin.core.lifecycle.Lifecycle
44
import com.arkivanov.mvikotlin.core.lifecycle.LifecycleRegistry
55
import com.arkivanov.mvikotlin.core.lifecycle.resume
66
import com.arkivanov.mvikotlin.core.store.StoreFactory
7+
import com.arkivanov.mvikotlin.core.utils.isAssertOnMainThreadEnabled
78
import com.arkivanov.mvikotlin.main.store.DefaultStoreFactory
89
import com.arkivanov.mvikotlin.sample.todo.common.controller.TodoDetailsController
910
import com.arkivanov.mvikotlin.sample.todo.common.controller.TodoDetailsController.Dependencies
@@ -47,11 +48,14 @@ class TodoDetailsReaktiveControllerTest {
4748
fun before() {
4849
overrideSchedulers(main = { TestScheduler() }, io = { TestScheduler() })
4950
reaktiveUncaughtErrorHandler = { throw it }
51+
isAssertOnMainThreadEnabled = false
5052
}
5153

5254
@AfterTest
5355
fun after() {
56+
overrideSchedulers()
5457
resetReaktiveUncaughtErrorHandler()
58+
isAssertOnMainThreadEnabled = true
5559
}
5660

5761
@Test

sample/todo-reaktive/src/commonTest/kotlin/com/arkivanov/mvikotlin/sample/todo/reaktive/controller/TodoListReaktiveControllerTest.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import com.arkivanov.mvikotlin.core.lifecycle.LifecycleRegistry
55
import com.arkivanov.mvikotlin.core.lifecycle.resume
66
import com.arkivanov.mvikotlin.core.statekeeper.StateKeeperProvider
77
import com.arkivanov.mvikotlin.core.store.StoreFactory
8+
import com.arkivanov.mvikotlin.core.utils.isAssertOnMainThreadEnabled
89
import com.arkivanov.mvikotlin.main.store.DefaultStoreFactory
910
import com.arkivanov.mvikotlin.sample.todo.common.controller.TodoListController
1011
import com.arkivanov.mvikotlin.sample.todo.common.controller.TodoListController.Dependencies
@@ -48,11 +49,14 @@ class TodoListReaktiveControllerTest {
4849
fun before() {
4950
overrideSchedulers(main = { TestScheduler() }, io = { TestScheduler() })
5051
reaktiveUncaughtErrorHandler = { throw it }
52+
isAssertOnMainThreadEnabled = false
5153
}
5254

5355
@AfterTest
5456
fun after() {
57+
overrideSchedulers()
5558
resetReaktiveUncaughtErrorHandler()
59+
isAssertOnMainThreadEnabled = true
5660
}
5761

5862
@Test

sample/todo-reaktive/src/commonTest/kotlin/com/arkivanov/mvikotlin/sample/todo/reaktive/store/TodoAddStoreTest.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.arkivanov.mvikotlin.sample.todo.reaktive.store
22

3+
import com.arkivanov.mvikotlin.core.utils.isAssertOnMainThreadEnabled
34
import com.arkivanov.mvikotlin.extensions.reaktive.labels
45
import com.arkivanov.mvikotlin.main.store.DefaultStoreFactory
56
import com.arkivanov.mvikotlin.sample.todo.common.database.TodoItem
@@ -28,12 +29,14 @@ class TodoAddStoreTest {
2829
fun before() {
2930
overrideSchedulers(main = { TestScheduler() }, io = { TestScheduler() })
3031
reaktiveUncaughtErrorHandler = { throw it }
32+
isAssertOnMainThreadEnabled = false
3133
}
3234

3335
@AfterTest
3436
fun after() {
3537
overrideSchedulers()
3638
resetReaktiveUncaughtErrorHandler()
39+
isAssertOnMainThreadEnabled = true
3740
}
3841

3942
@Test

0 commit comments

Comments
 (0)