@@ -33,21 +33,13 @@ jobs:
3333 tester-android :
3434 name : Integrated tester Android App
3535 runs-on : ubuntu-latest
36- needs : build-lint
36+ env :
37+ TURBO_CACHE_DIR : .turbo/android
3738
3839 steps :
3940 - name : Checkout
4041 uses : actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6
4142
42- - name : Validate Gradle Wrapper
43- uses : gradle/actions/wrapper-validation@6f229686ee4375cc4a86b2514c89bac4930e82c4 # v5
44-
45- - name : Setup Java
46- uses : actions/setup-java@5d7b2146334bacf88728daaa70414a99f5164e0f # v5
47- with :
48- distribution : ' zulu'
49- java-version : ' 17'
50-
5143 - name : Setup Node.js
5244 uses : actions/setup-node@65d868f8d4d85d7d4abb7de0875cde3fcc8798f5 # v6
5345 with :
6052 - name : Build packages
6153 run : yarn build
6254
55+ - name : Cache turborepo for Android
56+ uses : actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5
57+ with :
58+ path : ${{ env.TURBO_CACHE_DIR }}
59+ key : ${{ runner.os }}-turborepo-android-${{ hashFiles('yarn.lock') }}
60+ restore-keys : |
61+ ${{ runner.os }}-turborepo-android-
62+
63+ - name : Check turborepo cache for Android
64+ run : |
65+ TURBO_CACHE_STATUS=$(node -p "($(yarn turbo run build:tester-integrated:android --cache-dir="${{ env.TURBO_CACHE_DIR }}" --dry=json)).tasks.find(t => t.task === 'build:tester-integrated:android').cache.status")
66+
67+ if [[ $TURBO_CACHE_STATUS == "HIT" ]]; then
68+ echo "turbo_cache_hit=1" >> $GITHUB_ENV
69+ fi
70+
71+ - name : Validate Gradle Wrapper
72+ if : env.turbo_cache_hit != 1
73+ uses : gradle/actions/wrapper-validation@6f229686ee4375cc4a86b2514c89bac4930e82c4 # v5
74+
75+ - name : Setup Java
76+ if : env.turbo_cache_hit != 1
77+ uses : actions/setup-java@5d7b2146334bacf88728daaa70414a99f5164e0f # v5
78+ with :
79+ distribution : ' zulu'
80+ java-version : ' 17'
81+
6382 - name : Restore android build cache
83+ if : env.turbo_cache_hit != 1
6484 uses : actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5
6585 with :
6686 path : |
7191 restore-keys : |
7292 ${{ runner.os }}-tester-android-build-
7393
74- - name : Resture Gradle cache
94+ - name : Restore Gradle cache
95+ if : env.turbo_cache_hit != 1
7596 uses : actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5
7697 with :
7798 path : |
@@ -82,12 +103,16 @@ jobs:
82103 ${{ runner.os }}-tester-integrated-android-gradle-
83104
84105 - name : Build integrated Android tester app
85- run : yarn run build:tester-integrated:android
106+ env :
107+ JAVA_OPTS : ' -XX:MaxHeapSize=6g'
108+ run : |
109+ yarn turbo run build:tester-integrated:android --cache-dir="${{ env.TURBO_CACHE_DIR }}"
86110
87111 tester-ios :
88112 name : Integrated tester iOS App
89- runs-on : macos-latest
90- needs : build-lint
113+ runs-on : macos-15
114+ env :
115+ TURBO_CACHE_DIR : .turbo/ios
91116
92117 steps :
93118 - name : Checkout
@@ -116,7 +141,24 @@ jobs:
116141 - name : Build packages
117142 run : yarn build
118143
144+ - name : Cache turborepo for iOS
145+ uses : actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5
146+ with :
147+ path : ${{ env.TURBO_CACHE_DIR }}
148+ key : ${{ runner.os }}-turborepo-ios-${{ hashFiles('yarn.lock') }}
149+ restore-keys : |
150+ ${{ runner.os }}-turborepo-ios-
151+
152+ - name : Check turborepo cache for iOS
153+ run : |
154+ TURBO_CACHE_STATUS=$(node -p "($(yarn turbo run build:tester-integrated:ios --cache-dir="${{ env.TURBO_CACHE_DIR }}" --dry=json)).tasks.find(t => t.task === 'build:tester-integrated:ios').cache.status")
155+
156+ if [[ $TURBO_CACHE_STATUS == "HIT" ]]; then
157+ echo "turbo_cache_hit=1" >> $GITHUB_ENV
158+ fi
159+
119160 - name : Restore Pods cache
161+ if : env.turbo_cache_hit != 1
120162 uses : actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5
121163 with :
122164 path : |
@@ -126,10 +168,11 @@ jobs:
126168 ${{ runner.os }}-tester-ios-pods-
127169
128170 - name : Install pods
171+ if : env.turbo_cache_hit != 1
129172 run : |
130173 cd apps/TesterIntegrated/swift
131174 pod install
132175
133176 - name : Build integrated iOS tester app
134177 run : |
135- yarn run build:tester-integrated:ios
178+ yarn turbo run build:tester-integrated:ios --cache-dir="${{ env.TURBO_CACHE_DIR }}"
0 commit comments