Skip to content

Commit fb4d93e

Browse files
author
root
committed
chore: Add deployment script and checklist
1 parent 99233fc commit fb4d93e

File tree

2 files changed

+352
-0
lines changed

2 files changed

+352
-0
lines changed

DEPLOYMENT_CHECKLIST.md

Lines changed: 252 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,252 @@
1+
# Explorer3 Deployment Checklist
2+
3+
## Pre-Deployment Verification
4+
5+
### Code Quality ✅
6+
- [x] All files committed to git
7+
- [x] No linter errors
8+
- [x] All resources verified
9+
- [x] Navigation integrated
10+
- [x] Error handling implemented
11+
12+
### Files Status
13+
- [x] 10 Kotlin source files created
14+
- [x] Navigation graph updated
15+
- [x] String resources added
16+
- [x] Drawable resources verified
17+
- [x] Documentation complete
18+
19+
## Build Steps
20+
21+
### 1. Environment Setup
22+
```bash
23+
# Verify Java 17+ installed
24+
java -version
25+
26+
# Verify Android SDK configured
27+
echo $ANDROID_HOME
28+
29+
# Make deployment script executable
30+
chmod +x deploy.sh
31+
```
32+
33+
### 2. Run Deployment Script
34+
```bash
35+
./deploy.sh
36+
```
37+
38+
**Or manually:**
39+
```bash
40+
# Clean previous builds
41+
./gradlew clean
42+
43+
# Build release APK
44+
./gradlew assembleRelease
45+
46+
# Build AAB for Play Store
47+
./gradlew bundleRelease
48+
```
49+
50+
### 3. Verify Build Outputs
51+
52+
**APK Location:**
53+
- `app/build/outputs/apk/release/app-release.apk`
54+
55+
**AAB Location:**
56+
- `app/build/outputs/bundle/release/app-release.aab`
57+
58+
**Verify:**
59+
- [ ] APK/AAB files exist
60+
- [ ] File sizes are reasonable
61+
- [ ] No build errors
62+
- [ ] No ProGuard warnings
63+
64+
## Testing (Before Deployment)
65+
66+
### Quick Smoke Test
67+
```bash
68+
# Install on connected device
69+
adb install app/build/outputs/apk/release/app-release.apk
70+
71+
# Or use Android Studio to run
72+
```
73+
74+
### Manual Test Checklist
75+
76+
**Critical Paths:**
77+
- [ ] Open app → Navigate to Explorer3
78+
- [ ] Search for wallet transaction → Verify navigation to TransactionInfoFragment
79+
- [ ] Search for external transaction → Verify opens explorer URL
80+
- [ ] Search for address → Verify opens explorer URL
81+
- [ ] Search for token → Verify navigation to CoinFragment
82+
- [ ] Search for block → Verify opens explorer URL
83+
84+
**Edge Cases:**
85+
- [ ] Empty search query
86+
- [ ] Invalid input
87+
- [ ] Network offline
88+
- [ ] Rapid query changes
89+
90+
**UI/UX:**
91+
- [ ] Search bar displays correctly
92+
- [ ] Results grouped properly
93+
- [ ] Icons display correctly
94+
- [ ] Loading states work
95+
- [ ] Error states display
96+
97+
## Deployment Options
98+
99+
### Option 1: Firebase App Distribution (Recommended for Beta)
100+
101+
```bash
102+
# Install Firebase CLI if not installed
103+
npm install -g firebase-tools
104+
105+
# Login to Firebase
106+
firebase login
107+
108+
# Distribute to testers
109+
firebase appdistribution:distribute app/build/outputs/apk/release/app-release.apk \
110+
--app YOUR_APP_ID \
111+
--groups "beta-testers" \
112+
--release-notes "Explorer3: Unified search and block explorer feature"
113+
```
114+
115+
### Option 2: Google Play Console Internal Testing
116+
117+
1. **Upload AAB:**
118+
- Go to Play Console → Your App → Testing → Internal testing
119+
- Create new release
120+
- Upload `app-release.aab`
121+
- Add release notes
122+
- Review and rollout
123+
124+
2. **Add Testers:**
125+
- Add internal testers
126+
- Share opt-in URL
127+
128+
### Option 3: Direct APK Installation
129+
130+
```bash
131+
# For internal testing only
132+
adb install app/build/outputs/apk/release/app-release.apk
133+
```
134+
135+
## Staged Rollout Plan
136+
137+
### Phase 1: Internal Testing (Days 1-3)
138+
- **Target:** Internal team + QA
139+
- **Users:** 10-20 people
140+
- **Goal:** Verify core functionality
141+
- **Success Criteria:** No critical bugs
142+
143+
### Phase 2: Beta Testing (Days 4-7)
144+
- **Target:** Beta testers
145+
- **Users:** 100-500 people
146+
- **Goal:** Find edge cases and UX issues
147+
- **Success Criteria:** < 1% crash rate
148+
149+
### Phase 3: Staged Production (Days 8+)
150+
- **Week 1:** 5% rollout
151+
- **Week 2:** 25% rollout (if stable)
152+
- **Week 3:** 50% rollout (if stable)
153+
- **Week 4:** 100% rollout (if stable)
154+
155+
## Monitoring Setup
156+
157+
### Firebase Crashlytics
158+
- [ ] Verify Crashlytics is enabled
159+
- [ ] Set up alerts for critical crashes
160+
- [ ] Monitor Explorer3-specific crashes
161+
162+
### Firebase Analytics
163+
- [ ] Verify Analytics is enabled
164+
- [ ] Track Explorer3 screen views
165+
- [ ] Track search queries (anonymized)
166+
- [ ] Track navigation events
167+
168+
### Key Metrics to Monitor
169+
170+
**First 24 Hours:**
171+
- Crash-free rate (target: > 99%)
172+
- Search query volume
173+
- Navigation success rate
174+
- Error rate
175+
176+
**First Week:**
177+
- User engagement with Explorer3
178+
- Most searched queries
179+
- Navigation patterns
180+
- Performance metrics
181+
182+
## Rollback Procedure
183+
184+
### If Critical Issues Found:
185+
186+
1. **Immediate Actions:**
187+
```bash
188+
# Pause rollout in Play Console
189+
# Or disable feature flag if implemented
190+
```
191+
192+
2. **Communication:**
193+
- Notify team
194+
- Document issue
195+
- Create hotfix branch
196+
197+
3. **Fix & Redeploy:**
198+
```bash
199+
# Create hotfix branch
200+
git checkout -b hotfix/explorer3-[issue-name]
201+
202+
# Fix issue
203+
# Test thoroughly
204+
# Build and deploy patch version
205+
```
206+
207+
## Post-Deployment
208+
209+
### Day 1 Checklist
210+
- [ ] Monitor crash reports
211+
- [ ] Check analytics dashboard
212+
- [ ] Review user feedback
213+
- [ ] Check performance metrics
214+
- [ ] Verify no regressions
215+
216+
### Week 1 Checklist
217+
- [ ] Analyze usage patterns
218+
- [ ] Review search query trends
219+
- [ ] Check navigation success rates
220+
- [ ] Gather user feedback
221+
- [ ] Plan improvements
222+
223+
### Success Criteria
224+
225+
**Deployment Successful If:**
226+
- ✅ Crash-free rate > 99%
227+
- ✅ No critical bugs reported
228+
- ✅ Navigation flows work correctly
229+
- ✅ Performance is acceptable
230+
- ✅ User feedback is positive
231+
232+
## Support Resources
233+
234+
- **Documentation:** See `EXPLORER3_*` markdown files
235+
- **Build Script:** `deploy.sh`
236+
- **Test Guide:** `EXPLORER3_TEST_DEPLOY.md`
237+
- **Review:** `EXPLORER3_REVIEW.md`
238+
239+
## Emergency Contacts
240+
241+
- **Team Lead:** [To be filled]
242+
- **QA Lead:** [To be filled]
243+
- **DevOps:** [To be filled]
244+
245+
---
246+
247+
**Status:** ✅ Ready for Deployment
248+
**Risk Level:** 🟢 Low
249+
**Confidence:** High
250+
251+
**Last Updated:** [Current Date]
252+
**Deployed By:** [Your Name]

