@@ -4,7 +4,7 @@ permissions:
44
55on :
66 push :
7- branches : [main]
7+ branches : ['**'] # run on any branch
88 workflow_dispatch :
99
1010env :
2121 build_number : ${{ steps.version-control.outputs.build_number }}
2222 build_date : ${{ steps.version-control.outputs.build_date }}
2323 is_production : ${{ steps.version-control.outputs.is_production }}
24+ eas_profile : ${{ steps.version-control.outputs.eas_profile }} # added dynamic profile output
25+ eas_channel : ${{ steps.version-control.outputs.eas_channel }} # added dynamic channel output
2426 steps :
2527 # ========================
2628 # 🛠️ Repository Setup
@@ -68,29 +70,38 @@ jobs:
6870 - name : " 🏷️ Set CI/CD Versions"
6971 id : version-control
7072 run : |
71- # Use version from version.json (requires jq)
72- if [ "${{ github.ref }}" == "refs/heads/main" ]; then
73+ # Determine branch and environment
74+ BRANCH_NAME=${GITHUB_REF#refs/heads/}
75+ if [ "${BRANCH_NAME}" == "main" ]; then
7376 APP_VERSION=$(jq -r '.version' version.json)
7477 IS_PRODUCTION="true"
78+ EAS_PROFILE=production
79+ EAS_CHANNEL=production
7580 else
76- APP_VERSION="1.0.0-prerelease.${{ github.run_number } }"
81+ APP_VERSION="1.0.0-prerelease.${GITHUB_RUN_NUMBER }"
7782 IS_PRODUCTION="false"
83+ EAS_PROFILE=development # dev build profile
84+ EAS_CHANNEL="dev-${BRANCH_NAME}" # dev release channel
7885 fi
7986
8087 # Generate build identifiers
8188 BUILD_NUMBER="${{ github.run_id }}"
8289 BUILD_DATE=$(date +'%Y%m%d-%H%M%S')
8390
8491 # Set outputs for downstream jobs
85- echo "app_version=$APP_VERSION" >> $GITHUB_OUTPUT
86- echo "build_number=$BUILD_NUMBER" >> $GITHUB_OUTPUT
87- echo "build_date=$BUILD_DATE" >> $GITHUB_OUTPUT
88- echo "is_production=$IS_PRODUCTION" >> $GITHUB_OUTPUT
92+ echo "app_version=${APP_VERSION}" >> $GITHUB_OUTPUT
93+ echo "build_number=${BUILD_NUMBER}" >> $GITHUB_OUTPUT
94+ echo "build_date=${BUILD_DATE}" >> $GITHUB_OUTPUT
95+ echo "is_production=${IS_PRODUCTION}" >> $GITHUB_OUTPUT
96+ echo "eas_profile=${EAS_PROFILE}" >> $GITHUB_OUTPUT
97+ echo "eas_channel=${EAS_CHANNEL}" >> $GITHUB_OUTPUT
8998
9099 # Export environment variables
91- echo "APP_VERSION=$APP_VERSION" >> $GITHUB_ENV
92- echo "BUILD_NUMBER=$BUILD_NUMBER" >> $GITHUB_ENV
93- echo "BUILD_DATE=$BUILD_DATE" >> $GITHUB_ENV
100+ echo "APP_VERSION=${APP_VERSION}" >> $GITHUB_ENV
101+ echo "BUILD_NUMBER=${BUILD_NUMBER}" >> $GITHUB_ENV
102+ echo "BUILD_DATE=${BUILD_DATE}" >> $GITHUB_ENV
103+ echo "EAS_PROFILE=${EAS_PROFILE}" >> $GITHUB_ENV
104+ echo "EAS_CHANNEL=${EAS_CHANNEL}" >> $GITHUB_ENV
94105
95106 # ========================
96107 # 🔐 EAS Setup & Auth
@@ -107,9 +118,9 @@ jobs:
107118 - name : " 🚀 Trigger EAS Build"
108119 id : build
109120 run : |
110- echo "🔄 Initializing build process..."
121+ echo "🔄 Initializing build process with profile=${EAS_PROFILE} on channel=${EAS_CHANNEL} ..."
111122 sudo apt-get install -y jq
112- BUILD_JSON=$(npx eas build -p android --profile production --non-interactive --json)
123+ BUILD_JSON=$(npx eas build -p android --profile $EAS_PROFILE --channel $EAS_CHANNEL --non-interactive --json)
113124 echo "Raw build output: $BUILD_JSON"
114125 BUILD_ID=$(echo "$BUILD_JSON" | jq -r '.[0].id')
115126 if [[ -z "$BUILD_ID" || "$BUILD_ID" == "null" ]]; then
@@ -170,7 +181,8 @@ jobs:
170181 SLEEP_TIME=30
171182
172183 while [[ $RETRY_COUNT -lt $MAX_RETRIES ]]; do
173- echo -e "\n=== Attempt $((RETRY_COUNT+1))/$MAX_RETRIES ==="
184+ echo -e "
185+ === Attempt $((RETRY_COUNT+1))/$MAX_RETRIES ==="
174186
175187 # Fetch build status in JSON format
176188 BUILD_STATUS_JSON=$(npx eas build:view --json $BUILD_ID)
@@ -233,7 +245,6 @@ jobs:
233245 id : download
234246 run : |
235247 echo "🔽 Retrieving APK URL..."
236- # Use the build:view command to get a clean JSON response
237248 APK_URL=$(npx eas build:view --json ${{ needs.build-android.outputs.build_id }} | jq -r '.artifacts.buildUrl')
238249 if [[ -z "$APK_URL" || "$APK_URL" == "null" ]]; then
239250 echo "❌ Error: No APK URL found!"
@@ -321,11 +332,13 @@ jobs:
321332 RELEASE_TITLE="Nightly Build (${{ needs.build-android.outputs.build_date }})"
322333 fi
323334 echo "RELEASE_TAG=${RELEASE_TAG}" >> $GITHUB_OUTPUT
335+ echo "RELEASE_TITLE=${RELEASE_TITLE}" >> $GITHUB_OUTPUT
336+
324337 - name : " 🎉 Publish GitHub Release"
325338 uses : softprops/action-gh-release@v2
326339 with :
327340 tag_name : ${{ steps.release-type.outputs.RELEASE_TAG }}
328341 name : ${{ steps.release-type.outputs.RELEASE_TITLE }}
329342 body_path : changelog.txt
330343 files : app-release.apk
331- prerelease : ${{ needs.build-android.outputs.is_production != 'true' }}
344+ prerelease : ${{ needs.build-android.outputs.is_production != 'true' }}
0 commit comments