From 973d6d798a19b9f641e79e0c12d2537b23cf5604 Mon Sep 17 00:00:00 2001
From: stylianosgakis <stylianos@hedvig.com>
Date: Tue, 24 Oct 2023 22:01:24 +0200
Subject: [PATCH 01/11] Prepare to run the CI tests

Let them run in parallel to test them together
Do not write to the cache, just use what's already there.
---
 .github/workflows/pr.yml | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml
index d026870cc7..7ab9255079 100644
--- a/.github/workflows/pr.yml
+++ b/.github/workflows/pr.yml
@@ -2,9 +2,9 @@ name: PR
 
 on: pull_request
 
-concurrency:
-  group: ref-${{ github.ref }}
-  cancel-in-progress: true
+#concurrency:
+#  group: ref-${{ github.ref }}
+#  cancel-in-progress: true
 
 jobs:
   unit_test:
@@ -27,7 +27,7 @@ jobs:
         uses: gradle/gradle-build-action@v2
         with:
           # Only write to the cache for builds on the 'develop' branch
-          cache-read-only: false
+          cache-read-only: true
           gradle-home-cache-cleanup: true
       - name: Prebuild
         run: ./scripts/ci-prebuild.sh
@@ -61,7 +61,7 @@ jobs:
         uses: gradle/gradle-build-action@v2
         with:
           # Only write to the cache for builds on the 'develop' branch
-          cache-read-only: false
+          cache-read-only: true
           gradle-home-cache-cleanup: true
       - name: Prebuild
         run: ./scripts/ci-prebuild.sh
@@ -94,7 +94,7 @@ jobs:
         uses: gradle/gradle-build-action@v2
         with:
           # Only write to the cache for builds on the 'develop' branch
-          cache-read-only: false
+          cache-read-only: true
           gradle-home-cache-cleanup: true
       - name: Prebuild
         run: ./scripts/ci-prebuild.sh
@@ -131,7 +131,7 @@ jobs:
         uses: gradle/gradle-build-action@v2
         with:
           # Only write to the cache for builds on the 'develop' branch
-          cache-read-only: false
+          cache-read-only: true
           gradle-home-cache-cleanup: true
       - run: echo VERSION_CODE=$(expr 4700 + ${{ github.run_number }} + ${{ github.run_attempt }} - 1) >> $GITHUB_ENV
       - uses: chkfung/android-version-actions@v1.2

From 9ed1f81154b1ab57c9d2597de5e7e0ce8fe75619 Mon Sep 17 00:00:00 2001
From: stylianosgakis <stylianos@hedvig.com>
Date: Tue, 24 Oct 2023 22:02:53 +0200
Subject: [PATCH 02/11] ABI change in root project

---
 .../com/hedvig/app/feature/loggedin/ui/LoggedInActivity.kt   | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/app/app/src/main/kotlin/com/hedvig/app/feature/loggedin/ui/LoggedInActivity.kt b/app/app/src/main/kotlin/com/hedvig/app/feature/loggedin/ui/LoggedInActivity.kt
index ce0722460a..edea44106b 100644
--- a/app/app/src/main/kotlin/com/hedvig/app/feature/loggedin/ui/LoggedInActivity.kt
+++ b/app/app/src/main/kotlin/com/hedvig/app/feature/loggedin/ui/LoggedInActivity.kt
@@ -123,6 +123,7 @@ class LoggedInActivity : AppCompatActivity() {
     super.onCreate(savedInstanceState)
     WindowCompat.setDecorFitsSystemWindows(window, false)
 
+    iAmAPublicMethodInAppModule("input")
     val intent: Intent = intent
     val uri: Uri? = intent.data
     lifecycleScope.launch {
@@ -422,3 +423,7 @@ private fun Theme.apply() = when (this) {
     }
   }
 }
+
+fun iAmAPublicMethodInAppModule(input: String): Int {
+  return 1
+}

From cd3f48665bfed5350cc21fa4d7b499cb86e6bbc6 Mon Sep 17 00:00:00 2001
From: stylianosgakis <stylianos@hedvig.com>
Date: Tue, 24 Oct 2023 22:03:22 +0200
Subject: [PATCH 03/11] ubuntu-latest-8-vcpu

