Skip to content

Commit 8f73676

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

File tree

2 files changed

+65
-27
lines changed

2 files changed

+65
-27
lines changed

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

Lines changed: 63 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,28 @@ 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 }}
113+
shell: bash
113114
run: |
114115
ENV_FILE=".env"
115116
touch "$ENV_FILE"
116117
echo "BUILD_TIMESTAMP=$(date +%s)" >> "$ENV_FILE"
117118
echo "CDP_API_KEY=${{ secrets[format('CUSTOMERIO_{0}_WORKSPACE_CDP_API_KEY', matrix.sample-app.name)] }}" >> "$ENV_FILE"
118119
echo "SITE_ID=${{ secrets[format('CUSTOMERIO_{0}_WORKSPACE_SITE_ID', matrix.sample-app.name)] }}" >> "$ENV_FILE"
119120
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}"
123124
COMMITS_AHEAD=$(git rev-list $LAST_TAG..HEAD --count 2>/dev/null || echo "untracked")
124125
echo "COMMITS_AHEAD_COUNT=$COMMITS_AHEAD" >> "$ENV_FILE"
125126
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"
127128
fi
128129
129130
# Make sure to fetch dependencies only after updating the version numbers and workspace credentials
@@ -154,6 +155,23 @@ jobs:
154155
FIREBASE_APP_DISTRIBUTION_SERVICE_ACCOUNT_CREDS_B64: ${{ secrets.FIREBASE_APP_DISTRIBUTION_SERVICE_ACCOUNT_CREDS_B64 }}
155156
continue-on-error: true # continue to build iOS app even if Android build fails
156157

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+
157175
build-ios-sample-app:
158176
strategy:
159177
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:
177195
with:
178196
fetch-depth: 0 # Workaround for bug https://github.com/actions/checkout/issues/1471
179197

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
183201
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
186206
187207
- name: Set Default Firebase Distribution Groups
188208
shell: bash
@@ -194,6 +214,7 @@ jobs:
194214
PUBLIC_BUILDS_GROUP: public
195215
# Input variables
196216
CURRENT_BRANCH: ${{ github.ref }}
217+
USE_LATEST_SDK_VERSION: ${{ inputs.use_latest_sdk_version }}
197218
run: |
198219
# Initialize with the default distribution group
199220
distribution_groups=("$ALL_BUILDS_GROUP")
@@ -245,30 +266,28 @@ jobs:
245266
with:
246267
subdirectory: apps/${{ matrix.sample-app.name }}
247268
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) || '' }}
249270
env:
250271
SDK_VERSION_NAME: ${{ env.SDK_VERSION_NAME }}
251272
APP_VERSION_NAME: ${{ env.APP_VERSION_NAME }}
252273
APP_VERSION_CODE: ${{ env.APP_VERSION_CODE }}
253274

254275
- 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
258277
run: |
259278
ENV_FILE=".env"
260279
touch "$ENV_FILE"
261280
echo "BUILD_TIMESTAMP=$(date +%s)" >> "$ENV_FILE"
262281
echo "CDP_API_KEY=${{ secrets[format('CUSTOMERIO_{0}_WORKSPACE_CDP_API_KEY', matrix.sample-app.name)] }}" >> "$ENV_FILE"
263282
echo "SITE_ID=${{ secrets[format('CUSTOMERIO_{0}_WORKSPACE_SITE_ID', matrix.sample-app.name)] }}" >> "$ENV_FILE"
264283
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}"
268287
COMMITS_AHEAD=$(git rev-list $LAST_TAG..HEAD --count 2>/dev/null || echo "untracked")
269288
echo "COMMITS_AHEAD_COUNT=$COMMITS_AHEAD" >> "$ENV_FILE"
270289
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"
272291
fi
273292
274293
- name: Setup workspace credentials in iOS environment files
@@ -315,4 +334,21 @@ jobs:
315334
options: '{"distribution_groups": "${{ env.firebase_distribution_groups }}"}'
316335
env:
317336
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 }}

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)