From c379ee96b933f1a86f79b5682e844761ee46ccbf Mon Sep 17 00:00:00 2001 From: Callum Stott Date: Mon, 3 Nov 2025 11:36:15 +0000 Subject: [PATCH 01/13] Remove unneeded gradle task --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 18dad3409f7..3db1a634c8d 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -217,7 +217,7 @@ jobs: - run: name: Assemble connected test build - command: ./gradlew assembleDebug assembleDebugAndroidTest + command: ./gradlew assembleDebugAndroidTest - save_cache: paths: From 7c988d164684b0241fa389119e0162cfc3625d64 Mon Sep 17 00:00:00 2001 From: Callum Stott Date: Mon, 3 Nov 2025 15:52:02 +0000 Subject: [PATCH 02/13] Upgrade machines with appropriate Gradle configs --- .circleci/config.yml | 12 ++++++------ .circleci/gradle-compile.properties | 5 ----- .circleci/gradle-large.properties | 5 +++-- .circleci/gradle.properties | 5 +++-- 4 files changed, 12 insertions(+), 15 deletions(-) delete mode 100644 .circleci/gradle-compile.properties diff --git a/.circleci/config.yml b/.circleci/config.yml index 3db1a634c8d..8b30c7be499 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -14,13 +14,13 @@ references: working_directory: ~/work docker: - image: cimg/android:2025.09 - resource_class: medium+ + resource_class: large android_config_large: &android_config_large working_directory: ~/work docker: - image: cimg/android:2025.09 - resource_class: large + resource_class: x-large jobs: compile: @@ -39,7 +39,7 @@ jobs: - gradle-wrapper-{{ checksum "gradle/wrapper/gradle-wrapper.properties" }} - run: name: Copy gradle config - command: mkdir -p ~/.gradle && cp .circleci/gradle-compile.properties ~/.gradle/gradle.properties + command: mkdir -p ~/.gradle && cp .circleci/gradle.properties ~/.gradle/gradle.properties - run: name: Download Robolectric deps @@ -63,7 +63,7 @@ jobs: - . create_dependency_backup: - <<: *android_config + <<: *android_config_small steps: - attach_workspace: at: ~/work @@ -85,7 +85,7 @@ jobs: path: maven.tar check_quality: - <<: *android_config_large + <<: *android_config steps: - attach_workspace: at: ~/work @@ -99,7 +99,7 @@ jobs: - run: name: Copy gradle config - command: mkdir -p ~/.gradle && cp .circleci/gradle-large.properties ~/.gradle/gradle.properties + command: mkdir -p ~/.gradle && cp .circleci/gradle.properties ~/.gradle/gradle.properties - run: name: Run code quality checks diff --git a/.circleci/gradle-compile.properties b/.circleci/gradle-compile.properties deleted file mode 100644 index f517cc62076..00000000000 --- a/.circleci/gradle-compile.properties +++ /dev/null @@ -1,5 +0,0 @@ -org.gradle.jvmargs=-Xmx3g -XX:MaxMetaspaceSize=1g -org.gradle.daemon=false -org.gradle.parallel=true -org.gradle.workers.max=3 -kotlin.compiler.execution.strategy=in-process diff --git a/.circleci/gradle-large.properties b/.circleci/gradle-large.properties index 48af2c0807d..ba2d23a4825 100644 --- a/.circleci/gradle-large.properties +++ b/.circleci/gradle-large.properties @@ -1,6 +1,7 @@ +# Gradle config for "X-Large" Circle CI resource (https://circleci.com/pricing/price-list/) + org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=1g org.gradle.daemon=false org.gradle.parallel=true -org.gradle.workers.max=4 +org.gradle.workers.max=8 test.heap.max=1g -kotlin.compiler.execution.strategy=in-process diff --git a/.circleci/gradle.properties b/.circleci/gradle.properties index 3753d7b188d..8d358f36fbc 100644 --- a/.circleci/gradle.properties +++ b/.circleci/gradle.properties @@ -1,6 +1,7 @@ +# Gradle config for "Large" Circle CI resource (https://circleci.com/pricing/price-list/) + org.gradle.jvmargs=-Xmx2560m -XX:MaxMetaspaceSize=1g org.gradle.daemon=false org.gradle.parallel=true -org.gradle.workers.max=2 +org.gradle.workers.max=4 test.heap.max=1g -kotlin.compiler.execution.strategy=in-process From 828f5ee97dabda97e6606ba10fd10e2be9dbfecf Mon Sep 17 00:00:00 2001 From: Callum Stott Date: Mon, 3 Nov 2025 16:07:00 +0000 Subject: [PATCH 03/13] Correct resource name --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 8b30c7be499..3ea7c110d71 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -20,7 +20,7 @@ references: working_directory: ~/work docker: - image: cimg/android:2025.09 - resource_class: x-large + resource_class: xlarge jobs: compile: From c06dbf1f795b51ac6cfc3206bfc5c62cc8f3b71f Mon Sep 17 00:00:00 2001 From: Callum Stott Date: Mon, 3 Nov 2025 16:57:57 +0000 Subject: [PATCH 04/13] Only persist APKs from build_instrumented --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 3ea7c110d71..04aa8f6bfbb 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -227,7 +227,7 @@ jobs: - persist_to_workspace: root: ~/work paths: - - . + - collect_app/build/outputs/apk build_release: <<: *android_config From a0019176f21e3d83283e5f014daaac8df0c51411 Mon Sep 17 00:00:00 2001 From: Callum Stott Date: Mon, 3 Nov 2025 17:26:55 +0000 Subject: [PATCH 05/13] Correct APK size --- .circleci/config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 04aa8f6bfbb..6b754fd59b5 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -265,7 +265,7 @@ jobs: if [[ -n "$GOOGLE_MAPS_API_KEY" ]]; then \ ./check-size.sh 23117869 else - ./check-size.sh 13785543 + ./check-size.sh 13841204 fi - run: From 107eacfae287e1dc84bb7f443cca821ff80f12f8 Mon Sep 17 00:00:00 2001 From: Callum Stott Date: Tue, 4 Nov 2025 09:21:12 +0000 Subject: [PATCH 06/13] Simplify caching --- .circleci/config.yml | 82 +++++++++++++++----------------------------- 1 file changed, 28 insertions(+), 54 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 6b754fd59b5..27c778f7a72 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -27,20 +27,13 @@ jobs: <<: *android_config steps: - checkout - - run: - name: Generate combined build.gradle file for cache key - command: cat build.gradle */build.gradle */build.gradle.kts .circleci/config.yml gradle/libs.versions.toml > deps.txt - - restore_cache: - keys: - - compile-deps-{{ checksum "deps.txt" }} - - compile-deps- - restore_cache: keys: - - gradle-wrapper-{{ checksum "gradle/wrapper/gradle-wrapper.properties" }} + - compile-{{ checksum "gradle/libs.version.toml" }} + - compile- - run: name: Copy gradle config command: mkdir -p ~/.gradle && cp .circleci/gradle.properties ~/.gradle/gradle.properties - - run: name: Download Robolectric deps command: ./download-robolectric-deps.sh @@ -51,12 +44,8 @@ jobs: - save_cache: paths: - - ~/.gradle/wrapper - key: gradle-wrapper-{{ checksum "gradle/wrapper/gradle-wrapper.properties" }} - - save_cache: - paths: - - ~/.gradle/caches/modules-2/files-2.1 - key: compile-deps-{{ checksum "deps.txt" }} + - ~/.gradle/caches + key: compile-{{ checksum "gradle/libs.version.toml" }} - persist_to_workspace: root: ~/work paths: @@ -69,11 +58,8 @@ jobs: at: ~/work - restore_cache: keys: - - compile-deps-{{ checksum "deps.txt" }} - - compile-deps- - - restore_cache: - keys: - - gradle-wrapper-{{ checksum "gradle/wrapper/gradle-wrapper.properties" }} + - compile-{{ checksum "gradle/libs.version.toml" }} + - compile- - run: name: Create Maven repo from dependencies @@ -91,11 +77,8 @@ jobs: at: ~/work - restore_cache: keys: - - compile-deps-{{ checksum "deps.txt" }} - - compile-deps- - - restore_cache: - keys: - - gradle-wrapper-{{ checksum "gradle/wrapper/gradle-wrapper.properties" }} + - compile-{{ checksum "gradle/libs.version.toml" }} + - compile- - run: name: Copy gradle config @@ -117,12 +100,10 @@ jobs: at: ~/work - restore_cache: keys: - - test-modules-deps-{{ checksum "deps.txt" }} - - test-modules-deps- - - compile-deps- - - restore_cache: - keys: - - gradle-wrapper-{{ checksum "gradle/wrapper/gradle-wrapper.properties" }} + - test_modules-{{ checksum "gradle/libs.version.toml" }} + - test_modules + - compile-{{ checksum "gradle/libs.version.toml" }} + - compile- - run: name: Copy gradle config @@ -145,8 +126,8 @@ jobs: - save_cache: paths: - - ~/.gradle/caches/modules-2/files-2.1 - key: test-modules-deps-{{ checksum "deps.txt" }} + - ~/.gradle/caches + key: test_modules-{{ checksum "gradle/libs.version.toml" }} test_app: <<: *android_config @@ -156,12 +137,10 @@ jobs: at: ~/work - restore_cache: keys: - - test-app-deps-{{ checksum "deps.txt" }} - - test-app-deps- - - compile-deps- - - restore_cache: - keys: - - gradle-wrapper-{{ checksum "gradle/wrapper/gradle-wrapper.properties" }} + - test_app-{{ checksum "gradle/libs.version.toml" }} + - test_app- + - compile-{{ checksum "gradle/libs.version.toml" }} + - compile- - run: name: Copy gradle config @@ -194,8 +173,8 @@ jobs: - save_cache: paths: - - ~/.gradle/caches/modules-2/files-2.1 - key: test-app-deps-{{ checksum "deps.txt" }} + - ~/.gradle/caches + key: test_app-{{ checksum "gradle/libs.version.toml" }} build_instrumented: <<: *android_config_large @@ -204,12 +183,10 @@ jobs: at: ~/work - restore_cache: keys: - - intrumented-deps-{{ checksum "deps.txt" }} - - intrumented-deps- - - compile-deps- - - restore_cache: - keys: - - gradle-wrapper-{{ checksum "gradle/wrapper/gradle-wrapper.properties" }} + - build_instrumented-{{ checksum "gradle/libs.version.toml" }} + - build_instrumented- + - compile-{{ checksum "gradle/libs.version.toml" }} + - compile- - run: name: Copy gradle config @@ -221,8 +198,8 @@ jobs: - save_cache: paths: - - ~/.gradle/caches/modules-2/files-2.1 - key: intrumented-deps-{{ checksum "deps.txt" }} + - ~/.gradle/caches + key: build_instrumented-{{ checksum "gradle/libs.version.toml" }} - persist_to_workspace: root: ~/work @@ -236,11 +213,8 @@ jobs: at: ~/work - restore_cache: keys: - - compile-deps-{{ checksum "deps.txt" }} - - compile-deps - - restore_cache: - keys: - - gradle-wrapper-{{ checksum "gradle/wrapper/gradle-wrapper.properties" }} + - compile-{{ checksum "gradle/libs.version.toml" }} + - compile- - run: name: Copy gradle config From 3ef66a4e3d5bc35e7fa640190372fb9ab9cefda8 Mon Sep 17 00:00:00 2001 From: Callum Stott Date: Tue, 4 Nov 2025 09:26:13 +0000 Subject: [PATCH 07/13] Correct cache key path --- .circleci/config.yml | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 27c778f7a72..7964e9f288b 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -29,7 +29,7 @@ jobs: - checkout - restore_cache: keys: - - compile-{{ checksum "gradle/libs.version.toml" }} + - compile-{{ checksum "gradle/libs.versions.toml" }} - compile- - run: name: Copy gradle config @@ -45,7 +45,7 @@ jobs: - save_cache: paths: - ~/.gradle/caches - key: compile-{{ checksum "gradle/libs.version.toml" }} + key: compile-{{ checksum "gradle/libs.versions.toml" }} - persist_to_workspace: root: ~/work paths: @@ -58,7 +58,7 @@ jobs: at: ~/work - restore_cache: keys: - - compile-{{ checksum "gradle/libs.version.toml" }} + - compile-{{ checksum "gradle/libs.versions.toml" }} - compile- - run: @@ -77,7 +77,7 @@ jobs: at: ~/work - restore_cache: keys: - - compile-{{ checksum "gradle/libs.version.toml" }} + - compile-{{ checksum "gradle/libs.versions.toml" }} - compile- - run: @@ -100,9 +100,9 @@ jobs: at: ~/work - restore_cache: keys: - - test_modules-{{ checksum "gradle/libs.version.toml" }} + - test_modules-{{ checksum "gradle/libs.versions.toml" }} - test_modules - - compile-{{ checksum "gradle/libs.version.toml" }} + - compile-{{ checksum "gradle/libs.versions.toml" }} - compile- - run: @@ -127,7 +127,7 @@ jobs: - save_cache: paths: - ~/.gradle/caches - key: test_modules-{{ checksum "gradle/libs.version.toml" }} + key: test_modules-{{ checksum "gradle/libs.versions.toml" }} test_app: <<: *android_config @@ -137,9 +137,9 @@ jobs: at: ~/work - restore_cache: keys: - - test_app-{{ checksum "gradle/libs.version.toml" }} + - test_app-{{ checksum "gradle/libs.versions.toml" }} - test_app- - - compile-{{ checksum "gradle/libs.version.toml" }} + - compile-{{ checksum "gradle/libs.versions.toml" }} - compile- - run: @@ -174,7 +174,7 @@ jobs: - save_cache: paths: - ~/.gradle/caches - key: test_app-{{ checksum "gradle/libs.version.toml" }} + key: test_app-{{ checksum "gradle/libs.versions.toml" }} build_instrumented: <<: *android_config_large @@ -183,9 +183,9 @@ jobs: at: ~/work - restore_cache: keys: - - build_instrumented-{{ checksum "gradle/libs.version.toml" }} + - build_instrumented-{{ checksum "gradle/libs.versions.toml" }} - build_instrumented- - - compile-{{ checksum "gradle/libs.version.toml" }} + - compile-{{ checksum "gradle/libs.versions.toml" }} - compile- - run: @@ -199,7 +199,7 @@ jobs: - save_cache: paths: - ~/.gradle/caches - key: build_instrumented-{{ checksum "gradle/libs.version.toml" }} + key: build_instrumented-{{ checksum "gradle/libs.versions.toml" }} - persist_to_workspace: root: ~/work @@ -213,7 +213,7 @@ jobs: at: ~/work - restore_cache: keys: - - compile-{{ checksum "gradle/libs.version.toml" }} + - compile-{{ checksum "gradle/libs.versions.toml" }} - compile- - run: From 137708390ea305d437ccf83cbd25e9199a2b1394 Mon Sep 17 00:00:00 2001 From: Callum Stott Date: Tue, 4 Nov 2025 09:32:21 +0000 Subject: [PATCH 08/13] Increase heap size for what's available in large config --- .circleci/gradle-large.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.circleci/gradle-large.properties b/.circleci/gradle-large.properties index ba2d23a4825..d06af0be72a 100644 --- a/.circleci/gradle-large.properties +++ b/.circleci/gradle-large.properties @@ -1,6 +1,6 @@ # Gradle config for "X-Large" Circle CI resource (https://circleci.com/pricing/price-list/) -org.gradle.jvmargs=-Xmx4g -XX:MaxMetaspaceSize=1g +org.gradle.jvmargs=-Xmx6g -XX:MaxMetaspaceSize=1g org.gradle.daemon=false org.gradle.parallel=true org.gradle.workers.max=8 From f3d1741ec5eea7110864aa0d9515cbb5bbf985d8 Mon Sep 17 00:00:00 2001 From: Callum Stott Date: Tue, 4 Nov 2025 10:04:03 +0000 Subject: [PATCH 09/13] Use caching instead of workspace for speeding up builds --- .circleci/config.yml | 51 +++++++++++++++++++++++++++++++++----------- 1 file changed, 38 insertions(+), 13 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 7964e9f288b..b2f2df95952 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -46,16 +46,23 @@ jobs: paths: - ~/.gradle/caches key: compile-{{ checksum "gradle/libs.versions.toml" }} + - save_cache: + paths: + - ~/work + key: workflow-{{ echo $CIRCLE_WORKFLOW_ID }} + - persist_to_workspace: root: ~/work paths: - - . + - collect_app/build/outputs/apk create_dependency_backup: <<: *android_config_small steps: - - attach_workspace: - at: ~/work + - checkout + - restore_cache: + keys: + - workflow-{{ echo $CIRCLE_WORKFLOW_ID }} - restore_cache: keys: - compile-{{ checksum "gradle/libs.versions.toml" }} @@ -73,8 +80,10 @@ jobs: check_quality: <<: *android_config steps: - - attach_workspace: - at: ~/work + - checkout + - restore_cache: + keys: + - workflow-{{ echo $CIRCLE_WORKFLOW_ID }} - restore_cache: keys: - compile-{{ checksum "gradle/libs.versions.toml" }} @@ -96,8 +105,10 @@ jobs: <<: *android_config parallelism: 4 steps: - - attach_workspace: - at: ~/work + - checkout + - restore_cache: + keys: + - workflow-{{ echo $CIRCLE_WORKFLOW_ID }} - restore_cache: keys: - test_modules-{{ checksum "gradle/libs.versions.toml" }} @@ -133,8 +144,10 @@ jobs: <<: *android_config parallelism: 4 steps: - - attach_workspace: - at: ~/work + - checkout + - restore_cache: + keys: + - workflow-{{ echo $CIRCLE_WORKFLOW_ID }} - restore_cache: keys: - test_app-{{ checksum "gradle/libs.versions.toml" }} @@ -179,8 +192,10 @@ jobs: build_instrumented: <<: *android_config_large steps: - - attach_workspace: - at: ~/work + - checkout + - restore_cache: + keys: + - workflow-{{ echo $CIRCLE_WORKFLOW_ID }} - restore_cache: keys: - build_instrumented-{{ checksum "gradle/libs.versions.toml" }} @@ -209,8 +224,10 @@ jobs: build_release: <<: *android_config steps: - - attach_workspace: - at: ~/work + - checkout + - restore_cache: + keys: + - workflow-{{ echo $CIRCLE_WORKFLOW_ID }} - restore_cache: keys: - compile-{{ checksum "gradle/libs.versions.toml" }} @@ -251,6 +268,10 @@ jobs: test_smoke_instrumented: <<: *android_config_small steps: + - checkout + - restore_cache: + keys: + - workflow-{{ echo $CIRCLE_WORKFLOW_ID }} - attach_workspace: at: ~/work @@ -280,6 +301,10 @@ jobs: test_instrumented: <<: *android_config_small steps: + - checkout + - restore_cache: + keys: + - workflow-{{ echo $CIRCLE_WORKFLOW_ID }} - attach_workspace: at: ~/work From afe01ee1924429c37b84b6fae9126efa23aeded8 Mon Sep 17 00:00:00 2001 From: Callum Stott Date: Tue, 4 Nov 2025 10:13:01 +0000 Subject: [PATCH 10/13] Correct environment reference --- .circleci/config.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index b2f2df95952..69c0f858730 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -49,7 +49,7 @@ jobs: - save_cache: paths: - ~/work - key: workflow-{{ echo $CIRCLE_WORKFLOW_ID }} + key: workflow-{{ .Environment.CIRCLE_WORKFLOW_ID }} - persist_to_workspace: root: ~/work @@ -62,7 +62,7 @@ jobs: - checkout - restore_cache: keys: - - workflow-{{ echo $CIRCLE_WORKFLOW_ID }} + - workflow-{{ .Environment.CIRCLE_WORKFLOW_ID }} - restore_cache: keys: - compile-{{ checksum "gradle/libs.versions.toml" }} @@ -83,7 +83,7 @@ jobs: - checkout - restore_cache: keys: - - workflow-{{ echo $CIRCLE_WORKFLOW_ID }} + - workflow-{{ .Environment.CIRCLE_WORKFLOW_ID }} - restore_cache: keys: - compile-{{ checksum "gradle/libs.versions.toml" }} @@ -108,7 +108,7 @@ jobs: - checkout - restore_cache: keys: - - workflow-{{ echo $CIRCLE_WORKFLOW_ID }} + - workflow-{{ .Environment.CIRCLE_WORKFLOW_ID }} - restore_cache: keys: - test_modules-{{ checksum "gradle/libs.versions.toml" }} @@ -147,7 +147,7 @@ jobs: - checkout - restore_cache: keys: - - workflow-{{ echo $CIRCLE_WORKFLOW_ID }} + - workflow-{{ .Environment.CIRCLE_WORKFLOW_ID }} - restore_cache: keys: - test_app-{{ checksum "gradle/libs.versions.toml" }} @@ -195,7 +195,7 @@ jobs: - checkout - restore_cache: keys: - - workflow-{{ echo $CIRCLE_WORKFLOW_ID }} + - workflow-{{ .Environment.CIRCLE_WORKFLOW_ID }} - restore_cache: keys: - build_instrumented-{{ checksum "gradle/libs.versions.toml" }} @@ -227,7 +227,7 @@ jobs: - checkout - restore_cache: keys: - - workflow-{{ echo $CIRCLE_WORKFLOW_ID }} + - workflow-{{ .Environment.CIRCLE_WORKFLOW_ID }} - restore_cache: keys: - compile-{{ checksum "gradle/libs.versions.toml" }} @@ -271,7 +271,7 @@ jobs: - checkout - restore_cache: keys: - - workflow-{{ echo $CIRCLE_WORKFLOW_ID }} + - workflow-{{ .Environment.CIRCLE_WORKFLOW_ID }} - attach_workspace: at: ~/work @@ -304,7 +304,7 @@ jobs: - checkout - restore_cache: keys: - - workflow-{{ echo $CIRCLE_WORKFLOW_ID }} + - workflow-{{ .Environment.CIRCLE_WORKFLOW_ID }} - attach_workspace: at: ~/work From 28ea21ebbf9beb872ee407f071eca9c0bf209ebf Mon Sep 17 00:00:00 2001 From: Callum Stott Date: Tue, 4 Nov 2025 10:38:20 +0000 Subject: [PATCH 11/13] Increase default gradle config --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index c75d1812be1..8f054a64f4b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,7 +3,7 @@ android.useAndroidX=true android.enableJetifier=true #https://issuetracker.google.com/issues/283715193 android.jetifier.ignorelist = jackson-core -org.gradle.jvmargs=-Xmx1536m +org.gradle.jvmargs=-Xmx2560m -XX:MaxMetaspaceSize=1g org.gradle.parallel=true test.heap.max=1g android.nonTransitiveRClass=true From 143de12a99afe59a1b7439557305adee97a5e288 Mon Sep 17 00:00:00 2001 From: Callum Stott Date: Tue, 4 Nov 2025 10:53:54 +0000 Subject: [PATCH 12/13] Cache gradle wrapper as well --- .circleci/config.yml | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 69c0f858730..d4e7ac1288d 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -29,7 +29,7 @@ jobs: - checkout - restore_cache: keys: - - compile-{{ checksum "gradle/libs.versions.toml" }} + - compile-{{ checksum "gradle/libs.versions.toml" }}-{{ checksum "gradle/wrapper/gradle-wrapper.properties" }} - compile- - run: name: Copy gradle config @@ -45,7 +45,8 @@ jobs: - save_cache: paths: - ~/.gradle/caches - key: compile-{{ checksum "gradle/libs.versions.toml" }} + - ~/.gradle/wrapper + key: compile-{{ checksum "gradle/libs.versions.toml" }}-{{ checksum "gradle/wrapper/gradle-wrapper.properties" }} - save_cache: paths: - ~/work @@ -65,7 +66,7 @@ jobs: - workflow-{{ .Environment.CIRCLE_WORKFLOW_ID }} - restore_cache: keys: - - compile-{{ checksum "gradle/libs.versions.toml" }} + - compile-{{ checksum "gradle/libs.versions.toml" }}-{{ checksum "gradle/wrapper/gradle-wrapper.properties" }} - compile- - run: @@ -86,7 +87,7 @@ jobs: - workflow-{{ .Environment.CIRCLE_WORKFLOW_ID }} - restore_cache: keys: - - compile-{{ checksum "gradle/libs.versions.toml" }} + - compile-{{ checksum "gradle/libs.versions.toml" }}-{{ checksum "gradle/wrapper/gradle-wrapper.properties" }} - compile- - run: @@ -111,9 +112,9 @@ jobs: - workflow-{{ .Environment.CIRCLE_WORKFLOW_ID }} - restore_cache: keys: - - test_modules-{{ checksum "gradle/libs.versions.toml" }} + - test_modules-{{ checksum "gradle/libs.versions.toml" }}-{{ checksum "gradle/wrapper/gradle-wrapper.properties" }} - test_modules - - compile-{{ checksum "gradle/libs.versions.toml" }} + - compile-{{ checksum "gradle/libs.versions.toml" }}-{{ checksum "gradle/wrapper/gradle-wrapper.properties" }} - compile- - run: @@ -138,7 +139,8 @@ jobs: - save_cache: paths: - ~/.gradle/caches - key: test_modules-{{ checksum "gradle/libs.versions.toml" }} + - ~/.gradle/wrapper + key: test_modules-{{ checksum "gradle/libs.versions.toml" }}-{{ checksum "gradle/wrapper/gradle-wrapper.properties" }} test_app: <<: *android_config @@ -150,9 +152,9 @@ jobs: - workflow-{{ .Environment.CIRCLE_WORKFLOW_ID }} - restore_cache: keys: - - test_app-{{ checksum "gradle/libs.versions.toml" }} + - test_app-{{ checksum "gradle/libs.versions.toml" }}-{{ checksum "gradle/wrapper/gradle-wrapper.properties" }} - test_app- - - compile-{{ checksum "gradle/libs.versions.toml" }} + - compile-{{ checksum "gradle/libs.versions.toml" }}-{{ checksum "gradle/wrapper/gradle-wrapper.properties" }} - compile- - run: @@ -187,7 +189,8 @@ jobs: - save_cache: paths: - ~/.gradle/caches - key: test_app-{{ checksum "gradle/libs.versions.toml" }} + - ~/.gradle/wrapper + key: test_app-{{ checksum "gradle/libs.versions.toml" }}-{{ checksum "gradle/wrapper/gradle-wrapper.properties" }} build_instrumented: <<: *android_config_large @@ -198,9 +201,9 @@ jobs: - workflow-{{ .Environment.CIRCLE_WORKFLOW_ID }} - restore_cache: keys: - - build_instrumented-{{ checksum "gradle/libs.versions.toml" }} + - build_instrumented-{{ checksum "gradle/libs.versions.toml" }}-{{ checksum "gradle/wrapper/gradle-wrapper.properties" }} - build_instrumented- - - compile-{{ checksum "gradle/libs.versions.toml" }} + - compile-{{ checksum "gradle/libs.versions.toml" }}-{{ checksum "gradle/wrapper/gradle-wrapper.properties" }} - compile- - run: @@ -214,7 +217,8 @@ jobs: - save_cache: paths: - ~/.gradle/caches - key: build_instrumented-{{ checksum "gradle/libs.versions.toml" }} + - ~/.gradle/wrapper + key: build_instrumented-{{ checksum "gradle/libs.versions.toml" }}-{{ checksum "gradle/wrapper/gradle-wrapper.properties" }} - persist_to_workspace: root: ~/work @@ -230,7 +234,7 @@ jobs: - workflow-{{ .Environment.CIRCLE_WORKFLOW_ID }} - restore_cache: keys: - - compile-{{ checksum "gradle/libs.versions.toml" }} + - compile-{{ checksum "gradle/libs.versions.toml" }}-{{ checksum "gradle/wrapper/gradle-wrapper.properties" }} - compile- - run: From 9c193f0ae903fb08c9e83e94b3d24301b1347229 Mon Sep 17 00:00:00 2001 From: Callum Stott Date: Tue, 4 Nov 2025 11:19:34 +0000 Subject: [PATCH 13/13] Don't run CI for PRs without approval --- .circleci/config.yml | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index d4e7ac1288d..eab740f6061 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -339,7 +339,24 @@ workflows: version: 2 commit: jobs: - - compile + - hold_pr: + type: approval + filters: + branches: + ignore: + - master + - compile: + filters: + branches: + only: + - master + - compile: + requires: + - hold_pr + filters: + branches: + ignore: + - master - check_quality: requires: - compile