---
 .github/workflows/pr.yml | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml
index 7ab9255079..9784273ff1 100644
--- a/.github/workflows/pr.yml
+++ b/.github/workflows/pr.yml
@@ -8,7 +8,7 @@ on: pull_request
 
 jobs:
   unit_test:
-    runs-on: ubuntu-latest-64vcpu
+    runs-on: ubuntu-latest-8-vcpu
     steps:
       - uses: actions/checkout@v4
       - name: Copy CI gradle.properties
@@ -42,7 +42,7 @@ jobs:
           paths: "app/build/test-results/testDebugUnitTest/**/TEST-*.xml"
         if: always()
   lint:
-    runs-on: ubuntu-latest-64vcpu
+    runs-on: ubuntu-latest-8-vcpu
     steps:
       - uses: actions/checkout@v4
       - name: Copy CI gradle.properties
@@ -75,7 +75,7 @@ jobs:
           report-path: app/build/reports/lint-results-debug.xml
         continue-on-error: true
   ktlint:
-    runs-on: ubuntu-latest-64vcpu
+    runs-on: ubuntu-latest-8-vcpu
     steps:
       - uses: actions/checkout@v4
       - name: Copy CI gradle.properties
@@ -111,7 +111,7 @@ jobs:
         with:
           report-path: build/reports/ktlint/*.xml
   build:
-    runs-on: ubuntu-latest-64vcpu
+    runs-on: ubuntu-latest-8-vcpu
     steps:
       - name: Checkout
         uses: actions/checkout@v4

From bafb92a2985bda44bc21c63d7367322bcd5b510b Mon Sep 17 00:00:00 2001
From: stylianosgakis <stylianos@hedvig.com>
Date: Tue, 24 Oct 2023 22:30:24 +0200
Subject: [PATCH 04/11] Add public ABI changing functions to leaf JVM and
 Android modules

---
 .../com/hedvig/android/apollo/giraffe/di/GiraffeModule.kt  | 7 +++++++
 .../src/main/kotlin/com/hedvig/android/logger/Logcat.kt    | 5 +++++
 .../main/kotlin/com/hedvig/android/logger/LogcatLogger.kt  | 7 +++++++
 3 files changed, 19 insertions(+)

diff --git a/app/apollo/apollo-giraffe-public/src/main/kotlin/com/hedvig/android/apollo/giraffe/di/GiraffeModule.kt b/app/apollo/apollo-giraffe-public/src/main/kotlin/com/hedvig/android/apollo/giraffe/di/GiraffeModule.kt
index 38b9422629..6a22a89c49 100644
--- a/app/apollo/apollo-giraffe-public/src/main/kotlin/com/hedvig/android/apollo/giraffe/di/GiraffeModule.kt
+++ b/app/apollo/apollo-giraffe-public/src/main/kotlin/com/hedvig/android/apollo/giraffe/di/GiraffeModule.kt
@@ -6,6 +6,9 @@ import org.koin.dsl.module
 
 @Suppress("RemoveExplicitTypeArguments")
 val giraffeModule = module {
+  publicAndroidModuleFunction("").also {
+    it + 1
+  }
   single<ApolloClient>(giraffeClient) {
     val hedvigBuildConstants = get<HedvigBuildConstants>()
     get<ApolloClient.Builder>().copy()
@@ -14,3 +17,7 @@ val giraffeModule = module {
       .build()
   }
 }
+
+fun publicAndroidModuleFunction(input: String): Int {
+  return 3
+}
diff --git a/app/logging/logging-public/src/main/kotlin/com/hedvig/android/logger/Logcat.kt b/app/logging/logging-public/src/main/kotlin/com/hedvig/android/logger/Logcat.kt
index f1efb0bde1..050d81e510 100644
--- a/app/logging/logging-public/src/main/kotlin/com/hedvig/android/logger/Logcat.kt
+++ b/app/logging/logging-public/src/main/kotlin/com/hedvig/android/logger/Logcat.kt
@@ -9,7 +9,12 @@ inline fun logcat(
   throwable: Throwable? = null,
   noinline message: () -> String,
 ) {
+  publicFunctionInLeafJvmModule()
   with(LogcatLogger.logger) {
     log(priority, throwable, message)
   }
 }
+
+fun publicFunctionInLeafJvmModule() {
+  println("publicFunctionInLeafJvmModule + ${1 + 2}")
+}
diff --git a/app/logging/logging-public/src/main/kotlin/com/hedvig/android/logger/LogcatLogger.kt b/app/logging/logging-public/src/main/kotlin/com/hedvig/android/logger/LogcatLogger.kt
index 306d2a2204..705951c713 100644
--- a/app/logging/logging-public/src/main/kotlin/com/hedvig/android/logger/LogcatLogger.kt
+++ b/app/logging/logging-public/src/main/kotlin/com/hedvig/android/logger/LogcatLogger.kt
@@ -1,5 +1,7 @@
 package com.hedvig.android.logger
 
+import com.hedvig.android.logger.LogcatLogger.NoLog.publicFunctionInInterface
+
 /**
  * Logger that [logcat] delegates to. Call [install] to install a new logger, the default is a
  * no-op logger. Calling [uninstall] falls back to the default no-op logger.
@@ -49,6 +51,7 @@ interface LogcatLogger {
      */
     fun uninstall() {
       synchronized(this) {
+        publicFunctionInInterface()
         installedThrowable = null
         logger = NoLog
       }
@@ -65,4 +68,8 @@ interface LogcatLogger {
       message: () -> String,
     ) = error("Should never receive any log")
   }
