@@ -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,27 @@ 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
113
run : |
114
114
ENV_FILE=".env"
115
115
touch "$ENV_FILE"
116
116
echo "BUILD_TIMESTAMP=$(date +%s)" >> "$ENV_FILE"
117
117
echo "CDP_API_KEY=${{ secrets[format('CUSTOMERIO_{0}_WORKSPACE_CDP_API_KEY', matrix.sample-app.name)] }}" >> "$ENV_FILE"
118
118
echo "SITE_ID=${{ secrets[format('CUSTOMERIO_{0}_WORKSPACE_SITE_ID', matrix.sample-app.name)] }}" >> "$ENV_FILE"
119
119
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")
120
+ echo "BRANCH_NAME=${{ env. BRANCH_NAME }} " >> "$ENV_FILE"
121
+ echo "COMMIT_HASH=${{ env. COMMIT_HASH } }" >> "$ENV_FILE"
122
+ LAST_TAG="${LATEST_TAG:- untagged}"
123
123
COMMITS_AHEAD=$(git rev-list $LAST_TAG..HEAD --count 2>/dev/null || echo "untracked")
124
124
echo "COMMITS_AHEAD_COUNT=$COMMITS_AHEAD" >> "$ENV_FILE"
125
125
if [ "${{ inputs.use_latest_sdk_version }}" == "true" ]; then
126
- echo "SDK_VERSION=${{ steps.latest-sdk-version-step.outputs .LATEST_TAG }}" >> "$ENV_FILE"
126
+ echo "SDK_VERSION=${{ env .LATEST_TAG }}" >> "$ENV_FILE"
127
127
fi
128
128
129
129
# Make sure to fetch dependencies only after updating the version numbers and workspace credentials
@@ -154,6 +154,33 @@ jobs:
154
154
FIREBASE_APP_DISTRIBUTION_SERVICE_ACCOUNT_CREDS_B64 : ${{ secrets.FIREBASE_APP_DISTRIBUTION_SERVICE_ACCOUNT_CREDS_B64 }}
155
155
continue-on-error : true # continue to build iOS app even if Android build fails
156
156
157
+ - name : Determine SDK Version
158
+ shell : bash
159
+ id : determine-sdk-version
160
+ run : |
161
+ if [[ "${{ inputs.use_latest_sdk_version }}" == "true" ]]; then
162
+ echo "APP_SDK_BUILD_VERSION=${{ env.LATEST_TAG }}" >> $GITHUB_ENV
163
+ else
164
+ echo "APP_SDK_BUILD_VERSION=${{ env.SDK_VERSION_NAME }}" >> $GITHUB_ENV
165
+ fi
166
+
167
+ - name : Send Slack Notification for Sample App Builds (Android)
168
+ if : always()
169
+ uses : customerio/mobile-ci-tools/github-actions/slack-notify-sample-app/v1
170
+ with :
171
+ build_status : ${{ steps.android_build.outcome }}
172
+ app_icon_emoji : " :flutter:"
173
+ app_name : " Flutter"
174
+ firebase_app_id : ${{ secrets[format('SAMPLE_APPS_{0}_FIREBASE_APP_ID_ANDROID', matrix.sample-app.name)] }}
175
+ firebase_distribution_groups : ${{ env.firebase_distribution_groups }}
176
+ git_context : " ${{ env.BRANCH_NAME }} (${{ env.COMMIT_HASH }})"
177
+ icon_url : " https://img.icons8.com/color/512/flutter.png"
178
+ instructions_guide_link : ${{ secrets.SAMPLE_APPS_INSTRUCTIONS_GUIDE_LINK }}
179
+ platform : " android"
180
+ sdk_name : " Flutter SDK"
181
+ sdk_version : ${{ env.APP_SDK_BUILD_VERSION }}
182
+ slack_webhook_url : ${{ secrets.SLACK_WEBHOOK_URL }}
183
+
157
184
build-ios-sample-app :
158
185
strategy :
159
186
fail-fast : false # if one sample app fails to build, let the other sample apps continue to build and not cancel them.
@@ -177,12 +204,14 @@ jobs:
177
204
with :
178
205
fetch-depth : 0 # Workaround for bug https://github.com/actions/checkout/issues/1471
179
206
180
- - name : Get latest SDK version
181
- if : ${{ inputs.use_latest_sdk_version == true }}
182
- id : latest-sdk-version-step
207
+ - name : Capture Git Context
208
+ shell : bash
209
+ id : git-context
183
210
run : |
184
- latest_tag=$(git describe --tags --abbrev=0)
185
- echo "LATEST_TAG=$latest_tag" >> "$GITHUB_OUTPUT"
211
+ echo "BRANCH_NAME=${{ github.head_ref || github.ref_name }}" >> $GITHUB_ENV
212
+ COMMIT_HASH="${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || github.sha }}"
213
+ echo "COMMIT_HASH=${COMMIT_HASH:0:7}" >> $GITHUB_ENV
214
+ echo "LATEST_TAG=$(git describe --tags --abbrev=0)" >> $GITHUB_ENV
186
215
187
216
- name : Set Default Firebase Distribution Groups
188
217
shell : bash
@@ -194,6 +223,7 @@ jobs:
194
223
PUBLIC_BUILDS_GROUP : public
195
224
# Input variables
196
225
CURRENT_BRANCH : ${{ github.ref }}
226
+ USE_LATEST_SDK_VERSION : ${{ inputs.use_latest_sdk_version }}
197
227
run : |
198
228
# Initialize with the default distribution group
199
229
distribution_groups=("$ALL_BUILDS_GROUP")
@@ -245,30 +275,27 @@ jobs:
245
275
with :
246
276
subdirectory : apps/${{ matrix.sample-app.name }}
247
277
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) || '' }}
278
+ options : ${{ inputs.use_latest_sdk_version == true && format('{{"version_name":"{0}"}}', env .LATEST_TAG) || '' }}
249
279
env :
250
280
SDK_VERSION_NAME : ${{ env.SDK_VERSION_NAME }}
251
281
APP_VERSION_NAME : ${{ env.APP_VERSION_NAME }}
252
282
APP_VERSION_CODE : ${{ env.APP_VERSION_CODE }}
253
283
254
284
- 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 }}
258
285
run : |
259
286
ENV_FILE=".env"
260
287
touch "$ENV_FILE"
261
288
echo "BUILD_TIMESTAMP=$(date +%s)" >> "$ENV_FILE"
262
289
echo "CDP_API_KEY=${{ secrets[format('CUSTOMERIO_{0}_WORKSPACE_CDP_API_KEY', matrix.sample-app.name)] }}" >> "$ENV_FILE"
263
290
echo "SITE_ID=${{ secrets[format('CUSTOMERIO_{0}_WORKSPACE_SITE_ID', matrix.sample-app.name)] }}" >> "$ENV_FILE"
264
291
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")
292
+ echo "BRANCH_NAME=${{ env. BRANCH_NAME }} " >> "$ENV_FILE"
293
+ echo "COMMIT_HASH=${{ env. COMMIT_HASH } }" >> "$ENV_FILE"
294
+ LAST_TAG="${LATEST_TAG:- untagged}"
268
295
COMMITS_AHEAD=$(git rev-list $LAST_TAG..HEAD --count 2>/dev/null || echo "untracked")
269
296
echo "COMMITS_AHEAD_COUNT=$COMMITS_AHEAD" >> "$ENV_FILE"
270
297
if [ "${{ inputs.use_latest_sdk_version }}" == "true" ]; then
271
- echo "SDK_VERSION=${{ steps.latest-sdk-version-step.outputs .LATEST_TAG }}" >> "$ENV_FILE"
298
+ echo "SDK_VERSION=${{ env .LATEST_TAG }}" >> "$ENV_FILE"
272
299
fi
273
300
274
301
- name : Setup workspace credentials in iOS environment files
@@ -315,4 +342,31 @@ jobs:
315
342
options : ' {"distribution_groups": "${{ env.firebase_distribution_groups }}"}'
316
343
env :
317
344
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 }}
345
+ FIREBASE_APP_DISTRIBUTION_SERVICE_ACCOUNT_CREDS_B64 : ${{ secrets.FIREBASE_APP_DISTRIBUTION_SERVICE_ACCOUNT_CREDS_B64 }}
346
+
347
+ - name : Determine SDK Version
348
+ shell : bash
349
+ id : determine-sdk-version
350
+ run : |
351
+ if [[ "${{ inputs.use_latest_sdk_version }}" == "true" ]]; then
352
+ echo "APP_SDK_BUILD_VERSION=${{ env.LATEST_TAG }}" >> $GITHUB_ENV
353
+ else
354
+ echo "APP_SDK_BUILD_VERSION=${{ env.SDK_VERSION_NAME }}" >> $GITHUB_ENV
355
+ fi
356
+
357
+ - name : Send Slack Notification for Sample App Builds (iOS)
358
+ if : always()
359
+ uses : customerio/mobile-ci-tools/github-actions/slack-notify-sample-app/v1
360
+ with :
361
+ build_status : ${{ steps.ios_build.outcome }}
362
+ app_icon_emoji : " :flutter:"
363
+ app_name : " Flutter"
364
+ firebase_app_id : ${{ secrets[format('SAMPLE_APPS_{0}_FIREBASE_APP_ID_IOS', matrix.sample-app.name)] }}
365
+ firebase_distribution_groups : ${{ env.firebase_distribution_groups }}
366
+ git_context : " ${{ env.BRANCH_NAME }} (${{ env.COMMIT_HASH }})"
367
+ icon_url : " https://img.icons8.com/color/512/flutter.png"
368
+ instructions_guide_link : ${{ secrets.SAMPLE_APPS_INSTRUCTIONS_GUIDE_LINK }}
369
+ platform : " ios"
370
+ sdk_name : " Flutter SDK"
371
+ sdk_version : ${{ env.APP_SDK_BUILD_VERSION }}
372
+ slack_webhook_url : ${{ secrets.SLACK_WEBHOOK_URL }}
0 commit comments