Skip to content

Commit 9648401

Browse files
committed
chore: send slack notification on sample app build
1 parent ffcacfd commit 9648401

File tree

2 files changed

+83
-27
lines changed

2 files changed

+83
-27
lines changed

.github/workflows/reusable-build-sample-apps.yml

Lines changed: 81 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -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
@@ -50,6 +52,7 @@ jobs:
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 }}

apps/fastlane/helpers/version_helper.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99
branch_name = github.pr_source_branch
1010
elsif github.is_commit_pushed
1111
branch_name = github.push_branch
12+
else
13+
branch_name = options[:branch_name] || "manual-release"
1214
end
1315

1416
# Replace '/' with '-' to avoid issues with unsupported characters in version name

0 commit comments

Comments
 (0)