Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 34 additions & 11 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,11 @@ jobs:
- name: Copy CI gradle.properties
run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties

- name: Set up JDK 17
- name: Set up JDK 21
uses: actions/setup-java@v3
with:
distribution: 'zulu'
java-version: 17
java-version: 21

- name: Setup Gradle
uses: gradle/gradle-build-action@v2
Expand All @@ -46,14 +46,14 @@ jobs:
run: ./gradlew testDebug

- name: Upload build outputs (APKs)
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: build-outputs
path: app/build/outputs

- name: Upload build reports
if: always()
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: build-reports
path: app/build/reports
Expand All @@ -64,7 +64,8 @@ jobs:
timeout-minutes: 55
strategy:
matrix:
api-level: [34]
api-level: [35]
target: [google_apis]

steps:
- name: Delete unnecessary tools 🔧
Expand All @@ -91,28 +92,50 @@ jobs:
- name: Copy CI gradle.properties
run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties

- name: Set up JDK 17
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: 17
java-version: 21

- name: Setup Gradle
uses: gradle/gradle-build-action@v3
uses: gradle/actions/setup-gradle@v4

- name: AVD cache
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what's this for?
Why do we need this new workflow? If it's necessary, can you pull this out of this PR since the PR says it's updating libraries/ kotlin version

uses: actions/cache@v4
id: avd-cache
with:
path: |
~/.android/avd/*
~/.android/adb*
key: avd-${{ matrix.api-level }}

- name: create AVD and generate snapshot for caching
if: steps.avd-cache.outputs.cache-hit != 'true'
uses: reactivecircus/android-emulator-runner@v2
with:
api-level: ${{ matrix.api-level }}
force-avd-creation: false
arch: x86_64
emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
disable-animations: true
script: echo "Generated AVD snapshot for caching."

- name: Run instrumentation tests
uses: reactivecircus/android-emulator-runner@v2
with:
api-level: ${{ matrix.api-level }}
force-avd-creation: false
emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
arch: x86_64
disable-animations: true
disk-size: 6000M
heap-size: 600M
disk-size: 8192M
heap-size: 1024M
script: ./gradlew connectedDebugAndroidTest --daemon

- name: Upload test reports
if: always()
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: test-reports-${{ matrix.api-level }}
path: '*/build/reports/androidTests'
2 changes: 1 addition & 1 deletion .idea/kotlinc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

14 changes: 9 additions & 5 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import com.android.build.api.dsl.Packaging

/*
* Copyright 2022 The Android Open Source Project
*
Expand All @@ -17,14 +19,15 @@
plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.kotlin.android)
alias(libs.plugins.compose.compiler)
alias(libs.plugins.ksp)
alias(libs.plugins.hilt)
id("com.example.platform.convention")
}

java {
toolchain {
languageVersion.set(JavaLanguageVersion.of(17))
languageVersion.set(JavaLanguageVersion.of(21))
}
}

Expand All @@ -50,14 +53,14 @@ android {
isMinifyEnabled = false
proguardFiles(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
"proguard-rules.pro",
)
}
}

compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
sourceCompatibility = JavaVersion.VERSION_21
targetCompatibility = JavaVersion.VERSION_21
}

buildFeatures {
Expand All @@ -66,7 +69,8 @@ android {
composeOptions {
kotlinCompilerExtensionVersion = libs.versions.composeCompiler.get()
}
packagingOptions {

packaging {
resources {
excludes += "/META-INF/{AL2.0,LGPL2.1}"
}
Expand Down
2 changes: 1 addition & 1 deletion build-logic/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ group = "com.example.platform.plugin.buildlogic"

java {
toolchain {
languageVersion.set(JavaLanguageVersion.of(17))
languageVersion.set(JavaLanguageVersion.of(21))
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ class CommonConventionPlugin : Plugin<Project> {
pluginManager.withPlugin("java") {
extensions.configure<JavaPluginExtension> {
toolchain {
it.languageVersion.set(JavaLanguageVersion.of(17))
it.languageVersion.set(JavaLanguageVersion.of(21))
}
}
}
Expand All @@ -55,8 +55,8 @@ class CommonConventionPlugin : Plugin<Project> {
extensions.configure<KotlinJvmOptions> {
// Treat all Kotlin warnings as errors
allWarningsAsErrors = true
// Set JVM target to 17
jvmTarget = "17"
// Set JVM target to 21
jvmTarget = "21"
// Allow use of @OptIn
freeCompilerArgs += "-opt-in=kotlin.RequiresOptIn"
// Enable default methods in interfaces
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ class SamplePlugin : Plugin<Project> {
with(pluginManager) {
apply("com.android.library")
apply("org.jetbrains.kotlin.android")
apply("org.jetbrains.kotlin.plugin.compose")
apply("com.google.devtools.ksp")
apply("dagger.hilt.android.plugin")
apply("kotlin-parcelize")
Expand All @@ -50,15 +51,15 @@ class SamplePlugin : Plugin<Project> {
pluginManager.withPlugin("java") {
extensions.configure<JavaPluginExtension> {
toolchain {
it.languageVersion.set(JavaLanguageVersion.of(17))
it.languageVersion.set(JavaLanguageVersion.of(21))
}
}
}

// TODO: remove when KSP starts respecting the Java/Kotlin toolchain
tasks.withType(KotlinCompile::class.java).configureEach {
it.kotlinOptions {
jvmTarget = "17"
jvmTarget = "21"
}
}

Expand All @@ -73,8 +74,8 @@ class SamplePlugin : Plugin<Project> {
}

compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
sourceCompatibility = JavaVersion.VERSION_21
targetCompatibility = JavaVersion.VERSION_21
}

buildFeatures {
Expand Down
1 change: 1 addition & 0 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ plugins {
alias(libs.plugins.hilt) apply false
alias(libs.plugins.ksp) apply false
alias(libs.plugins.kotlin.android) apply false
alias(libs.plugins.compose.compiler) apply false

alias(libs.plugins.affectedmoduledetector)
alias(libs.plugins.versionCatalogUpdate)
Expand Down
Loading