11name : Flipcash Build and Deploy
22
33env :
4- # The name of the main module repository
54 main_project_module : apps:flipcash:app
6-
7- # The name of the Play Store
85 playstore_name : Flipcash
96
107on :
11- # Allows you to run this workflow manually from the Actions tab
128 workflow_dispatch :
139 inputs :
1410 track :
2117 - alpha
2218 - beta
2319 - production
24-
2520 release_status :
2621 description : ' Status of the release'
2722 required : true
3429 - halted
3530
3631jobs :
37- deploy :
32+ setup :
3833 runs-on : ubuntu-latest
39-
34+ outputs :
35+ google_services_json : ${{ steps.google_services_json_file.outputs.filePath }}
36+ service_account_json : ${{ steps.service_account_json_file.outputs.filePath }}
37+ signing_key : ${{ steps.signing_key.outputs.filePath }}
4038 steps :
4139 - uses : actions/checkout@v4
4240 with :
@@ -94,26 +92,89 @@ jobs:
9492 - name : Setup Mixpanel API Key
9593 run : echo MIXPANEL_API_KEY=\"${{ secrets.FLIPCASH_MIXPANEL_API_KEY }}\" >> ./local.properties
9694
95+ - name : Cache Gradle
96+ uses : actions/cache@v3
97+ with :
98+ path : ~/.gradle/caches
99+ key : gradle-${{ hashFiles('**/*.gradle*', '**/gradle.properties') }}
100+ restore-keys : gradle-
101+
102+ tests :
103+ needs : setup
104+ runs-on : ubuntu-latest
105+ steps :
106+ - uses : actions/checkout@v4
107+ with :
108+ fetch-depth : 0
109+
110+ - name : Restore Gradle Cache
111+ uses : actions/cache/restore@v3
112+ with :
113+ path : ~/.gradle/caches
114+ key : gradle-${{ hashFiles('**/*.gradle*', '**/gradle.properties') }}
115+ restore-keys : gradle-
116+
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
129+
97130 - name : Run tests
98131 run : bundle exec fastlane android flipcash_tests
99132
133+ deploy :
134+ needs : setup
135+ runs-on : ubuntu-latest
136+ steps :
137+ - uses : actions/checkout@v4
138+ with :
139+ fetch-depth : 0
140+
141+ - name : Restore Gradle Cache
142+ uses : actions/cache/restore@v3
143+ with :
144+ path : ~/.gradle/caches
145+ key : gradle-${{ hashFiles('**/*.gradle*', '**/gradle.properties') }}
146+ restore-keys : gradle-
147+
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+
100161 - name : Build & deploy Android release
101162 run : bundle exec fastlane android deploy_flipcash
102163 env :
103- STORE_FILE : ${{ steps.signing_key .outputs.filePath }}
164+ STORE_FILE : ${{ needs.setup .outputs.signing_key }}
104165 STORE_PASSWORD : ${{ secrets.KEYSTORE_PASSWORD }}
105- KEY_ALIAS : ${{ secrets.KEY_ALIAS}}
166+ KEY_ALIAS : ${{ secrets.KEY_ALIAS }}
106167 KEY_PASSWORD : ${{ secrets.KEYSTORE_PASSWORD }}
107- SERVICE_ACCOUNT_KEY_JSON : ${{ steps.service_account_json_file .outputs.filePath }}
168+ SERVICE_ACCOUNT_KEY_JSON : ${{ needs.setup .outputs.service_account_json }}
108169 PACKAGE_NAME : com.flipcash.android.app
109170 PLAYSTORE_TRACK : ${{ github.event.inputs.track }}
110171 RELEASE_STATUS : ${{ github.event.inputs.release_status }}
111-
172+
112173 - name : Upload build artifacts
113174 uses : actions/upload-artifact@v4
114175 if : always()
115176 with :
116177 name : assets
117178 path : |
118179 ${{ github.workspace }}/apps/flipcash/app/build/outputs/bundle/release
119- ${{ github.workspace }}/apps/flipcash/app/build/outputs/apk/release
180+ ${{ github.workspace }}/apps/flipcash/app/build/outputs/apk/release
0 commit comments