@@ -33,12 +33,14 @@ jobs:
3333 with :
3434 fetch-depth : 0 # Workaround for bug https://github.com/actions/checkout/issues/1471
3535
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
3939 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
4244
4345 - name : Set Default Firebase Distribution Groups
4446 shell : bash
5052 PUBLIC_BUILDS_GROUP : public
5153 # Input variables
5254 CURRENT_BRANCH : ${{ github.ref }}
55+ USE_LATEST_SDK_VERSION : ${{ inputs.use_latest_sdk_version }}
5356 run : |
5457 # Initialize with the default distribution group
5558 distribution_groups=("$ALL_BUILDS_GROUP")
@@ -100,30 +103,27 @@ jobs:
100103 with :
101104 subdirectory : apps/${{ matrix.sample-app.name }}
102105 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) || '' }}
104107 env :
105108 SDK_VERSION_NAME : ${{ env.SDK_VERSION_NAME }}
106109 APP_VERSION_NAME : ${{ env.APP_VERSION_NAME }}
107110 APP_VERSION_CODE : ${{ env.APP_VERSION_CODE }}
108111
109112 - 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 }}
113113 run : |
114114 ENV_FILE=".env"
115115 touch "$ENV_FILE"
116116 echo "BUILD_TIMESTAMP=$(date +%s)" >> "$ENV_FILE"
117117 echo "CDP_API_KEY=${{ secrets[format('CUSTOMERIO_{0}_WORKSPACE_CDP_API_KEY', matrix.sample-app.name)] }}" >> "$ENV_FILE"
118118 echo "SITE_ID=${{ secrets[format('CUSTOMERIO_{0}_WORKSPACE_SITE_ID', matrix.sample-app.name)] }}" >> "$ENV_FILE"
119119 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}"
123123 COMMITS_AHEAD=$(git rev-list $LAST_TAG..HEAD --count 2>/dev/null || echo "untracked")
124124 echo "COMMITS_AHEAD_COUNT=$COMMITS_AHEAD" >> "$ENV_FILE"
125125 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"
127127 fi
128128
129129 # Make sure to fetch dependencies only after updating the version numbers and workspace credentials
@@ -154,6 +154,33 @@ jobs:
154154 FIREBASE_APP_DISTRIBUTION_SERVICE_ACCOUNT_CREDS_B64 : ${{ secrets.FIREBASE_APP_DISTRIBUTION_SERVICE_ACCOUNT_CREDS_B64 }}
155155 continue-on-error : true # continue to build iOS app even if Android build fails
156156
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+
157184 build-ios-sample-app :
158185 strategy :
159186 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:
177204 with :
178205 fetch-depth : 0 # Workaround for bug https://github.com/actions/checkout/issues/1471
179206
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
183210 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
186215
187216 - name : Set Default Firebase Distribution Groups
188217 shell : bash
@@ -194,6 +223,7 @@ jobs:
194223 PUBLIC_BUILDS_GROUP : public
195224 # Input variables
196225 CURRENT_BRANCH : ${{ github.ref }}
226+ USE_LATEST_SDK_VERSION : ${{ inputs.use_latest_sdk_version }}
197227 run : |
198228 # Initialize with the default distribution group
199229 distribution_groups=("$ALL_BUILDS_GROUP")
@@ -245,30 +275,27 @@ jobs:
245275 with :
246276 subdirectory : apps/${{ matrix.sample-app.name }}
247277 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) || '' }}
249279 env :
250280 SDK_VERSION_NAME : ${{ env.SDK_VERSION_NAME }}
251281 APP_VERSION_NAME : ${{ env.APP_VERSION_NAME }}
252282 APP_VERSION_CODE : ${{ env.APP_VERSION_CODE }}
253283
254284 - 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 }}
258285 run : |
259286 ENV_FILE=".env"
260287 touch "$ENV_FILE"
261288 echo "BUILD_TIMESTAMP=$(date +%s)" >> "$ENV_FILE"
262289 echo "CDP_API_KEY=${{ secrets[format('CUSTOMERIO_{0}_WORKSPACE_CDP_API_KEY', matrix.sample-app.name)] }}" >> "$ENV_FILE"
263290 echo "SITE_ID=${{ secrets[format('CUSTOMERIO_{0}_WORKSPACE_SITE_ID', matrix.sample-app.name)] }}" >> "$ENV_FILE"
264291 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}"
268295 COMMITS_AHEAD=$(git rev-list $LAST_TAG..HEAD --count 2>/dev/null || echo "untracked")
269296 echo "COMMITS_AHEAD_COUNT=$COMMITS_AHEAD" >> "$ENV_FILE"
270297 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"
272299 fi
273300
274301 - name : Setup workspace credentials in iOS environment files
@@ -315,4 +342,31 @@ jobs:
315342 options : ' {"distribution_groups": "${{ env.firebase_distribution_groups }}"}'
316343 env :
317344 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