- Test Version Creation
- Automates creation of test version branches with hardcoded build configurations for testing app upgrade functionality and version migration flows.
- Quick Reference
- Version Pattern
- Test versions follow the pattern:
- 9XXX.YY.Z
- 9XXX
- - Test version indicator (e.g., 9005)
- YY.Z
- - Matches production version being tested
- Example:
- 9005.20.0
- for testing production
- 5.20.0
- Build Number Formula
- Build number is calculated as:
- DATE
- =
- $(
- date
- +%Y%m%d
- )
- BUILD_NUMBER
- =
- $((
- ${DATE}
- 00
- +
- 30
- ))
- Format
- 10 digits = YYYYMMDD00 + 30 Example: If today is 20260130 , build number is 2026013030 Workflow Step 1: Get Version Information Ask user for test version number: Format: 9XXX.YY.Z Example: 9005.20.0 Step 2: Calculate Build Number DATE = $( date +%Y%m%d ) BUILD_NUMBER = $(( ${DATE} 00 + 30 )) echo "Build number: $BUILD_NUMBER " Step 3: Create Branch git checkout -b < test_version
Example: git checkout -b 9005.20.0
Step 4: Modify Configuration Files
Update these files in order:
.env.version
Set VERSION to test version
Set BUILD_NUMBER to calculated value
.github/actions/shared-env/action.yml
Update version in outputs section
.github/workflows/release-android.yml
Update versionName in android-build job
apps/mobile/android/app/build.gradle
Update versionCode
Update versionName
Step 5: Commit and Push
git
add
.
git
commit
-m
"chore: create test version
Files to Modify File What to Update .env.version VERSION, BUILD_NUMBER .github/actions/shared-env/action.yml outputs.version .github/workflows/release-android.yml versionName apps/mobile/android/app/build.gradle versionCode, versionName Detailed Guide For comprehensive test version creation workflow with examples, see upgrade-test-version.md . Topics covered: Version number format and conventions Build number calculation formula Step-by-step file modification instructions Configuration file examples Git workflow for test versions QA testing considerations When to Use This Skill Creating test builds for QA upgrade testing Testing version migration flows Verifying app upgrade functionality Creating release candidates with specific build numbers Testing version-specific features or fixes