creating-upgrade-test-version
Creating Upgrade Test Version
Automates the creation of test version branches with hardcoded build configurations for testing app upgrade functionality and version migration flows.
Workflow
Step 1: Gather Version Information
Ask the user for the test version number using AskUserQuestion:
Question: "What test version number should be used?"
Options:
- "9005.20.0" (example format)
- Custom input
The version should follow the pattern 9XXX.YY.Z where:
9XXXindicates a test version (e.g., 9005)YY.Zmatches the production version being tested
Step 2: Calculate Build Number
Calculate the build number as: current date (YYYYMMDD) + "00" suffix + 30
The build number must be 10 digits in format: YYYYMMDD00 + 30 = YYYYMMDD30
Example: If today is 20260113, the build number is 2026011300 + 30 = 2026011330
# Calculate build number (10 digits)
DATE=$(date +%Y%m%d)
BUILD_NUMBER=$((${DATE}00 + 30))
echo "Build number: $BUILD_NUMBER" # Output: 2026011330
Step 3: Create and Checkout Branch
Create a new branch named after the test version:
git checkout -b <test_version>
# Example: git checkout -b 9005.20.0
Step 4: Modify Configuration Files
Modify the following files in order:
4.1 Update .env.version
Change the VERSION field to the test version:
VERSION=<test_version>
BUNDLE_VERSION=1
4.2 Update .github/actions/shared-env/action.yml
In the "Setup ENV BUILD_NUMBER" steps, replace ALL build number logic with a hardcoded value. Remove the if/else conditions and simplify to:
- name: Setup ENV BUILD_NUMBER
shell: bash
run: |
echo "BUILD_NUMBER=<calculated_build_number>" >> $GITHUB_ENV
Remove both:
- "Setup ENV BUILD_NUMBER to 1" step
- "Setup ENV BUILD_NUMBER by workflow_run" step
Replace with single step that hardcodes the build number.
4.3 Update .github/workflows/release-android.yml
In the "Write .env.version" step, change:
echo "BUILD_NUMBER=${{ env.BUILD_NUMBER }}" >> .env.version
To:
echo "BUILD_NUMBER=<calculated_build_number>" >> .env.version
4.4 Update apps/mobile/android/app/build.gradle
In the defaultConfig block, update:
versionCode <calculated_build_number>
versionName "<test_version>"
Example:
versionCode 2026011330
versionName "9005.20.0"
Step 5: Commit and Push
git add -A
git commit -m "chore: prepare test version <test_version> with build number <build_number>"
git push -u origin <test_version>
File Locations Summary
| File | Change |
|---|---|
.env.version |
Update VERSION |
.github/actions/shared-env/action.yml |
Hardcode BUILD_NUMBER, remove conditionals |
.github/workflows/release-android.yml |
Hardcode BUILD_NUMBER in .env.version write |
apps/mobile/android/app/build.gradle |
Update versionCode and versionName |
Example Execution
For test version 9005.20.0 on date 2026-01-13:
- Build number =
2026011300 + 30=2026011330(10 digits) - Create branch
9005.20.0 - Set VERSION=
9005.20.0in.env.version - Hardcode BUILD_NUMBER=
2026011330in shared-env action - Hardcode BUILD_NUMBER=
2026011330in release-android workflow - Set versionCode=
2026011330, versionName="9005.20.0"in build.gradle - Commit and push
Validation Checklist
Before pushing, verify:
- Branch name matches test version
-
.env.versionVERSION field updated - Build number conditionals removed from shared-env
- Build number hardcoded in release-android workflow
- versionCode is numeric (build number)
- versionName is quoted string (test version)