Skip to content

Update ci.yml

Update ci.yml #23

Workflow file for this run

name: Android CI
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
build:
runs-on: ubuntu-latest
env:
STORE_FILE_BASE64: ${{ secrets.STORE_FILE_BASE64 }}
STORE_PASSWORD: ${{ secrets.STORE_PASSWORD }}
KEY_ALIAS: ${{ secrets.KEY_ALIAS }}
KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
steps:
- uses: actions/checkout@v4
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'temurin'
- name: Validate Environment
run: |
# 安全检查环境变量
echo "STORE_FILE_BASE64 前10字符: ${STORE_FILE_BASE64:0:10}..."
echo "STORE_FILE_BASE64 长度: ${#STORE_FILE_BASE64}"
echo "STORE_PASSWORD 是否设置: $([ -z "$STORE_PASSWORD" ] && echo "NO" || echo "YES")"
echo "KEY_ALIAS 是否设置: $([ -z "$KEY_ALIAS" ] && echo "NO" || echo "YES")"
echo "KEY_PASSWORD 是否设置: $([ -z "$KEY_PASSWORD" ] && echo "NO" || echo "YES")"
# 验证Base64解码能力
if [ -n "$STORE_FILE_BASE64" ]; then
echo $STORE_FILE_BASE64 | base64 -d > /dev/null
if [ $? -eq 0 ]; then
echo "✓ STORE_FILE_BASE64 可正常解码"
else
echo "✗ STORE_FILE_BASE64 解码失败!"
exit 1
fi
fi
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Build with Gradle
run: |
./gradlew assembleDebug --stacktrace
# 仅在所有必需变量都存在时构建release
if [ -n "$STORE_FILE_BASE64" ] && \
[ -n "$STORE_PASSWORD" ] && \
[ -n "$KEY_ALIAS" ] && \
[ -n "$KEY_PASSWORD" ]; then
echo "所有签名变量已设置,开始构建Release..."
./gradlew assembleRelease --stacktrace
else
echo "缺少签名配置,跳过Release构建"
fi
- name: Upload Debug APK
uses: actions/upload-artifact@v4
with:
name: app-debug
path: app/build/outputs/apk/debug/app-debug.apk
retention-days: 30
- name: Upload Release APK
if: success() && env.STORE_FILE_BASE64 != ''
uses: actions/upload-artifact@v4
with:
name: app-release
path: app/build/outputs/apk/release/app-release.apk
retention-days: 30
- name: Clean up
run: |
# 清理可能的临时文件
rm -f temp_keystore_release.jks || true
echo "清理完成"