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 :
@@ -99,6 +104,18 @@ jobs:
99104 key : gradle-${{ hashFiles('**/*.gradle*', '**/gradle.properties') }}
100105 restore-keys : gradle-
101106
107+ - name : Upload Setup Artifacts
108+ uses : actions/upload-artifact@v4
109+ with :
110+ name : setup-files
111+ path : |
112+ ${{ steps.google_services_json_file.outputs.filePath }}
113+ ${{ steps.service_account_json_file.outputs.filePath }}
114+ ${{ steps.signing_key.outputs.filePath }}
115+ ./apps/flipcash/app/key/key
116+ ./local.properties
117+ if-no-files-found : error
118+
102119 tests :
103120 needs : setup
104121 runs-on : ubuntu-latest
@@ -107,74 +124,96 @@ jobs:
107124 with :
108125 fetch-depth : 0
109126
127+ - name : Setup Ruby env
128+ uses : ruby/setup-ruby@v1
129+ with :
130+ ruby-version : 2.7.2
131+ bundler-cache : true
132+
110133 - name : Restore Gradle Cache
111134 uses : actions/cache/restore@v3
112135 with :
113136 path : ~/.gradle/caches
114137 key : gradle-${{ hashFiles('**/*.gradle*', '**/gradle.properties') }}
115138 restore-keys : gradle-
116139
117- - name : Copy Setup Files
118- run : |
119- mkdir -p ./apps/flipcash/app/src
120- mkdir -p ./key
121- 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
140+ - name : Download Setup Artifacts
141+ uses : actions/download-artifact@v4
142+ with :
143+ name : setup-files
144+ path : .
129145
130146 - name : Run tests
131147 run : bundle exec fastlane android flipcash_tests
132148
133- deploy :
149+ build :
134150 needs : setup
135151 runs-on : ubuntu-latest
136152 steps :
137153 - uses : actions/checkout@v4
138154 with :
139155 fetch-depth : 0
140156
157+ - name : Setup Ruby env
158+ uses : ruby/setup-ruby@v1
159+ with :
160+ ruby-version : 2.7.2
161+ bundler-cache : true
162+
141163 - name : Restore Gradle Cache
142164 uses : actions/cache/restore@v3
143165 with :
144166 path : ~/.gradle/caches
145167 key : gradle-${{ hashFiles('**/*.gradle*', '**/gradle.properties') }}
146168 restore-keys : gradle-
147169
148- - name : Copy Setup Files
149- run : |
150- mkdir -p ./apps/flipcash/app/src
151- mkdir -p ./key
152- 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
170+ - name : Download Setup Artifacts
171+ uses : actions/download-artifact@v4
172+ with :
173+ name : setup-files
174+ path : .
175+
176+ - name : Build Android release
177+ run : bundle exec fastlane android build_flipcash
163178 env :
164179 STORE_FILE : ${{ needs.setup.outputs.signing_key }}
165180 STORE_PASSWORD : ${{ secrets.KEYSTORE_PASSWORD }}
166181 KEY_ALIAS : ${{ secrets.KEY_ALIAS }}
167182 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 }}
172183
173- - name : Upload build artifacts
184+ - name : Upload Build Artifacts
174185 uses : actions/upload-artifact@v4
175- if : always()
176186 with :
177- name : assets
187+ name : build- assets
178188 path : |
179- ${{ github.workspace }}/apps/flipcash/app/build/outputs/bundle/release
180- ${{ github.workspace }}/apps/flipcash/app/build/outputs/apk/release
189+ ${{ github.workspace }}/artifacts/*.aab
190+ ${{ github.workspace }}/artifacts/*.txt
191+ if-no-files-found : error
192+
193+ deploy :
194+ needs : [tests, build]
195+ runs-on : ubuntu-latest
196+ steps :
197+ - uses : actions/checkout@v4
198+ with :
199+ fetch-depth : 0
200+
201+ - name : Setup Ruby env
202+ uses : ruby/setup-ruby@v1
203+ with :
204+ ruby-version : 2.7.2
205+ bundler-cache : true
206+
207+ - name : Download Build Artifacts
208+ uses : actions/download-artifact@v4
209+ with :
210+ name : build-assets
211+ path : artifacts/
212+
213+ - name : Deploy to Play Store
214+ run : bundle exec fastlane android deploy_to_play_store
215+ env :
216+ SERVICE_ACCOUNT_KEY_JSON : ${{ needs.setup.outputs.service_account_json }}
217+ PACKAGE_NAME : com.flipcash.android.app
218+ PLAYSTORE_TRACK : ${{ github.event.inputs.track }}
219+ RELEASE_STATUS : ${{ github.event.inputs.release_status }}
0 commit comments