+
+  fun publicFunctionInInterface() {
+    println("publicFunctionInInterface + ${1 + 2}")
+  }
 }

From 93f455985e3eb8404e52fa793af31591403d461b Mon Sep 17 00:00:00 2001
From: stylianosgakis <stylianos@hedvig.com>
Date: Tue, 24 Oct 2023 23:24:17 +0200
Subject: [PATCH 05/11] More ABI breaking changes and add an android resource

---
 .../app/feature/loggedin/ui/LoggedInActivity.kt     | 13 +++++++++++++
 .../android/core/icons/PublicApiChangeClass.kt      |  9 +++++++++
 .../src/main/res/drawable/ic_info_abi.xml           | 10 ++++++++++
 .../android/feature/home/home/ui/HomeDestination.kt |  9 +++++++++
 .../feature/profile/payment/PaymentDestination.kt   |  5 +++++
 .../feature/profile/tab/ProfileDestination.kt       |  6 ++++++
 6 files changed, 52 insertions(+)
 create mode 100644 app/core/core-icons/src/main/kotlin/com/hedvig/android/core/icons/PublicApiChangeClass.kt
 create mode 100644 app/core/core-icons/src/main/res/drawable/ic_info_abi.xml

diff --git a/app/app/src/main/kotlin/com/hedvig/app/feature/loggedin/ui/LoggedInActivity.kt b/app/app/src/main/kotlin/com/hedvig/app/feature/loggedin/ui/LoggedInActivity.kt
index edea44106b..f5e51b4b6a 100644
--- a/app/app/src/main/kotlin/com/hedvig/app/feature/loggedin/ui/LoggedInActivity.kt
+++ b/app/app/src/main/kotlin/com/hedvig/app/feature/loggedin/ui/LoggedInActivity.kt
@@ -32,6 +32,7 @@ import androidx.compose.foundation.layout.fillMaxWidth
 import androidx.compose.foundation.layout.only
 import androidx.compose.foundation.layout.systemBars
 import androidx.compose.foundation.layout.union
+import androidx.compose.material3.Icon
 import androidx.compose.material3.MaterialTheme
 import androidx.compose.material3.Surface
 import androidx.compose.material3.windowsizeclass.calculateWindowSizeClass
@@ -42,6 +43,7 @@ import androidx.compose.ui.Alignment
 import androidx.compose.ui.Modifier
 import androidx.compose.ui.composed
 import androidx.compose.ui.platform.LocalDensity
