Skip to content

Commit b7754eb

Browse files
authored
Merge pull request #50 from superus8r/ci/prioritize_circle_ci_jobs
ci: improve circleci pipeline's caching and prioritization of jobs
2 parents 5951f6f + 4c90387 commit b7754eb

File tree

3 files changed

+30
-24
lines changed

3 files changed

+30
-24
lines changed

.circleci/config.yml

Lines changed: 25 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
version: 2.1
22
orbs:
33
codecov: codecov/codecov@5.4.3
4-
ruby: circleci/ruby@2.0.0
4+
ruby: circleci/ruby@2.5.3
55

66
commands:
77
restore_gradle_cache:
@@ -10,10 +10,11 @@ commands:
1010
key: v1-gradle-wrapper-{{ arch }}-{{ checksum "gradle/wrapper/gradle-wrapper.properties" }}
1111
- restore_cache:
1212
key: v1-gradle-cache-{{ arch }}-{{ checksum "build.gradle.kts" }}-{{ checksum "settings.gradle.kts" }}-{{ checksum "gradle.properties" }}-{{ checksum "app/build.gradle.kts" }}-{{ checksum "gradle/libs.versions.toml" }}
13+
1314
restore_bundler_cache:
1415
steps:
1516
- restore_cache:
16-
key: v1-bundler-cache-{{ checksum "Gemfile.lock" }}
17+
key: v1-bundler-cache-{{ arch }}-{{ checksum "Gemfile.lock" }}
1718

1819
save_gradle_cache:
1920
steps:
@@ -25,41 +26,46 @@ commands:
2526
paths:
2627
- ~/.gradle/caches
2728
key: v1-gradle-cache-{{ arch }}-{{ checksum "build.gradle.kts" }}-{{ checksum "settings.gradle.kts" }}-{{ checksum "gradle.properties" }}-{{ checksum "app/build.gradle.kts" }}-{{ checksum "gradle/libs.versions.toml" }}
29+
2830
save_bundler_cache:
2931
steps:
3032
- save_cache:
3133
paths:
3234
- vendor/bundle
3335
key: v1-bundler-cache-{{ checksum "Gemfile.lock" }}
3436

37+
setup_android:
38+
steps:
39+
- checkout
40+
- restore_gradle_cache
41+
- restore_bundler_cache
42+
3543
executors:
3644
android-machine:
3745
machine:
38-
image: android:2024.01.1
46+
image: android:2024.11.1
3947
android-docker:
4048
docker:
41-
- image: cimg/android:2024.01
49+
- image: cimg/android:2025.04
4250

4351
jobs:
4452
android-test:
4553
executor: android-machine
4654
resource_class: large
4755
steps:
48-
- checkout
49-
- restore_gradle_cache
50-
- restore_bundler_cache
56+
- setup_android
5157
- ruby/install-deps:
5258
with-cache: true
5359
- run:
5460
name: Fastlane - run all tests with coverage report
5561
command: |
5662
bundle exec fastlane testDev
57-
bundle exec fastlane lint
63+
- run: ./gradlew lintDebug
5864
- save_gradle_cache
5965
- save_bundler_cache
6066
- run:
6167
name: Analyze on SonarCloud
62-
command: ./gradlew lintDebug sonar
68+
command: ./gradlew sonar
6369
- codecov/upload:
6470
files: app/build/mergedReportDir/jacocoTestReport/jacocoTestReport.xml
6571
- store_test_results:
@@ -71,14 +77,15 @@ jobs:
7177
executor: android-docker
7278
resource_class: large
7379
steps:
74-
- checkout
75-
- restore_gradle_cache
80+
- setup_android
7681
- run:
7782
name: Prepare Fastlane
7883
command: sudo bundle update
7984
- run:
8085
name: Distribute to Firebase AppTester Dev
8186
command: bundle exec fastlane distDev
87+
- save_gradle_cache
88+
- save_bundler_cache
8289
- store_artifacts:
8390
path: /home/circleci/project/app/build/outputs/apk/debug/app-debug.apk
8491
destination: fastlane-output-debug
@@ -87,8 +94,7 @@ jobs:
8794
executor: android-docker
8895
resource_class: large
8996
steps:
90-
- checkout
91-
- restore_gradle_cache
97+
- setup_android
9298
- run:
9399
name: Prepare Fastlane
94100
command: sudo bundle update
@@ -98,6 +104,8 @@ jobs:
98104
- run:
99105
name: Distribute to Firebase AppTester Prod
100106
command: bundle exec fastlane distProd
107+
- save_gradle_cache
108+
- save_bundler_cache
101109
- store_artifacts:
102110
path: /home/circleci/project/app/build/outputs/bundle/release/app-release.aab
103111
destination: fastlane-output-release
@@ -108,4 +116,7 @@ workflows:
108116
- android-test:
109117
context: SonarCloud
110118
- distribute-dev
111-
- distribute-internal-testing
119+
- distribute-internal-testing:
120+
requires:
121+
- android-test
122+

Gemfile.lock

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@ GEM
1010
artifactory (3.0.17)
1111
atomos (0.1.3)
1212
aws-eventstream (1.4.0)
13-
aws-partitions (1.1125.0)
14-
aws-sdk-core (3.226.2)
13+
aws-partitions (1.1131.0)
14+
aws-sdk-core (3.226.3)
1515
aws-eventstream (~> 1, >= 1.3.0)
1616
aws-partitions (~> 1, >= 1.992.0)
1717
aws-sigv4 (~> 1.9)
@@ -21,7 +21,7 @@ GEM
2121
aws-sdk-kms (1.106.0)
2222
aws-sdk-core (~> 3, >= 3.225.0)
2323
aws-sigv4 (~> 1.5)
24-
aws-sdk-s3 (1.192.0)
24+
aws-sdk-s3 (1.193.0)
2525
aws-sdk-core (~> 3, >= 3.225.0)
2626
aws-sdk-kms (~> 1)
2727
aws-sigv4 (~> 1.5)
@@ -164,13 +164,13 @@ GEM
164164
httpclient (2.9.0)
165165
mutex_m
166166
jmespath (1.6.2)
167-
json (2.12.2)
167+
json (2.13.0)
168168
jwt (2.10.2)
169169
base64
170170
logger (1.7.0)
171171
mini_magick (4.13.2)
172172
mini_mime (1.1.5)
173-
multi_json (1.15.0)
173+
multi_json (1.17.0)
174174
multipart-post (2.4.1)
175175
mutex_m (0.3.0)
176176
nanaimo (0.4.0)

fastlane/Fastfile

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,11 +33,6 @@ platform :android do
3333
])
3434
end
3535

36-
desc "Runs lint"
37-
lane :lint do
38-
gradle(task: "lintDebug")
39-
end
40-
4136
desc "Deploy to Firebase AppTester Dev channel"
4237
lane :distDev do
4338
gradle(tasks: [

0 commit comments

Comments
 (0)