44 main_project_module : apps:flipcash:app
55 playstore_name : Flipcash
66
7+ # Cancel in-progress workflow runs if a job fails
8+ concurrency :
9+ group : ${{ github.workflow }}-${{ github.event_name }}-${{ github.event.inputs.track }}-${{ github.event.inputs.release_status }}
10+ cancel-in-progress : true
11+
712on :
813 workflow_dispatch :
914 inputs :
@@ -95,10 +100,24 @@ jobs:
95100 - name : Cache Gradle
96101 uses : actions/cache@v3
97102 with :
98- path : ~/.gradle/caches
99- key : gradle-${{ hashFiles('**/*.gradle*', '**/gradle.properties') }}
103+ path : |
104+ ~/.gradle/caches
105+ ~/.gradle/wrapper
106+ key: gradle-${{ hashFiles('**/*.gradle*', '**/gradle.properties', '**/gradle/wrapper/*') }}
100107 restore-keys : gradle-
101108
109+ - name : Upload Setup Artifacts
110+ uses : actions/upload-artifact@v4
111+ with :
112+ name : setup-files
113+ path : |
114+ ${{ steps.google_services_json_file.outputs.filePath }}
115+ ${{ steps.service_account_json_file.outputs.filePath }}
116+ ${{ steps.signing_key.outputs.filePath }}
117+ ./apps/flipcash/app/key/key
118+ ./local.properties
119+ if-no-files-found : error
120+
102121 tests :
103122 needs : setup
104123 runs-on : ubuntu-latest
@@ -107,74 +126,136 @@ jobs:
107126 with :
108127 fetch-depth : 0
109128
129+ - name : Setup Ruby env
130+ uses : ruby/setup-ruby@v1
131+ with :
132+ ruby-version : 2.7.2
133+ bundler-cache : true
134+
110135 - name : Restore Gradle Cache
111136 uses : actions/cache/restore@v3
112137 with :
113- path : ~/.gradle/caches
114- key : gradle-${{ hashFiles('**/*.gradle*', '**/gradle.properties') }}
138+ path : |
139+ ~/.gradle/caches
140+ ~/.gradle/wrapper
141+ key : gradle-${{ hashFiles('**/*.gradle*', '**/gradle.properties', '**/gradle/wrapper/*') }}
115142 restore-keys : gradle-
116143
144+ - name : Download Setup Artifacts
145+ uses : actions/download-artifact@v4
146+ with :
147+ name : setup-files
148+ path : setup-files/
149+
150+ - name : " Debug: List downloaded artifacts"
151+ run : |
152+ echo "Listing downloaded setup-files:"
153+ find ./setup-files -type f
154+ echo "Checking setup-files/local.properties:"
155+ cat ./setup-files/local.properties || echo "local.properties not found"
156+
117157 - name : Copy Setup Files
118158 run : |
119159 mkdir -p ./apps/flipcash/app/src
120160 mkdir -p ./key
121161 mkdir -p ./apps/flipcash/app/key
122- cp ${{ needs.setup.outputs.google_services_json }} ./apps/flipcash/app/src/google-services.json
123- cp ${{ needs.setup.outputs.service_account_json }} ./serviceAccount.json
124- cp ${{ needs.setup.outputs.signing_key }} ./key/key
125- cp ${{ needs.setup.outputs.signing_key }} ./apps/flipcash/app/key/key
126- echo BUGSNAG_API_KEY=\"${{ secrets.FLIPCASH_BUGSNAG_API_KEY }}\" > ./local.properties
127- echo GOOGLE_CLOUD_PROJECT_NUMBER=${{ secrets.GOOGLE_CLOUD_PROJECT_NUMBER }} >> ./local.properties
128- echo MIXPANEL_API_KEY=\"${{ secrets.FLIPCASH_MIXPANEL_API_KEY }}\" >> ./local.properties
162+ cp ./setup-files/apps/flipcash/app/src/google-services.json ./apps/flipcash/app/src/google-services.json || echo "Failed to copy google-services.json"
163+ cp ./setup-files/serviceAccount.json ./serviceAccount.json || echo "Failed to copy serviceAccount.json"
164+ cp ./setup-files/key/key ./key/key || echo "Failed to copy key/key"
165+ cp ./setup-files/apps/flipcash/app/key/key ./apps/flipcash/app/key/key || echo "Failed to copy apps/flipcash/app/key/key"
166+ cp ./setup-files/local.properties ./local.properties || echo "Failed to copy local.properties"
129167
130168 - name : Run tests
131169 run : bundle exec fastlane android flipcash_tests
132170
133- deploy :
171+ build :
134172 needs : setup
135173 runs-on : ubuntu-latest
136174 steps :
137175 - uses : actions/checkout@v4
138176 with :
139177 fetch-depth : 0
140178
179+ - name : Setup Ruby env
180+ uses : ruby/setup-ruby@v1
181+ with :
182+ ruby-version : 2.7.2
183+ bundler-cache : true
184+
141185 - name : Restore Gradle Cache
142186 uses : actions/cache/restore@v3
143187 with :
144- path : ~/.gradle/caches
145- key : gradle-${{ hashFiles('**/*.gradle*', '**/gradle.properties') }}
188+ path : |
189+ ~/.gradle/caches
190+ ~/.gradle/wrapper
191+ key : gradle-${{ hashFiles('**/*.gradle*', '**/gradle.properties', '**/gradle/wrapper/*') }}
146192 restore-keys : gradle-
147193
194+ - name : Download Setup Artifacts
195+ uses : actions/download-artifact@v4
196+ with :
197+ name : setup-files
198+ path : setup-files/
199+
200+ - name : " Debug: List downloaded artifacts"
201+ run : |
202+ echo "Listing downloaded setup-files:"
203+ find ./setup-files -type f
204+ echo "Checking setup-files/local.properties:"
205+ cat ./setup-files/local.properties || echo "local.properties not found"
206+
148207 - name : Copy Setup Files
149208 run : |
150209 mkdir -p ./apps/flipcash/app/src
151210 mkdir -p ./key
152211 mkdir -p ./apps/flipcash/app/key
153- cp ${{ needs.setup.outputs.google_services_json }} ./apps/flipcash/app/src/google-services.json
154- cp ${{ needs.setup.outputs.service_account_json }} ./serviceAccount.json
155- cp ${{ needs.setup.outputs.signing_key }} ./key/key
156- cp ${{ needs.setup.outputs.signing_key }} ./apps/flipcash/app/key/key
157- echo BUGSNAG_API_KEY=\"${{ secrets.FLIPCASH_BUGSNAG_API_KEY }}\" > ./local.properties
158- echo GOOGLE_CLOUD_PROJECT_NUMBER=${{ secrets.GOOGLE_CLOUD_PROJECT_NUMBER }} >> ./local.properties
159- echo MIXPANEL_API_KEY=\"${{ secrets.FLIPCASH_MIXPANEL_API_KEY }}\" >> ./local.properties
160-
161- - name : Build & deploy Android release
162- run : bundle exec fastlane android deploy_flipcash
212+ cp ./setup-files/apps/flipcash/app/src/google-services.json ./apps/flipcash/app/src/google-services.json || echo "Failed to copy google-services.json"
213+ cp ./setup-files/serviceAccount.json ./serviceAccount.json || echo "Failed to copy serviceAccount.json"
214+ cp ./setup-files/key/key ./key/key || echo "Failed to copy key/key"
215+ cp ./setup-files/apps/flipcash/app/key/key ./apps/flipcash/app/key/key || echo "Failed to copy apps/flipcash/app/key/key"
216+ cp ./setup-files/local.properties ./local.properties || echo "Failed to copy local.properties"
217+
218+ - name : Build Android release
219+ run : bundle exec fastlane android build_flipcash
163220 env :
164221 STORE_FILE : ${{ needs.setup.outputs.signing_key }}
165222 STORE_PASSWORD : ${{ secrets.KEYSTORE_PASSWORD }}
166223 KEY_ALIAS : ${{ secrets.KEY_ALIAS }}
167224 KEY_PASSWORD : ${{ secrets.KEYSTORE_PASSWORD }}
168- SERVICE_ACCOUNT_KEY_JSON : ${{ needs.setup.outputs.service_account_json }}
169- PACKAGE_NAME : com.flipcash.android.app
170- PLAYSTORE_TRACK : ${{ github.event.inputs.track }}
171- RELEASE_STATUS : ${{ github.event.inputs.release_status }}
172225
173- - name : Upload build artifacts
226+ - name : Upload Build Artifacts
174227 uses : actions/upload-artifact@v4
175- if : always()
176228 with :
177- name : assets
229+ name : build- assets
178230 path : |
179- ${{ github.workspace }}/apps/flipcash/app/build/outputs/bundle/release
180- ${{ github.workspace }}/apps/flipcash/app/build/outputs/apk/release
231+ ${{ github.workspace }}/artifacts/*.aab
232+ ${{ github.workspace }}/artifacts/*.txt
233+ if-no-files-found : error
234+
235+ deploy :
236+ needs : [tests, build]
237+ runs-on : ubuntu-latest
238+ steps :
239+ - uses : actions/checkout@v4
240+ with :
241+ fetch-depth : 0
242+
243+ - name : Setup Ruby env
244+ uses : ruby/setup-ruby@v1
245+ with :
246+ ruby-version : 2.7.2
247+ bundler-cache : true
248+
249+ - name : Download Build Artifacts
250+ uses : actions/download-artifact@v4
251+ with :
252+ name : build-assets
253+ path : artifacts/
254+
255+ - name : Deploy to Play Store
256+ run : bundle exec fastlane android deploy_to_play_store
257+ env :
258+ SERVICE_ACCOUNT_KEY_JSON : ${{ needs.setup.outputs.service_account_json }}
259+ PACKAGE_NAME : com.flipcash.android.app
260+ PLAYSTORE_TRACK : ${{ github.event.inputs.track }}
261+ RELEASE_STATUS : ${{ github.event.inputs.release_status }}
0 commit comments