+import androidx.compose.ui.res.painterResource
 import androidx.compose.ui.unit.LayoutDirection
 import androidx.compose.ui.unit.dp
 import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen
@@ -64,6 +66,7 @@ import com.hedvig.android.core.buildconstants.HedvigBuildConstants
 import com.hedvig.android.core.demomode.DemoManager
 import com.hedvig.android.core.designsystem.material3.motion.MotionTokens
 import com.hedvig.android.core.designsystem.theme.HedvigTheme
+import com.hedvig.android.core.icons.PublicApiChangeClass
 import com.hedvig.android.data.settings.datastore.SettingsDataStore
 import com.hedvig.android.hanalytics.featureflags.FeatureManager
 import com.hedvig.android.hanalytics.featureflags.flags.Feature
@@ -217,6 +220,10 @@ class LoggedInActivity : AppCompatActivity() {
 
     setContent {
       val market by marketManager.market.collectAsStateWithLifecycle()
+      Icon(
+        painterResource(com.hedvig.android.core.icons.R.drawable.ic_info_abi),
+        PublicApiChangeClass().helloCi().string + PubAppClass().hello(),
+      )
       HedvigTheme {
         val windowSizeClass = calculateWindowSizeClass(this)
         HedvigApp(
@@ -427,3 +434,9 @@ private fun Theme.apply() = when (this) {
 fun iAmAPublicMethodInAppModule(input: String): Int {
   return 1
 }
+
+class PubAppClass {
+  fun hello(): Int {
+    return 1
+  }
+}
diff --git a/app/core/core-icons/src/main/kotlin/com/hedvig/android/core/icons/PublicApiChangeClass.kt b/app/core/core-icons/src/main/kotlin/com/hedvig/android/core/icons/PublicApiChangeClass.kt
new file mode 100644
index 0000000000..5ed63a9f57
--- /dev/null
+++ b/app/core/core-icons/src/main/kotlin/com/hedvig/android/core/icons/PublicApiChangeClass.kt
@@ -0,0 +1,9 @@
+package com.hedvig.android.core.icons
+
+class PublicApiChangeClass {
+  fun helloCi(): MyString {
+    return MyString("2 + 2 + 4 - 1")
+  }
+}
+
+class MyString(val string: String)
diff --git a/app/core/core-icons/src/main/res/drawable/ic_info_abi.xml b/app/core/core-icons/src/main/res/drawable/ic_info_abi.xml
new file mode 100644
index 0000000000..3703dbc572
--- /dev/null
+++ b/app/core/core-icons/src/main/res/drawable/ic_info_abi.xml
@@ -0,0 +1,10 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+    android:width="14dp"
+    android:height="14dp"
+    android:viewportWidth="14"
+    android:viewportHeight="14">
+    <path
+        android:pathData="M14,7C14,10.866 10.866,14 7,14C3.134,14 0,10.866 0,7C0,3.134 3.134,0 7,0C10.866,0 14,3.134 14,7ZM8,3.625C8,4.177 7.552,4.625 7,4.625C6.448,4.625 6,4.177 6,3.625C6,3.073 6.448,2.625 7,2.625C7.552,2.625 8,3.073 8,3.625ZM7.77,6.319C7.77,5.905 7.434,5.569 7.02,5.569C6.606,5.569 6.27,5.905 6.27,6.319V10.308C6.27,10.722 6.606,11.058 7.02,11.058C7.434,11.058 7.77,10.722 7.77,10.308V6.319Z"
+        android:fillColor="#59BFFA"
+        android:fillType="evenOdd"/>
+</vector>
diff --git a/app/feature/feature-home/src/main/kotlin/com/hedvig/android/feature/home/home/ui/HomeDestination.kt b/app/feature/feature-home/src/main/kotlin/com/hedvig/android/feature/home/home/ui/HomeDestination.kt
index c4ca75b4ab..9a2eb4735a 100644
--- a/app/feature/feature-home/src/main/kotlin/com/hedvig/android/feature/home/home/ui/HomeDestination.kt
+++ b/app/feature/feature-home/src/main/kotlin/com/hedvig/android/feature/home/home/ui/HomeDestination.kt
@@ -27,6 +27,7 @@ import androidx.compose.material.icons.Icons
 import androidx.compose.material3.ButtonDefaults
 import androidx.compose.material3.CardDefaults
 import androidx.compose.material3.ExperimentalMaterial3Api
+import androidx.compose.material3.Icon
 import androidx.compose.material3.MaterialTheme
 import androidx.compose.material3.Surface
 import androidx.compose.material3.Text
@@ -45,6 +46,7 @@ import androidx.compose.ui.layout.onSizeChanged
 import androidx.compose.ui.platform.LocalContext
 import androidx.compose.ui.platform.LocalDensity
 import androidx.compose.ui.platform.testTag
+import androidx.compose.ui.res.painterResource
 import androidx.compose.ui.res.stringResource
 import androidx.compose.ui.unit.Dp
 import androidx.compose.ui.unit.IntSize
@@ -66,6 +68,7 @@ import com.hedvig.android.core.designsystem.material3.warningElement
 import com.hedvig.android.core.designsystem.preview.HedvigPreview
 import com.hedvig.android.core.designsystem.theme.HedvigTheme
 import com.hedvig.android.core.icons.Hedvig
+import com.hedvig.android.core.icons.PublicApiChangeClass
 import com.hedvig.android.core.icons.hedvig.normal.WarningFilled
 import com.hedvig.android.core.ui.appbar.m3.ToolbarChatIcon
 import com.hedvig.android.core.ui.appbar.m3.TopAppBarLayoutForActions
@@ -103,6 +106,8 @@ import kotlinx.datetime.toJavaLocalDate
 import java.time.format.DateTimeFormatter
 import java.time.format.FormatStyle
 
+
+
 @Composable
 internal fun HomeDestination(
   viewModel: HomeViewModel,
@@ -118,6 +123,10 @@ internal fun HomeDestination(
 ) {
   val uiState by viewModel.uiState.collectAsStateWithLifecycle()
   val notificationPermissionState = rememberNotificationPermissionState()
+  Icon(
+    painterResource(com.hedvig.android.core.icons.R.drawable.ic_info_abi),
+    PublicApiChangeClass().helloCi().string,
+  )
   HomeScreen(
     uiState = uiState,
     notificationPermissionState = notificationPermissionState,
diff --git a/app/feature/feature-profile/src/main/kotlin/com/hedvig/android/feature/profile/payment/PaymentDestination.kt b/app/feature/feature-profile/src/main/kotlin/com/hedvig/android/feature/profile/payment/PaymentDestination.kt
index d11495d6e8..35c32646e9 100644
--- a/app/feature/feature-profile/src/main/kotlin/com/hedvig/android/feature/profile/payment/PaymentDestination.kt
+++ b/app/feature/feature-profile/src/main/kotlin/com/hedvig/android/feature/profile/payment/PaymentDestination.kt
@@ -54,6 +54,7 @@ import com.hedvig.android.core.designsystem.material3.typeElement
 import com.hedvig.android.core.designsystem.preview.HedvigPreview
 import com.hedvig.android.core.designsystem.theme.HedvigTheme
 import com.hedvig.android.core.icons.Hedvig
+import com.hedvig.android.core.icons.PublicApiChangeClass
 import com.hedvig.android.core.icons.hedvig.normal.Payments
 import com.hedvig.android.core.icons.hedvig.normal.Waiting
 import com.hedvig.android.core.ui.clearFocusOnTap
@@ -81,6 +82,10 @@ internal fun PaymentDestination(
   market: Market,
 ) {
   val uiState by viewModel.uiState.collectAsStateWithLifecycle()
+  Icon(
+    painterResource(com.hedvig.android.core.icons.R.drawable.ic_info_abi),
+    PublicApiChangeClass().helloCi().string,
+  )
   PaymentScreen(
     uiState = uiState,
     locale = viewModel.languageService.getLocale(),
diff --git a/app/feature/feature-profile/src/main/kotlin/com/hedvig/android/feature/profile/tab/ProfileDestination.kt b/app/feature/feature-profile/src/main/kotlin/com/hedvig/android/feature/profile/tab/ProfileDestination.kt
index 29c0944d93..6e36e78040 100644
--- a/app/feature/feature-profile/src/main/kotlin/com/hedvig/android/feature/profile/tab/ProfileDestination.kt
+++ b/app/feature/feature-profile/src/main/kotlin/com/hedvig/android/feature/profile/tab/ProfileDestination.kt
@@ -41,6 +41,7 @@ import androidx.compose.ui.Modifier
 import androidx.compose.ui.graphics.vector.ImageVector
 import androidx.compose.ui.platform.LocalDensity
 import androidx.compose.ui.platform.testTag
+import androidx.compose.ui.res.painterResource
 import androidx.compose.ui.res.stringResource
 import androidx.compose.ui.unit.dp
 import androidx.lifecycle.compose.collectAsStateWithLifecycle
@@ -49,6 +50,7 @@ import com.hedvig.android.core.designsystem.component.button.HedvigTextButton
 import com.hedvig.android.core.designsystem.preview.HedvigPreview
 import com.hedvig.android.core.designsystem.theme.HedvigTheme
 import com.hedvig.android.core.icons.Hedvig
+import com.hedvig.android.core.icons.PublicApiChangeClass
 import com.hedvig.android.core.icons.hedvig.normal.ContactInformation
 import com.hedvig.android.core.icons.hedvig.normal.Eurobonus
 import com.hedvig.android.core.icons.hedvig.normal.Info
@@ -77,6 +79,10 @@ internal fun ProfileDestination(
   viewModel: ProfileViewModel,
 ) {
   val uiState by viewModel.data.collectAsStateWithLifecycle()
+  Icon(
+    painterResource(com.hedvig.android.core.icons.R.drawable.ic_info_abi),
+    PublicApiChangeClass().helloCi().string,
+  )
   ProfileScreen(
     uiState = uiState,
     reload = viewModel::reload,

From b12d18b2fa9071e296ab7d16aa27b5f0e7c097e1 Mon Sep 17 00:00:00 2001
From: stylianosgakis <stylianos@hedvig.com>
Date: Tue, 24 Oct 2023 22:04:14 +0200
Subject: [PATCH 06/11] ubuntu-latest-16-vcpu

---
 .github/workflows/pr.yml | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml
index 9784273ff1..452b48fe13 100644
--- a/.github/workflows/pr.yml
+++ b/.github/workflows/pr.yml
@@ -8,7 +8,7 @@ on: pull_request
 
 jobs:
   unit_test:
-    runs-on: ubuntu-latest-8-vcpu
+    runs-on: ubuntu-latest-16-vcpu
     steps:
       - uses: actions/checkout@v4
       - name: Copy CI gradle.properties
@@ -42,7 +42,7 @@ jobs:
           paths: "app/build/test-results/testDebugUnitTest/**/TEST-*.xml"
         if: always()
   lint:
-    runs-on: ubuntu-latest-8-vcpu
+    runs-on: ubuntu-latest-16-vcpu
     steps:
       - uses: actions/checkout@v4
       - name: Copy CI gradle.properties
@@ -75,7 +75,7 @@ jobs:
           report-path: app/build/reports/lint-results-debug.xml
         continue-on-error: true
   ktlint:
-    runs-on: ubuntu-latest-8-vcpu
+    runs-on: ubuntu-latest-16-vcpu
     steps:
       - uses: actions/checkout@v4
       - name: Copy CI gradle.properties
@@ -111,7 +111,7 @@ jobs:
         with:
           report-path: build/reports/ktlint/*.xml
   build:
-    runs-on: ubuntu-latest-8-vcpu
+    runs-on: ubuntu-latest-16-vcpu
     steps:
       - name: Checkout
         uses: actions/checkout@v4

From 3b5f5695c57f4790379692bc5b7c3a5ca87e09d5 Mon Sep 17 00:00:00 2001
From: stylianosgakis <stylianos@hedvig.com>
Date: Tue, 24 Oct 2023 22:05:11 +0200
Subject: [PATCH 07/11] ubuntu-latest-32-vcpu

---
 .github/workflows/pr.yml | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml
index 452b48fe13..33da3e7f79 100644
--- a/.github/workflows/pr.yml
+++ b/.github/workflows/pr.yml
@@ -8,7 +8,7 @@ on: pull_request
 
 jobs:
   unit_test:
-    runs-on: ubuntu-latest-16-vcpu
+    runs-on: ubuntu-latest-32-vcpu
     steps:
       - uses: actions/checkout@v4
       - name: Copy CI gradle.properties
@@ -42,7 +42,7 @@ jobs:
           paths: "app/build/test-results/testDebugUnitTest/**/TEST-*.xml"
         if: always()
   lint:
-    runs-on: ubuntu-latest-16-vcpu
+    runs-on: ubuntu-latest-32-vcpu
     steps:
       - uses: actions/checkout@v4
       - name: Copy CI gradle.properties
@@ -75,7 +75,7 @@ jobs:
           report-path: app/build/reports/lint-results-debug.xml
         continue-on-error: true
   ktlint:
-    runs-on: ubuntu-latest-16-vcpu
+    runs-on: ubuntu-latest-32-vcpu
     steps:
       - uses: actions/checkout@v4
       - name: Copy CI gradle.properties
@@ -111,7 +111,7 @@ jobs:
         with:
           report-path: build/reports/ktlint/*.xml
   build:
-    runs-on: ubuntu-latest-16-vcpu
+    runs-on: ubuntu-latest-32-vcpu
     steps:
       - name: Checkout
         uses: actions/checkout@v4

From 9843dae3fc2612ec6302dd55cabeb35b480e2ba0 Mon Sep 17 00:00:00 2001
From: stylianosgakis <stylianos@hedvig.com>
Date: Tue, 24 Oct 2023 22:05:39 +0200
Subject: [PATCH 08/11] ubuntu-latest-64-vcpu

---
 .github/workflows/pr.yml | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml
index 33da3e7f79..7ab9255079 100644
--- a/.github/workflows/pr.yml
+++ b/.github/workflows/pr.yml
@@ -8,7 +8,7 @@ on: pull_request
 
 jobs:
   unit_test:
-    runs-on: ubuntu-latest-32-vcpu
+    runs-on: ubuntu-latest-64vcpu
     steps:
       - uses: actions/checkout@v4
       - name: Copy CI gradle.properties
@@ -42,7 +42,7 @@ jobs:
           paths: "app/build/test-results/testDebugUnitTest/**/TEST-*.xml"
         if: always()
   lint:
-    runs-on: ubuntu-latest-32-vcpu
+    runs-on: ubuntu-latest-64vcpu
     steps:
       - uses: actions/checkout@v4
       - name: Copy CI gradle.properties
@@ -75,7 +75,7 @@ jobs:
           report-path: app/build/reports/lint-results-debug.xml
         continue-on-error: true
   ktlint:
-    runs-on: ubuntu-latest-32-vcpu
+    runs-on: ubuntu-latest-64vcpu
     steps:
       - uses: actions/checkout@v4
       - name: Copy CI gradle.properties
@@ -111,7 +111,7 @@ jobs:
         with:
           report-path: build/reports/ktlint/*.xml
   build:
-    runs-on: ubuntu-latest-32-vcpu
+    runs-on: ubuntu-latest-64vcpu
     steps:
       - name: Checkout
         uses: actions/checkout@v4

From 45d69943cb008f191d9729bff5b7e3e6ab815349 Mon Sep 17 00:00:00 2001
From: stylianosgakis <stylianos@hedvig.com>
Date: Tue, 24 Oct 2023 23:57:07 +0200
Subject: [PATCH 09/11] Try with a bonkers memory number for the big runner

---
 .github/ci-gradle.properties | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/.github/ci-gradle.properties b/.github/ci-gradle.properties
index 92ddadcbba..e7cb75e04f 100644
--- a/.github/ci-gradle.properties
+++ b/.github/ci-gradle.properties
@@ -3,4 +3,6 @@ org.gradle.parallel=true
 org.gradle.workers.max=2
 
 kotlin.incremental=false
-kotlin.compiler.execution.strategy=in-process
\ No newline at end of file
+kotlin.compiler.execution.strategy=in-process
+
+org.gradle.jvmargs=-Xms192g -Xmx192g -XX:MaxMetaspaceSize=1g -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 -XX:+UseParallelGC

From c880e566ae990891033aba5be0aea0ea3e74217f Mon Sep 17 00:00:00 2001
From: stylianosgakis <stylianos@hedvig.com>
Date: Wed, 25 Oct 2023 00:28:45 +0200
Subject: [PATCH 10/11] More big boy number tests

---
 .github/ci-gradle.properties | 2 +-
 gradle.properties            | 4 +++-
 2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/.github/ci-gradle.properties b/.github/ci-gradle.properties
index e7cb75e04f..5c1a64a022 100644
--- a/.github/ci-gradle.properties
+++ b/.github/ci-gradle.properties
@@ -1,8 +1,8 @@
 org.gradle.daemon=false
 org.gradle.parallel=true
-org.gradle.workers.max=2
 
 kotlin.incremental=false
 kotlin.compiler.execution.strategy=in-process
 
 org.gradle.jvmargs=-Xms192g -Xmx192g -XX:MaxMetaspaceSize=1g -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 -XX:+UseParallelGC
+org.gradle.workers.max = 48
diff --git a/gradle.properties b/gradle.properties
index c52c0d6262..3d3fcf2170 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -1,7 +1,9 @@
 # Specifies the JVM arguments used for the daemon process.
 # The setting is particularly useful for tweaking memory settings.
 # Ensure important default jvmargs aren't overwritten. See https://github.com/gradle/gradle/issues/19750
-org.gradle.jvmargs=-Xmx9216M -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 -XX:+UseParallelGC -XX:MaxMetaspaceSize=1g
+#org.gradle.jvmargs=-Xmx9216M -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 -XX:+UseParallelGC -XX:MaxMetaspaceSize=1g
+org.gradle.jvmargs=-Xms192g -Xmx192g -XX:MaxMetaspaceSize=1g -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 -XX:+UseParallelGC
+org.gradle.workers.max = 48
 
 # When configured, Gradle will run in incubating parallel mode.
 # This option should only be used with decoupled projects. More details, visit

From 75e7730c02890c4db61379f0f90fbe9877bb7539 Mon Sep 17 00:00:00 2001
From: stylianosgakis <stylianos@hedvig.com>
Date: Wed, 25 Oct 2023 00:39:35 +0200
Subject: [PATCH 11/11] More big boy number tests

---
 .github/ci-gradle.properties | 1 -
 gradle.properties            | 2 +-
 2 files changed, 1 insertion(+), 2 deletions(-)

diff --git a/.github/ci-gradle.properties b/.github/ci-gradle.properties
index 5c1a64a022..286117fc2a 100644
--- a/.github/ci-gradle.properties
+++ b/.github/ci-gradle.properties
@@ -4,5 +4,4 @@ org.gradle.parallel=true
 kotlin.incremental=false
 kotlin.compiler.execution.strategy=in-process
 
-org.gradle.jvmargs=-Xms192g -Xmx192g -XX:MaxMetaspaceSize=1g -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 -XX:+UseParallelGC
 org.gradle.workers.max = 48
diff --git a/gradle.properties b/gradle.properties
index 3d3fcf2170..b0364f874c 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -2,7 +2,7 @@
 # The setting is particularly useful for tweaking memory settings.
 # Ensure important default jvmargs aren't overwritten. See https://github.com/gradle/gradle/issues/19750
 #org.gradle.jvmargs=-Xmx9216M -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 -XX:+UseParallelGC -XX:MaxMetaspaceSize=1g
-org.gradle.jvmargs=-Xms192g -Xmx192g -XX:MaxMetaspaceSize=1g -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 -XX:+UseParallelGC
+org.gradle.jvmargs=-Xms128g -Xmx128g -XX:MaxMetaspaceSize=1g -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 -XX:+UseParallelGC
 org.gradle.workers.max = 48
 
 # When configured, Gradle will run in incubating parallel mode.