@@ -33,12 +33,14 @@ jobs:
33
33
with :
34
34
fetch-depth : 0 # Workaround for bug https://github.com/actions/checkout/issues/1471
35
35
36
- - name : Get latest SDK version
37
- if : ${{ inputs.use_latest_sdk_version == true }}
38
- id : latest-sdk-version-step
36
+ - name : Capture Git Context
37
+ shell : bash
38
+ id : git-context
39
39
run : |
40
- latest_tag=$(git describe --tags --abbrev=0)
41
- echo "LATEST_TAG=$latest_tag" >> "$GITHUB_OUTPUT"
40
+ echo "BRANCH_NAME=${{ github.head_ref || github.ref_name }}" >> $GITHUB_ENV
41
+ COMMIT_HASH="${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}"
42
+ echo "COMMIT_HASH=${COMMIT_HASH:0:7}" >> $GITHUB_ENV
43
+ echo "LATEST_TAG=$(git describe --tags --abbrev=0)" >> $GITHUB_ENV
42
44
43
45
- name : Set Default Firebase Distribution Groups
44
46
shell : bash
50
52
PUBLIC_BUILDS_GROUP : public
51
53
# Input variables
52
54
CURRENT_BRANCH : ${{ github.ref }}
55
+ USE_LATEST_SDK_VERSION : ${{ inputs.use_latest_sdk_version }}
53
56
run : |
54
57
# Initialize with the default distribution group
55
58
distribution_groups=("$ALL_BUILDS_GROUP")
@@ -100,30 +103,28 @@ jobs:
100
103
with :
101
104
subdirectory : apps/${{ matrix.sample-app.name }}
102
105
lane : " update_flutter_android_app_version"
103
- options : ${{ inputs.use_latest_sdk_version == true && format('{{"version_name":"{0}"}}', steps.latest-sdk-version-step.outputs .LATEST_TAG) || '' }}
106
+ options : ${{ inputs.use_latest_sdk_version == true && format('{{"version_name":"{0}"}}', env .LATEST_TAG) || '' }}
104
107
env :
105
108
SDK_VERSION_NAME : ${{ env.SDK_VERSION_NAME }}
106
109
APP_VERSION_NAME : ${{ env.APP_VERSION_NAME }}
107
110
APP_VERSION_CODE : ${{ env.APP_VERSION_CODE }}
108
111
109
112
- name : Setup workspace credentials in flutter environment files
110
- env :
111
- BRANCH_NAME : ${{ github.head_ref || github.ref_name }}
112
- COMMIT_HASH : ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
113
+ shell : bash
113
114
run : |
114
115
ENV_FILE=".env"
115
116
touch "$ENV_FILE"
116
117
echo "BUILD_TIMESTAMP=$(date +%s)" >> "$ENV_FILE"
117
118
echo "CDP_API_KEY=${{ secrets[format('CUSTOMERIO_{0}_WORKSPACE_CDP_API_KEY', matrix.sample-app.name)] }}" >> "$ENV_FILE"
118
119
echo "SITE_ID=${{ secrets[format('CUSTOMERIO_{0}_WORKSPACE_SITE_ID', matrix.sample-app.name)] }}" >> "$ENV_FILE"
119
120
echo "WORKSPACE_NAME=${{ matrix.sample-app.cio-workspace-name }}" >> "$ENV_FILE"
120
- echo "BRANCH_NAME=$BRANCH_NAME" >> "$ENV_FILE"
121
- echo "COMMIT_HASH=${COMMIT_HASH:0:7 }" >> "$ENV_FILE"
122
- LAST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo " untagged")
121
+ echo "BRANCH_NAME=${{ env. BRANCH_NAME }} " >> "$ENV_FILE"
122
+ echo "COMMIT_HASH=${{ env. COMMIT_HASH } }" >> "$ENV_FILE"
123
+ LAST_TAG="${LATEST_TAG:- untagged}"
123
124
COMMITS_AHEAD=$(git rev-list $LAST_TAG..HEAD --count 2>/dev/null || echo "untracked")
124
125
echo "COMMITS_AHEAD_COUNT=$COMMITS_AHEAD" >> "$ENV_FILE"
125
126
if [ "${{ inputs.use_latest_sdk_version }}" == "true" ]; then
126
- echo "SDK_VERSION=${{ steps.latest-sdk-version-step.outputs .LATEST_TAG }}" >> "$ENV_FILE"
127
+ echo "SDK_VERSION=${{ env .LATEST_TAG }}" >> "$ENV_FILE"
127
128
fi
128
129
129
130
# Make sure to fetch dependencies only after updating the version numbers and workspace credentials
@@ -154,6 +155,23 @@ jobs:
154
155
FIREBASE_APP_DISTRIBUTION_SERVICE_ACCOUNT_CREDS_B64 : ${{ secrets.FIREBASE_APP_DISTRIBUTION_SERVICE_ACCOUNT_CREDS_B64 }}
155
156
continue-on-error : true # continue to build iOS app even if Android build fails
156
157
158
+ - name : Send Slack Notification for Sample App Builds (Android)
159
+ if : always()
160
+ uses : customerio/mobile-ci-tools/github-actions/slack-notify-sample-app/v1
161
+ with :
162
+ build_status : ${{ steps.android_build.outcome }}
163
+ app_icon_emoji : " :flutter:"
164
+ app_name : " Flutter"
165
+ firebase_app_id : ${{ secrets[format('SAMPLE_APPS_{0}_FIREBASE_APP_ID_ANDROID', matrix.sample-app.name)] }}
166
+ firebase_distribution_groups : ${{ env.firebase_distribution_groups }}
167
+ git_context : " ${{ env.BRANCH_NAME }} (${{ env.COMMIT_HASH }})"
168
+ icon_url : " https://img.icons8.com/color/512/flutter.png"
169
+ instructions_guide_link : ${{ secrets.SAMPLE_APPS_INSTRUCTIONS_GUIDE_LINK }}
170
+ platform : " android"
171
+ sdk_name : " Flutter SDK"
172
+ sdk_version : ${{ env.SDK_VERSION_NAME }}
173
+ slack_webhook_url : ${{ secrets.SLACK_WEBHOOK_URL }}
174
+
157
175
build-ios-sample-app :
158
176
strategy :
159
177
fail-fast : false # if one sample app fails to build, let the other sample apps continue to build and not cancel them.
@@ -177,12 +195,14 @@ jobs:
177
195
with :
178
196
fetch-depth : 0 # Workaround for bug https://github.com/actions/checkout/issues/1471
179
197
180
- - name : Get latest SDK version
181
- if : ${{ inputs.use_latest_sdk_version == true }}
182
- id : latest-sdk-version-step
198
+ - name : Capture Git Context
199
+ shell : bash
200
+ id : git-context
183
201
run : |
184
- latest_tag=$(git describe --tags --abbrev=0)
185
- echo "LATEST_TAG=$latest_tag" >> "$GITHUB_OUTPUT"
202
+ echo "BRANCH_NAME=${{ github.head_ref || github.ref_name }}" >> $GITHUB_ENV
203
+ COMMIT_HASH="${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}"
204
+ echo "COMMIT_HASH=${COMMIT_HASH:0:7}" >> $GITHUB_ENV
205
+ echo "LATEST_TAG=$(git describe --tags --abbrev=0)" >> $GITHUB_ENV
186
206
187
207
- name : Set Default Firebase Distribution Groups
188
208
shell : bash
@@ -194,6 +214,7 @@ jobs:
194
214
PUBLIC_BUILDS_GROUP : public
195
215
# Input variables
196
216
CURRENT_BRANCH : ${{ github.ref }}
217
+ USE_LATEST_SDK_VERSION : ${{ inputs.use_latest_sdk_version }}
197
218
run : |
198
219
# Initialize with the default distribution group
199
220
distribution_groups=("$ALL_BUILDS_GROUP")
@@ -245,30 +266,28 @@ jobs:
245
266
with :
246
267
subdirectory : apps/${{ matrix.sample-app.name }}
247
268
lane : " update_flutter_ios_app_version"
248
- options : ${{ inputs.use_latest_sdk_version == true && format('{{"version_name":"{0}"}}', steps.latest-sdk-version-step.outputs .LATEST_TAG) || '' }}
269
+ options : ${{ inputs.use_latest_sdk_version == true && format('{{"version_name":"{0}"}}', env .LATEST_TAG) || '' }}
249
270
env :
250
271
SDK_VERSION_NAME : ${{ env.SDK_VERSION_NAME }}
251
272
APP_VERSION_NAME : ${{ env.APP_VERSION_NAME }}
252
273
APP_VERSION_CODE : ${{ env.APP_VERSION_CODE }}
253
274
254
275
- name : Setup workspace credentials in flutter environment files
255
- env :
256
- BRANCH_NAME : ${{ github.head_ref || github.ref_name }}
257
- COMMIT_HASH : ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}
276
+ shell : bash
258
277
run : |
259
278
ENV_FILE=".env"
260
279
touch "$ENV_FILE"
261
280
echo "BUILD_TIMESTAMP=$(date +%s)" >> "$ENV_FILE"
262
281
echo "CDP_API_KEY=${{ secrets[format('CUSTOMERIO_{0}_WORKSPACE_CDP_API_KEY', matrix.sample-app.name)] }}" >> "$ENV_FILE"
263
282
echo "SITE_ID=${{ secrets[format('CUSTOMERIO_{0}_WORKSPACE_SITE_ID', matrix.sample-app.name)] }}" >> "$ENV_FILE"
264
283
echo "WORKSPACE_NAME=${{ matrix.sample-app.cio-workspace-name }}" >> "$ENV_FILE"
265
- echo "BRANCH_NAME=$BRANCH_NAME" >> "$ENV_FILE"
266
- echo "COMMIT_HASH=${COMMIT_HASH:0:7 }" >> "$ENV_FILE"
267
- LAST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo " untagged")
284
+ echo "BRANCH_NAME=${{ env. BRANCH_NAME }} " >> "$ENV_FILE"
285
+ echo "COMMIT_HASH=${{ env. COMMIT_HASH } }" >> "$ENV_FILE"
286
+ LAST_TAG="${LATEST_TAG:- untagged}"
268
287
COMMITS_AHEAD=$(git rev-list $LAST_TAG..HEAD --count 2>/dev/null || echo "untracked")
269
288
echo "COMMITS_AHEAD_COUNT=$COMMITS_AHEAD" >> "$ENV_FILE"
270
289
if [ "${{ inputs.use_latest_sdk_version }}" == "true" ]; then
271
- echo "SDK_VERSION=${{ steps.latest-sdk-version-step.outputs .LATEST_TAG }}" >> "$ENV_FILE"
290
+ echo "SDK_VERSION=${{ env .LATEST_TAG }}" >> "$ENV_FILE"
272
291
fi
273
292
274
293
- name : Setup workspace credentials in iOS environment files
@@ -315,4 +334,21 @@ jobs:
315
334
options : ' {"distribution_groups": "${{ env.firebase_distribution_groups }}"}'
316
335
env :
317
336
GOOGLE_CLOUD_MATCH_READONLY_SERVICE_ACCOUNT_B64 : ${{ secrets.GOOGLE_CLOUD_MATCH_READONLY_SERVICE_ACCOUNT_B64 }}
318
- FIREBASE_APP_DISTRIBUTION_SERVICE_ACCOUNT_CREDS_B64 : ${{ secrets.FIREBASE_APP_DISTRIBUTION_SERVICE_ACCOUNT_CREDS_B64 }}
337
+ FIREBASE_APP_DISTRIBUTION_SERVICE_ACCOUNT_CREDS_B64 : ${{ secrets.FIREBASE_APP_DISTRIBUTION_SERVICE_ACCOUNT_CREDS_B64 }}
338
+
339
+ - name : Send Slack Notification for Sample App Builds (iOS)
340
+ if : always()
341
+ uses : customerio/mobile-ci-tools/github-actions/slack-notify-sample-app/v1
342
+ with :
343
+ build_status : ${{ steps.ios_build.outcome }}
344
+ app_icon_emoji : " :flutter:"
345
+ app_name : " Flutter"
346
+ firebase_app_id : ${{ secrets[format('SAMPLE_APPS_{0}_FIREBASE_APP_ID_IOS', matrix.sample-app.name)] }}
347
+ firebase_distribution_groups : ${{ env.firebase_distribution_groups }}
348
+ git_context : " ${{ env.BRANCH_NAME }} (${{ env.COMMIT_HASH }})"
349
+ icon_url : " https://img.icons8.com/color/512/flutter.png"
350
+ instructions_guide_link : ${{ secrets.SAMPLE_APPS_INSTRUCTIONS_GUIDE_LINK }}
351
+ platform : " ios"
352
+ sdk_name : " Flutter SDK"
353
+ sdk_version : ${{ env.SDK_VERSION_NAME }}
354
+ slack_webhook_url : ${{ secrets.SLACK_WEBHOOK_URL }}
0 commit comments