M0: repo scaffolding, CI pipelines, and Go skeleton #1
@@ -25,7 +25,7 @@ jobs:
|
|||||||
# android-ci once the operator registers that runner label.
|
# android-ci once the operator registers that runner label.
|
||||||
runs-on: flutter-ci
|
runs-on: flutter-ci
|
||||||
container:
|
container:
|
||||||
image: git.fabledsword.com/bvandeusen/ci-android:35
|
image: git.fabledsword.com/bvandeusen/ci-android:36
|
||||||
|
|
||||||
defaults:
|
defaults:
|
||||||
run:
|
run:
|
||||||
@@ -35,6 +35,19 @@ jobs:
|
|||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Cache Gradle dirs
|
||||||
|
# Resolved deps + Gradle distribution + Kotlin daemon caches.
|
||||||
|
# Saves ~3 min per CI run after the first warm-up.
|
||||||
|
uses: actions/cache@v4
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
~/.gradle/caches
|
||||||
|
~/.gradle/wrapper
|
||||||
|
~/.kotlin
|
||||||
|
key: gradle-${{ runner.os }}-${{ hashFiles('android/gradle/wrapper/gradle-wrapper.properties', 'android/gradle/libs.versions.toml', 'android/**/*.gradle.kts') }}
|
||||||
|
restore-keys: |
|
||||||
|
gradle-${{ runner.os }}-
|
||||||
|
|
||||||
- name: Make gradlew executable
|
- name: Make gradlew executable
|
||||||
run: chmod +x ./gradlew
|
run: chmod +x ./gradlew
|
||||||
|
|
||||||
@@ -67,7 +80,7 @@ jobs:
|
|||||||
if: startsWith(github.ref, 'refs/tags/v')
|
if: startsWith(github.ref, 'refs/tags/v')
|
||||||
runs-on: flutter-ci
|
runs-on: flutter-ci
|
||||||
container:
|
container:
|
||||||
image: git.fabledsword.com/bvandeusen/ci-android:35
|
image: git.fabledsword.com/bvandeusen/ci-android:36
|
||||||
|
|
||||||
defaults:
|
defaults:
|
||||||
run:
|
run:
|
||||||
|
|||||||
@@ -14,12 +14,12 @@ plugins {
|
|||||||
|
|
||||||
android {
|
android {
|
||||||
namespace = "com.fabledsword.minstrel"
|
namespace = "com.fabledsword.minstrel"
|
||||||
compileSdk = 35
|
compileSdk = 36
|
||||||
|
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
applicationId = "com.fabledsword.minstrel"
|
applicationId = "com.fabledsword.minstrel"
|
||||||
minSdk = 26
|
minSdk = 26
|
||||||
targetSdk = 35
|
targetSdk = 36
|
||||||
versionCode = 1
|
versionCode = 1
|
||||||
versionName = "0.1.0-native"
|
versionName = "0.1.0-native"
|
||||||
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
||||||
@@ -160,9 +160,17 @@ dependencies {
|
|||||||
// kotlin.test for assertEquals/assertNull/etc. — version managed by
|
// kotlin.test for assertEquals/assertNull/etc. — version managed by
|
||||||
// the applied Kotlin plugin so no explicit version pin needed.
|
// the applied Kotlin plugin so no explicit version pin needed.
|
||||||
testImplementation(kotlin("test"))
|
testImplementation(kotlin("test"))
|
||||||
|
// Gradle 9 no longer auto-injects the JUnit Platform launcher; must
|
||||||
|
// be declared explicitly on the runtime classpath for useJUnitPlatform()
|
||||||
|
// to discover tests.
|
||||||
|
testRuntimeOnly(libs.junit.platform.launcher)
|
||||||
|
|
||||||
androidTestImplementation(platform(libs.compose.bom))
|
androidTestImplementation(platform(libs.compose.bom))
|
||||||
androidTestImplementation(libs.compose.ui.test)
|
androidTestImplementation(libs.compose.ui.test)
|
||||||
|
// androidTest dep parity with the unit-test side; needed once we have
|
||||||
|
// instrumented tests that consume the same APIs.
|
||||||
|
androidTestImplementation(kotlin("test"))
|
||||||
|
androidTestImplementation(libs.kotlinx.coroutines.test)
|
||||||
debugImplementation(libs.compose.ui.test.manifest)
|
debugImplementation(libs.compose.ui.test.manifest)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -4,4 +4,10 @@ org.gradle.caching=true
|
|||||||
org.gradle.configuration-cache=true
|
org.gradle.configuration-cache=true
|
||||||
android.useAndroidX=true
|
android.useAndroidX=true
|
||||||
android.nonTransitiveRClass=true
|
android.nonTransitiveRClass=true
|
||||||
|
|
||||||
|
# detekt 2.0-alpha + ktlint Gradle plugin have intermittent
|
||||||
|
# configuration-cache compatibility holes. Warn rather than fail so the
|
||||||
|
# CC speedup applies where it can; revisit when both tools ship stable
|
||||||
|
# CC-clean releases.
|
||||||
|
org.gradle.configuration-cache.problems=warn
|
||||||
kotlin.code.style=official
|
kotlin.code.style=official
|
||||||
|
|||||||
@@ -73,6 +73,7 @@ coil-compose = { module = "io.coil-kt.coil3:coil-compose", version.ref = "coil"
|
|||||||
coil-network-okhttp = { module = "io.coil-kt.coil3:coil-network-okhttp", version.ref = "coil" }
|
coil-network-okhttp = { module = "io.coil-kt.coil3:coil-network-okhttp", version.ref = "coil" }
|
||||||
timber = { module = "com.jakewharton.timber:timber", version.ref = "timber" }
|
timber = { module = "com.jakewharton.timber:timber", version.ref = "timber" }
|
||||||
junit-jupiter = { module = "org.junit.jupiter:junit-jupiter", version.ref = "junit-jupiter" }
|
junit-jupiter = { module = "org.junit.jupiter:junit-jupiter", version.ref = "junit-jupiter" }
|
||||||
|
junit-platform-launcher = { module = "org.junit.platform:junit-platform-launcher", version = "1.11.3" }
|
||||||
turbine = { module = "app.cash.turbine:turbine", version.ref = "turbine" }
|
turbine = { module = "app.cash.turbine:turbine", version.ref = "turbine" }
|
||||||
mockk = { module = "io.mockk:mockk", version.ref = "mockk" }
|
mockk = { module = "io.mockk:mockk", version.ref = "mockk" }
|
||||||
compose-ui-test = { module = "androidx.compose.ui:ui-test-junit4" }
|
compose-ui-test = { module = "androidx.compose.ui:ui-test-junit4" }
|
||||||
|
|||||||
Reference in New Issue
Block a user