Skip to content

Commit 7ddfdcd

Browse files
committed
build: work to optimize CI for flipcash
Signed-off-by: Brandon McAnsh <git@bmcreations.dev>
1 parent 390ec3b commit 7ddfdcd

1 file changed

Lines changed: 73 additions & 12 deletions

File tree

.github/workflows/build-fcash-upload-android.yml

Lines changed: 73 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,10 @@
11
name: Flipcash Build and Deploy
22

33
env:
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

107
on:
11-
# Allows you to run this workflow manually from the Actions tab
128
workflow_dispatch:
139
inputs:
1410
track:
@@ -21,7 +17,6 @@ on:
2117
- alpha
2218
- beta
2319
- production
24-
2520
release_status:
2621
description: 'Status of the release'
2722
required: true
@@ -34,9 +29,12 @@ on:
3429
- halted
3530

3631
jobs:
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

Comments
 (0)