diff --git a/.github/workflows/Build.yaml b/.github/workflows/Build.yaml index 7e5a80eea..eca7500ad 100644 --- a/.github/workflows/Build.yaml +++ b/.github/workflows/Build.yaml @@ -25,7 +25,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Copy CI gradle.properties run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties @@ -37,7 +37,7 @@ jobs: java-version: 21 - name: Setup Gradle - uses: gradle/actions/setup-gradle@v4 + uses: gradle/actions/setup-gradle@v5 with: cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }} build-scan-publish: true @@ -70,7 +70,7 @@ jobs: ./gradlew dependencyGuardBaseline - name: Push new Dependency Guard baselines if available - uses: stefanzweifel/git-auto-commit-action@v5 + uses: stefanzweifel/git-auto-commit-action@v7 if: steps.dependencyguard_baseline.outcome == 'success' with: file_pattern: '**/dependencies/*.txt' @@ -94,7 +94,7 @@ jobs: - name: Push new graphs if available if: steps.graphs_verify.outcome == 'failure' && github.event_name == 'pull_request' - uses: stefanzweifel/git-auto-commit-action@v5 + uses: stefanzweifel/git-auto-commit-action@v7 with: file_pattern: '**/README.md' disable_globbing: true @@ -122,7 +122,7 @@ jobs: ./gradlew recordRoborazziDemoDebug - name: Push new screenshots if available - uses: stefanzweifel/git-auto-commit-action@v5 + uses: stefanzweifel/git-auto-commit-action@v7 if: steps.screenshotsrecord.outcome == 'success' with: file_pattern: '*/*.png' @@ -137,21 +137,21 @@ jobs: run: ./gradlew :app:assemble -PminifyWithR8=false - name: Upload build outputs (APKs) - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: name: APKs path: '**/build/outputs/apk/**/*.apk' - name: Upload JVM local results (XML) if: ${{ !cancelled() }} - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: name: local-test-results path: '**/build/test-results/test*UnitTest/**.xml' - name: Upload screenshot results (PNG) if: ${{ !cancelled() }} - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: name: screenshot-test-results path: '**/build/outputs/roborazzi/*_compare.png' @@ -161,28 +161,28 @@ jobs: - name: Upload lint reports (HTML) if: ${{ !cancelled() }} - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: name: lint-reports path: '**/build/reports/lint-results-*.html' - name: Upload lint reports (SARIF) for app module if: ${{ !cancelled() && hashFiles('app/**/*.sarif') != '' }} - uses: github/codeql-action/upload-sarif@v3 + uses: github/codeql-action/upload-sarif@v4 with: sarif_file: './app/' category: app - name: Upload lint reports (SARIF) for app-nia-catalog module if: ${{ !cancelled() && hashFiles('app-nia-catalog/**/*.sarif') != '' }} - uses: github/codeql-action/upload-sarif@v3 + uses: github/codeql-action/upload-sarif@v4 with: sarif_file: './app-nia-catalog/' category: app-nia-catalog - name: Upload lint reports (SARIF) for lint module if: ${{ !cancelled() && hashFiles('lint/**/*.sarif') != '' }} - uses: github/codeql-action/upload-sarif@v3 + uses: github/codeql-action/upload-sarif@v4 with: sarif_file: './lint/' category: lint @@ -217,7 +217,7 @@ jobs: ls /dev/kvm - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Copy CI gradle.properties run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties @@ -229,7 +229,7 @@ jobs: java-version: 21 - name: Setup Gradle - uses: gradle/actions/setup-gradle@v4 + uses: gradle/actions/setup-gradle@v5 with: cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }} build-scan-publish: true @@ -258,7 +258,7 @@ jobs: - name: Upload test reports if: ${{ !cancelled() }} - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: name: test-reports-${{ matrix.api-level }} path: '**/build/reports/androidTests' @@ -266,7 +266,7 @@ jobs: - name: Display local test coverage (only API 30) if: matrix.api-level == 30 id: jacoco - uses: madrapps/jacoco-report@v1.7.1 + uses: madrapps/jacoco-report@v1.7.2 with: title: Combined test coverage report min-coverage-overall: 40 @@ -277,7 +277,7 @@ jobs: - name: Upload local coverage reports (XML + HTML) (only API 30) if: matrix.api-level == 30 - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v6 with: name: coverage-reports if-no-files-found: error diff --git a/.github/workflows/NightlyBaselineProfiles.yaml b/.github/workflows/NightlyBaselineProfiles.yaml index 7e6158653..8bf89bced 100644 --- a/.github/workflows/NightlyBaselineProfiles.yaml +++ b/.github/workflows/NightlyBaselineProfiles.yaml @@ -18,7 +18,7 @@ jobs: steps: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Enable KVM group perms run: | @@ -37,7 +37,7 @@ jobs: java-version: 17 - name: Setup Gradle - uses: gradle/actions/setup-gradle@v4 + uses: gradle/actions/setup-gradle@v5 with: cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }} build-scan-publish: true diff --git a/.github/workflows/Release.yml b/.github/workflows/Release.yml index e890bb5a7..6818f7513 100644 --- a/.github/workflows/Release.yml +++ b/.github/workflows/Release.yml @@ -22,7 +22,7 @@ jobs: - name: Checkout - uses: actions/checkout@v4 + uses: actions/checkout@v6 - name: Copy CI gradle.properties run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties @@ -34,7 +34,7 @@ jobs: java-version: 17 - name: Setup Gradle - uses: gradle/actions/setup-gradle@v4 + uses: gradle/actions/setup-gradle@v5 with: cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }} build-scan-publish: true diff --git a/gradle/init.gradle.kts b/gradle/init.gradle.kts index 44dc41200..9cea3f0dd 100644 --- a/gradle/init.gradle.kts +++ b/gradle/init.gradle.kts @@ -17,7 +17,7 @@ val ktlintVersion = "1.4.0" initscript { - val spotlessVersion = "6.25.0" + val spotlessVersion = "8.1.0" repositories { mavenCentral() diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index b4bbd187e..86657b952 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,67 +1,67 @@ [versions] -accompanist = "0.37.0" -androidDesugarJdkLibs = "2.1.4" +accompanist = "0.37.3" +androidDesugarJdkLibs = "2.1.5" # AGP and tools should be updated together -androidGradlePlugin = "8.13.1" -androidTools = "31.13.1" -androidxActivity = "1.9.3" -androidxAppCompat = "1.7.0" -androidxBrowser = "1.8.0" -androidxComposeBom = "2025.09.01" -androidxComposeFoundation = "1.8.0-alpha07" -androidxComposeMaterial3Adaptive = "1.1.0-rc01" -androidxComposeMaterial3AdaptiveNavigation3 = "1.3.0-alpha04" -androidxComposeRuntimeTracing = "1.7.6" -androidxCore = "1.15.0" -androidxCoreSplashscreen = "1.0.1" +androidGradlePlugin = "8.13.2" +androidTools = "31.13.2" +androidxActivity = "1.12.2" +androidxAppCompat = "1.7.1" +androidxBrowser = "1.9.0" +androidxComposeBom = "2025.12.01" +androidxComposeFoundation = "1.10.0" +androidxComposeMaterial3Adaptive = "1.2.0" +androidxComposeMaterial3AdaptiveNavigation3 = "1.3.0-alpha05" +androidxComposeRuntimeTracing = "1.10.0" +androidxCore = "1.17.0" +androidxCoreSplashscreen = "1.2.0" androidxDataStore = "1.2.0" -androidxEspresso = "3.6.1" -androidxHiltLifecycleViewModelCompose = "1.3.0-alpha02" +androidxEspresso = "3.7.0" +androidxHiltLifecycleViewModelCompose = "1.3.0" androidxLifecycle = "2.10.0" -androidxLintGradle = "1.0.0-alpha03" +androidxLintGradle = "1.0.0-alpha05" androidxLifecycleViewModelNavigation3 = "2.10.0" androidxMacroBenchmark = "1.4.1" -androidxMetrics = "1.0.0-beta01" -androidxNavigation = "2.8.5" +androidxMetrics = "1.0.0" +androidxNavigation = "2.9.6" androidxNavigation3 = "1.0.0" androidxProfileinstaller = "1.4.1" -androidxSavedStateCompose = "1.3.1" -androidxTestCore = "1.7.0-rc01" -androidxTestExt = "1.3.0-rc01" -androidxTestRules = "1.7.0-rc01" -androidxTestRunner = "1.7.0-rc01" -androidxTracing = "1.3.0-alpha02" +androidxSavedStateCompose = "1.4.0" +androidxTestCore = "1.7.0" +androidxTestExt = "1.3.0" +androidxTestRules = "1.7.0" +androidxTestRunner = "1.7.0" +androidxTracing = "1.3.0" androidxUiAutomator = "2.3.0" -androidxWindowManager = "1.3.0" -androidxWork = "2.10.0" +androidxWindowManager = "1.5.1" +androidxWork = "2.11.0" coil = "2.7.0" dependencyGuard = "0.5.0" -firebaseBom = "33.7.0" +firebaseBom = "34.7.0" firebaseCrashlyticsPlugin = "3.0.6" firebasePerfPlugin = "2.0.2" gmsPlugin = "4.4.4" -googleOss = "17.1.0" -googleOssPlugin = "0.10.9" +googleOss = "17.3.0" +googleOssPlugin = "0.10.10" hilt = "2.57.2" -hiltExt = "1.2.0" +hiltExt = "1.3.0" jacoco = "0.8.12" junit4 = "4.13.2" kotlin = "2.3.0" -kotlinxCoroutines = "1.10.1" -kotlinxDatetime = "0.6.1" -kotlinxSerializationJson = "1.8.0" +kotlinxCoroutines = "1.10.2" +kotlinxDatetime = "0.7.1-0.6.x-compat" +kotlinxSerializationJson = "1.9.0" ksp = "2.3.4" -okhttp = "4.12.0" -protobuf = "4.29.2" -protobufPlugin = "0.9.5" -retrofit = "2.11.0" +okhttp = "5.3.2" +protobuf = "4.33.2" +protobufPlugin = "0.9.6" +retrofit = "3.0.0" retrofitKotlinxSerializationJson = "1.0.0" robolectric = "4.16" -roborazzi = "1.51.0" -room = "2.8.3" -truth = "1.4.4" -turbine = "1.2.0" -uiTestJunit4 = "1.9.0-rc01" +roborazzi = "1.53.0" +room = "2.8.4" +truth = "1.4.5" +turbine = "1.2.1" +uiTestJunit4 = "1.10.0" [bundles] androidx-compose-ui-test = ["androidx-compose-ui-test", "androidx-compose-ui-testManifest"]