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 :
@@ -83,22 +88,39 @@ jobs:
8388 fileDir : ./apps/flipcash/app/key
8489 encodedString : ${{ secrets.UPLOAD_KEY_STORE }}
8590
86- - name : Setup BugSnag API Key
87- run : echo BUGSNAG_API_KEY=\"${{ secrets.FLIPCASH_BUGSNAG_API_KEY }}\" > ./local.properties
88-
89- - name : Setup Google Cloud Project Number
90- run : echo GOOGLE_CLOUD_PROJECT_NUMBER=${{ secrets.GOOGLE_CLOUD_PROJECT_NUMBER }} >> ./local.properties
91-
92- - name : Setup Mixpanel API Key
93- run : echo MIXPANEL_API_KEY=\"${{ secrets.FLIPCASH_MIXPANEL_API_KEY }}\" >> ./local.properties
91+ - name : Setup local.properties
92+ id : local_properties
93+ with :
94+ fileName : local.properties
95+ fileDir : ./
96+ run : |
97+ cat << EOF > ./local.properties
98+ BUGSNAG_API_KEY="${{ secrets.FLIPCASH_BUGSNAG_API_KEY }}"
99+ GOOGLE_CLOUD_PROJECT_NUMBER=${{ secrets.GOOGLE_CLOUD_PROJECT_NUMBER }}
100+ MIXPANEL_API_KEY="${{ secrets.FLIPCASH_MIXPANEL_API_KEY }}"
101+ EOF
94102
95103 - name : Cache Gradle
96104 uses : actions/cache@v3
97105 with :
98- path : ~/.gradle/caches
99- key : gradle-${{ hashFiles('**/*.gradle*', '**/gradle.properties') }}
106+ path : |
107+ ~/.gradle/caches
108+ ~/.gradle/wrapper
109+ key: gradle-${{ hashFiles('**/*.gradle*', '**/gradle.properties', '**/gradle/wrapper/*') }}
100110 restore-keys : gradle-
101111
112+ - name : Upload Setup Artifacts
113+ uses : actions/upload-artifact@v4
114+ with :
115+ name : setup-files
116+ path : |
117+ ${{ steps.google_services_json_file.outputs.filePath }}
118+ ${{ steps.service_account_json_file.outputs.filePath }}
119+ ${{ steps.signing_key.outputs.filePath }}
120+ code-android-app/apps/flipcash/app/key/key
121+ ${{ steps.local_propeties.outputs.filePath }}
122+ if-no-files-found : error
123+
102124 tests :
103125 needs : setup
104126 runs-on : ubuntu-latest
@@ -107,74 +129,100 @@ jobs:
107129 with :
108130 fetch-depth : 0
109131
132+ - name : Setup Ruby env
133+ uses : ruby/setup-ruby@v1
134+ with :
135+ ruby-version : 2.7.2
136+ bundler-cache : true
137+
110138 - name : Restore Gradle Cache
111139 uses : actions/cache/restore@v3
112140 with :
113- path : ~/.gradle/caches
114- key : gradle-${{ hashFiles('**/*.gradle*', '**/gradle.properties') }}
141+ path : |
142+ ~/.gradle/caches
143+ ~/.gradle/wrapper
144+ key : gradle-${{ hashFiles('**/*.gradle*', '**/gradle.properties', '**/gradle/wrapper/*') }}
115145 restore-keys : gradle-
116146
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
147+ - name : Download Setup Artifacts
148+ uses : actions/download-artifact@v4
149+ with :
150+ name : setup-files
151+ path : .
129152
130153 - name : Run tests
131154 run : bundle exec fastlane android flipcash_tests
132155
133- deploy :
156+ build :
134157 needs : setup
135158 runs-on : ubuntu-latest
136159 steps :
137160 - uses : actions/checkout@v4
138161 with :
139162 fetch-depth : 0
140163
164+ - name : Setup Ruby env
165+ uses : ruby/setup-ruby@v1
166+ with :
167+ ruby-version : 2.7.2
168+ bundler-cache : true
169+
141170 - name : Restore Gradle Cache
142171 uses : actions/cache/restore@v3
143172 with :
144- path : ~/.gradle/caches
145- key : gradle-${{ hashFiles('**/*.gradle*', '**/gradle.properties') }}
173+ path : |
174+ ~/.gradle/caches
175+ ~/.gradle/wrapper
176+ key : gradle-${{ hashFiles('**/*.gradle*', '**/gradle.properties', '**/gradle/wrapper/*') }}
146177 restore-keys : gradle-
147178
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
179+ - name : Download Setup Artifacts
180+ uses : actions/download-artifact@v4
181+ with :
182+ name : setup-files
183+ path : .
184+
185+ - name : Build Android release
186+ run : bundle exec fastlane android build_flipcash
163187 env :
164188 STORE_FILE : ${{ needs.setup.outputs.signing_key }}
165189 STORE_PASSWORD : ${{ secrets.KEYSTORE_PASSWORD }}
166190 KEY_ALIAS : ${{ secrets.KEY_ALIAS }}
167191 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 }}
172192
173- - name : Upload build artifacts
193+ - name : Upload Build Artifacts
174194 uses : actions/upload-artifact@v4
175- if : always()
176195 with :
177- name : assets
196+ name : build- assets
178197 path : |
179- ${{ github.workspace }}/apps/flipcash/app/build/outputs/bundle/release
180- ${{ github.workspace }}/apps/flipcash/app/build/outputs/apk/release
198+ ${{ github.workspace }}/artifacts/*.aab
199+ ${{ github.workspace }}/artifacts/*.txt
200+ if-no-files-found : error
201+
202+ deploy :
203+ needs : [tests, build]
204+ runs-on : ubuntu-latest
205+ steps :
206+ - uses : actions/checkout@v4
207+ with :
208+ fetch-depth : 0
209+
210+ - name : Setup Ruby env
211+ uses : ruby/setup-ruby@v1
212+ with :
213+ ruby-version : 2.7.2
214+ bundler-cache : true
215+
216+ - name : Download Build Artifacts
217+ uses : actions/download-artifact@v4
218+ with :
219+ name : build-assets
220+ path : artifacts/
221+
222+ - name : Deploy to Play Store
223+ run : bundle exec fastlane android deploy_to_play_store
224+ env :
225+ SERVICE_ACCOUNT_KEY_JSON : ./code-android-app/serviceAccount.json
226+ PACKAGE_NAME : com.flipcash.android.app
227+ PLAYSTORE_TRACK : ${{ github.event.inputs.track }}
228+ RELEASE_STATUS : ${{ github.event.inputs.release_status }}
0 commit comments