feat:发布脚本清理旧 apk

This commit is contained in:
amos
2025-12-26 15:14:50 +08:00
parent ca14ac9541
commit 84b31ddf45
2 changed files with 39 additions and 3 deletions

View File

@@ -13,11 +13,11 @@ android {
applicationId = "com.memory.app"
minSdk = 26
targetSdk = 35
versionCode = 22
versionName = "1.3.8"
versionCode = 23
versionName = "1.3.9"
buildConfigField("String", "API_BASE_URL", "\"https://x.amos.us.kg/api/\"")
buildConfigField("int", "VERSION_CODE", "22")
buildConfigField("int", "VERSION_CODE", "23")
}
signingConfigs {

View File

@@ -137,6 +137,39 @@ upload_to_r2() {
echo "${R2_PUBLIC_URL}/${remote_path}"
}
# 清理旧版本 APK只保留最新的 3 个
cleanup_old_apks() {
echo "🧹 清理旧版本 APK..."
# 列出所有 APK 文件,按时间倒序排列
local apk_list=$(AWS_ACCESS_KEY_ID=$R2_ACCESS_KEY_ID \
AWS_SECRET_ACCESS_KEY=$R2_ACCESS_KEY_SECRET \
aws s3 ls "s3://${R2_BUCKET_NAME}/releases/" \
--endpoint-url "https://${R2_ACCOUNT_ID}.r2.cloudflarestorage.com" \
| grep "memory-.*\.apk" \
| sort -r \
| awk '{print $4}')
# 跳过前 3 个(最新的),删除其余的
local count=0
for apk in $apk_list; do
count=$((count + 1))
if [ $count -gt 3 ]; then
echo " 删除: $apk"
AWS_ACCESS_KEY_ID=$R2_ACCESS_KEY_ID \
AWS_SECRET_ACCESS_KEY=$R2_ACCESS_KEY_SECRET \
aws s3 rm "s3://${R2_BUCKET_NAME}/releases/${apk}" \
--endpoint-url "https://${R2_ACCOUNT_ID}.r2.cloudflarestorage.com"
fi
done
if [ $count -le 3 ]; then
echo " 无需清理,当前共 ${count} 个版本"
else
echo "✅ 已清理 $((count - 3)) 个旧版本"
fi
}
# 更新服务器版本信息,返回 0 成功1 失败
update_server_version() {
local version_code=$1
@@ -249,6 +282,9 @@ if [ "$BUILD_APK" = true ]; then
# 上传 APK
upload_to_r2 $new_version
echo "✅ 上传完成: $download_url"
# 清理旧版本
cleanup_old_apks
echo ""
echo "🎉 APK 发布完成!"