Skip to content

fix: use printf for keystore decode, add verification step #8

fix: use printf for keystore decode, add verification step

fix: use printf for keystore decode, add verification step #8

Workflow file for this run

name: Release
on:
push:
tags:
- 'v*' # 推送 v1.0.0, v1.2.3 等 tag 时触发
jobs:
release:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Extract version from tag
id: version
run: echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_OUTPUT
- name: Decode debug keystore
run: |
mkdir -p $HOME/.android
printf '%s' "${{ secrets.DEBUG_KEYSTORE }}" | base64 -d > $HOME/.android/debug.keystore
- name: Verify debug keystore
run: |
keytool -list -keystore $HOME/.android/debug.keystore -storepass android -alias androiddebugkey 2>&1
echo "Keystore size: $(wc -c < $HOME/.android/debug.keystore) bytes"
- name: Build Release APK
run: ./gradlew assembleRelease
- name: Rename APK
run: |
APK=$(find app/build/outputs/apk/release -name '*.apk' | head -1)
mv "$APK" app/build/outputs/apk/release/EpubSpoon-${{ steps.version.outputs.VERSION }}.apk
- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
name: EpubSpoon v${{ steps.version.outputs.VERSION }}
body: |
## 🥄 EpubSpoon v${{ steps.version.outputs.VERSION }}
> 导入 EPUB 英文书 → 悬浮窗点一下复制一段 → 去 Gemini 粘贴看分析,像刷短视频一样读英文书。
### ✨ 功能
- 📖 导入 EPUB 英文书,智能分段
- 🫧 悬浮窗浮在任何 app 上方,显示阅读进度
- 👆 点击悬浮窗:复制当前段 + 震动反馈 + 自动前进
- 📋 内置优化母指令:逐句翻译 + 词汇注释 + 💡文化背景解析
- 🔍 序号跳转 / 关键词搜索定位段落
- 💾 阅读进度自动保存
### 📲 安装说明
1. 下载下方 **EpubSpoon-${{ steps.version.outputs.VERSION }}.apk**
2. 在 Android 设备上安装(需允许「安装未知来源应用」)
3. 打开 EpubSpoon → 导入 EPUB → 复制母指令给 Gemini → 启动悬浮窗 → 开始阅读
### 📋 系统要求
- Android 8.0 (API 26) 及以上
- 需授予:悬浮窗权限、通知权限
> 支持从旧版本直接覆盖安装更新。
files: |
app/build/outputs/apk/release/EpubSpoon-${{ steps.version.outputs.VERSION }}.apk
draft: false
prerelease: false