Skip to content

Commit ac0cbfd

Browse files
authored
Merge pull request #4 from vaslabs-ltd/mill-jetchat
Mill jetchat
2 parents 07f54d8 + 9a45a0f commit ac0cbfd

File tree

2 files changed

+116
-12
lines changed

2 files changed

+116
-12
lines changed

.github/workflows/Test.yaml

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,27 +2,29 @@ name: Test Apps
22

33
on:
44
push:
5-
branches:
6-
- main
5+
branches: [ main ]
76
pull_request:
87

8+
concurrency:
9+
group: test-apps-${{ github.ref }}
10+
cancel-in-progress: true
11+
912
jobs:
10-
androidTest:
13+
android-tests:
14+
name: Android Tests (${{ matrix.app }})
1115
runs-on: ubuntu-latest
1216
timeout-minutes: 30
17+
strategy:
18+
fail-fast: false
19+
matrix:
20+
app: [ JetLagged, JetNews, Jetsnack, Jetchat ]
1321
steps:
1422
- uses: coursier/cache-action@v6
1523
- uses: actions/checkout@v4
1624
- uses: ./.github/actions/android-setup
1725
- uses: ./.github/actions/mill-android-test
1826
with:
19-
app-name: JetLagged
20-
- uses: ./.github/actions/mill-android-test
21-
with:
22-
app-name: JetNews
23-
- uses: ./.github/actions/mill-android-test
24-
with:
25-
app-name: Jetsnack
27+
app-name: ${{ matrix.app }}
2628
- name: Publish Test Report
2729
uses: mikepenz/action-junit-report@v5
2830
if: (!cancelled())
@@ -33,5 +35,3 @@ jobs:
3335
annotate_only: true
3436
require_tests: false
3537
report_paths: 'out/**/test-report.xml'
36-
37-

Jetchat/package.mill

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
package build.Jetchat
2+
3+
import mill.*
4+
import androidlib.*
5+
import kotlinlib.*
6+
import build.*
7+
import mill.javalib.api.JvmWorkerApi
8+
import mill.kotlinlib.ksp.KspModule
9+
10+
import java.nio.file.Files
11+
12+
object app extends BaseAndroidModule, AndroidR8AppModule {
13+
14+
override def androidApplicationNamespace: String = "com.example.compose.jetchat"
15+
16+
override def androidApplicationId: String = "com.example.compose.jetchat"
17+
18+
override def bomMvnDeps: T[Seq[Dep]] = Seq(
19+
mvn"androidx.compose:compose-bom:2025.08.00"
20+
)
21+
22+
override def androidDebugSettings: T[AndroidBuildTypeSettings] = Task {
23+
AndroidBuildTypeSettings(
24+
isMinifyEnabled = false
25+
)
26+
}
27+
def androidProjectProguardFiles = Task.Sources(
28+
"proguard-rules.pro"
29+
)
30+
def androidDefaultProguardFileNames: Task[Seq[String]] = Task.Anon {
31+
Seq("proguard-android-optimize.txt")
32+
}
33+
34+
override def androidEnableCompose: T[Boolean] = true
35+
36+
override def androidEnableViewBinding = true
37+
38+
override def androidDataBindingCompilerVersion = "8.13.0"
39+
40+
override def kotlinUseEmbeddableCompiler: Task[Boolean] = Task {
41+
true
42+
}
43+
44+
override def mvnDeps = super.mvnDeps() ++ Seq(
45+
mvn"androidx.glance:glance-appwidget:1.1.1",
46+
mvn"androidx.glance:glance-material3:1.1.1",
47+
mvn"org.jetbrains.kotlin:kotlin-stdlib-jdk8:${build.Versions.kotlinVersion}",
48+
mvn"org.jetbrains.kotlinx:kotlinx-coroutines-android:1.10.2",
49+
mvn"androidx.activity:activity-compose:1.10.1",
50+
mvn"androidx.core:core-ktx:1.16.0",
51+
mvn"androidx.appcompat:appcompat:1.7.0",
52+
mvn"androidx.compose.runtime:runtime-livedata",
53+
mvn"androidx.lifecycle:lifecycle-viewmodel-compose:2.9.0",
54+
mvn"androidx.lifecycle:lifecycle-runtime-compose:2.9.0",
55+
mvn"androidx.lifecycle:lifecycle-livedata:2.9.0",
56+
mvn"androidx.navigation:navigation-fragment-ktx:2.9.0",
57+
mvn"androidx.navigation:navigation-ui-ktx:2.9.0",
58+
mvn"androidx.compose.material3:material3",
59+
mvn"androidx.compose.material:material-icons-extended",
60+
mvn"androidx.compose.ui:ui-util",
61+
mvn"androidx.compose.ui:ui-viewbinding",
62+
mvn"androidx.compose.ui:ui-text-google-fonts",
63+
mvn"androidx.databinding:viewbinding:8.13.0",
64+
mvn"androidx.compose.ui:ui-tooling",
65+
mvn"androidx.compose.ui:ui-tooling-preview",
66+
mvn"androidx.compose.ui:ui-test-manifest",
67+
mvn"com.google.android.material:material:1.6.0"
68+
)
69+
70+
71+
object androidTest extends AndroidAppKotlinInstrumentedTests, AndroidR8AppModule {
72+
override def bomMvnDeps = super.mvnDeps() ++ Seq(
73+
mvn"androidx.compose:compose-bom:2025.08.00"
74+
)
75+
76+
// TODO consider defaulting this to the parent app value
77+
override def androidEnableCompose = true
78+
79+
// TODO consider defaulting this to the parent app value
80+
override def kotlinUseEmbeddableCompiler: Task[Boolean] = Task {
81+
true
82+
}
83+
84+
// FIXME: R8 should compile without missing classes errors
85+
override def androidR8Args = Seq("--map-diagnostics", "error", "warning")
86+
87+
def mvnDeps = super.mvnDeps() ++ Seq(
88+
mvn"junit:junit:4.13.2",
89+
mvn"androidx.test:core:1.6.1",
90+
mvn"androidx.test:runner:1.6.1",
91+
mvn"androidx.test.espresso:espresso-core:3.6.1",
92+
mvn"androidx.test:rules:1.6.1",
93+
mvn"androidx.test.ext:junit:1.2.1",
94+
mvn"org.jetbrains.kotlinx:kotlinx-coroutines-test:1.10.2",
95+
mvn"androidx.compose.ui:ui-test",
96+
mvn"androidx.compose.ui:ui-test-junit4",
97+
mvn"androidx.collection:collection-ktx:1.5.0",
98+
99+
// Resolve conflicts
100+
mvn"androidx.savedstate:savedstate-ktx:1.3.0"
101+
)
102+
103+
}
104+
}

0 commit comments

Comments
 (0)