Rebrand the entire application from "胡萝卜社区" (Carrot BBS) to "威友" (WithYou), including:
Some checks failed
Frontend CI / build-and-push-web (push) Failing after 2m51s
Frontend CI / ota-android (push) Successful in 11m16s
Frontend CI / build-android-apk (push) Failing after 12m54s

- Update app name, package name (skin.carrot.bbs → cn.qczlit.withyou), and bundle identifier
- Update API endpoints (bbs.littlelan.cn → withyou.littlelan.cn)
- Update URL scheme (carrotbbs:// → withyou://)
- Rename database from carrot_bbs to with_you
- Update CI/CD pipeline image names and artifact naming
- Add Android signing configuration for release builds
- Update all UI text and comments throughout the codebase
- Refactor registerStore to use in-memory state instead of AsyncStorage persistence
- Improve WebRTC track handling and call stream management
- Add metro platform resolution for native platform support

BREAKING app package, database, and URLs are no longer valid
This commit is contained in:
lafay
2026-04-22 16:54:51 +08:00
parent 1c3797ea7d
commit 437dab3b6e
47 changed files with 221 additions and 235 deletions

View File

@@ -1,4 +1,4 @@
name: Frontend CI
name: Frontend CI
on:
push:
@@ -20,7 +20,7 @@ on:
env:
REGISTRY: code.littlelan.cn
IMAGE_NAME: carrot_bbs/frontend-web
IMAGE_NAME: with_you/frontend-web
OTA_PLATFORM: android
OTA_PUBLISH_URL: https://updates.littlelan.cn/admin/publish
OTA_MANIFEST_URL: https://updates.littlelan.cn/api/manifest
@@ -150,6 +150,33 @@ jobs:
- name: Generate Android native project
run: npx expo prebuild --platform android
- name: Decode Android signing keystore
run: |
echo "${{ secrets.ANDROID_KEYSTORE_BASE64 }}" | base64 -d > android/app/withyou-release-key.keystore
- name: Patch app/build.gradle with signing config
run: |
cd android/app
python3 -c "
import re
with open('build.gradle', 'r') as f:
content = f.read()
release_signing = '''
signingConfigs {
release {
storeFile file(WITHYOU_UPLOAD_STORE_FILE)
storePassword WITHYOU_UPLOAD_STORE_PASSWORD
keyAlias WITHYOU_UPLOAD_KEY_ALIAS
keyPassword WITHYOU_UPLOAD_KEY_PASSWORD
}
}
'''
content = content.replace('signingConfigs {}', release_signing)
content = content.replace('signingConfig signingConfigs.debug', 'signingConfig signingConfigs.release')
with open('build.gradle', 'w') as f:
f.write(content)
"
- name: Configure Gradle with Aliyun Maven mirror
run: |
cd android
@@ -198,7 +225,7 @@ jobs:
}
expoAutolinking.useExpoModules()
rootProject.name = '萝卜社区'
rootProject.name = '威友'
expoAutolinking.useExpoVersionCatalog()
@@ -260,6 +287,16 @@ jobs:
expo.useLegacyPackaging=false
PROPS_EOF
- name: Configure Gradle signing properties
run: |
cd android
cat >> gradle.properties << SIGNING_PROPS
WITHYOU_UPLOAD_STORE_FILE=withyou-release-key.keystore
WITHYOU_UPLOAD_STORE_PASSWORD=${{ secrets.ANDROID_KEYSTORE_PASSWORD }}
WITHYOU_UPLOAD_KEY_ALIAS=withyou-key
WITHYOU_UPLOAD_KEY_PASSWORD=${{ secrets.ANDROID_KEY_PASSWORD }}
SIGNING_PROPS
- name: Build Android release APK (arm64 only)
run: |
cd android
@@ -269,7 +306,7 @@ jobs:
- name: Upload APK artifact
uses: actions/upload-artifact@v3
with:
name: carrot-bbs-android-release-apk
name: withyou-android-release-apk
path: android/app/build/outputs/apk/release/app-release.apk
- name: Resolve runtime version
@@ -350,8 +387,8 @@ jobs:
labels: ${{ steps.meta.outputs.labels }}
platforms: linux/amd64
provenance: false
cache-from: type=registry,ref=code.littlelan.cn/carrot_bbs/frontend-web:buildcache
cache-to: type=registry,ref=code.littlelan.cn/carrot_bbs/frontend-web:buildcache,mode=max
cache-from: type=registry,ref=code.littlelan.cn/with_you/frontend-web:buildcache
cache-to: type=registry,ref=code.littlelan.cn/with_you/frontend-web:buildcache,mode=max
- name: Show image tags
run: |