deploy.sh

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
#!/bin/bash
2+
3+
# Explorer3 Deployment Script
4+
# This script builds and prepares the Explorer3 feature for deployment
5+
6+
set -e # Exit on error
7+
8+
echo "🚀 Explorer3 Deployment Script"
9+
echo "================================"
10+
echo ""
11+
12+
# Colors for output
13+
GREEN='\033[0;32m'
14+
YELLOW='\033[1;33m'
15+
RED='\033[0;31m'
16+
NC='\033[0m' # No Color
17+
18+
# Check prerequisites
19+
echo "📋 Checking prerequisites..."
20+
21+
# Check Java
22+
if ! command -v java &> /dev/null; then
23+
echo -e "${RED}❌ Java not found. Please install Java 17+${NC}"
24+
exit 1
25+
fi
26+
JAVA_VERSION=$(java -version 2>&1 | head -n 1)
27+
echo -e "${GREEN}✅ Java found: $JAVA_VERSION${NC}"
28+
29+
# Check Android SDK
30+
if [ -z "$ANDROID_HOME" ]; then
31+
echo -e "${YELLOW}⚠️ ANDROID_HOME not set. Build may fail.${NC}"
32+
else
33+
echo -e "${GREEN}✅ ANDROID_HOME: $ANDROID_HOME${NC}"
34+
fi
35+
36+
# Check Gradle wrapper
37+
if [ ! -f "./gradlew" ]; then
38+
echo -e "${RED}❌ Gradle wrapper not found${NC}"
39+
exit 1
40+
fi
41+
echo -e "${GREEN}✅ Gradle wrapper found${NC}"
42+
43+
echo ""
44+
echo "🧹 Cleaning previous builds..."
45+
./gradlew clean
46+
47+
echo ""
48+
echo "🔍 Running lint checks..."
49+
./gradlew lint || echo -e "${YELLOW}⚠️ Lint warnings found (non-blocking)${NC}"
50+
51+
echo ""
52+
echo "🏗️ Building release APK..."
53+
./gradlew assembleRelease
54+
55+
if [ $? -eq 0 ]; then
56+
APK_PATH="app/build/outputs/apk/release/app-release.apk"
57+
if [ -f "$APK_PATH" ]; then
58+
APK_SIZE=$(du -h "$APK_PATH" | cut -f1)
59+
echo ""
60+
echo -e "${GREEN}✅ Build successful!${NC}"
61+
echo "📦 APK Location: $APK_PATH"
62+
echo "📊 APK Size: $APK_SIZE"
63+
echo ""
64+
echo "🎯 Next steps:"
65+
echo " 1. Install APK on test device: adb install $APK_PATH"
66+
echo " 2. Run manual tests (see EXPLORER3_TEST_DEPLOY.md)"
67+
echo " 3. Upload to Firebase App Distribution or Play Console"
68+
else
69+
echo -e "${RED}❌ APK not found at expected location${NC}"
70+
exit 1
71+
fi
72+
else
73+
echo -e "${RED}❌ Build failed${NC}"
74+
exit 1
75+
fi
76+
77+
echo ""
78+
echo "🏗️ Building Android App Bundle (AAB) for Play Store..."
79+
./gradlew bundleRelease
80+
81+
if [ $? -eq 0 ]; then
82+
AAB_PATH="app/build/outputs/bundle/release/app-release.aab"
83+
if [ -f "$AAB_PATH" ]; then
84+
AAB_SIZE=$(du -h "$AAB_PATH" | cut -f1)
85+
echo ""
86+
echo -e "${GREEN}✅ AAB build successful!${NC}"
87+
echo "📦 AAB Location: $AAB_PATH"
88+
echo "📊 AAB Size: $AAB_SIZE"
89+
echo ""
90+
echo "🎯 Ready for Play Store upload"
91+
else
92+
echo -e "${YELLOW}⚠️ AAB not found at expected location${NC}"
93+
fi
94+
fi
95+
96+
echo ""
97+
echo "✅ Deployment preparation complete!"
98+
echo ""
99+
echo "📚 See EXPLORER3_TEST_DEPLOY.md for testing procedures"
100+
echo "📚 See EXPLORER3_DEPLOYMENT_SUMMARY.md for deployment checklist"

0 commit comments

Comments
 (0)