ci: 工作流修正 #11
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build Release | |
on: | |
push: | |
tags: | |
- "v*" | |
workflow_dispatch: | |
# 添加权限配置 | |
permissions: | |
contents: write | |
jobs: | |
build: | |
runs-on: windows-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
# 设置 Java 环境 | |
- name: Set up JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'temurin' | |
java-version: '21' | |
# 设置 Android SDK | |
- name: Set up Android SDK | |
uses: android-actions/setup-android@v3 | |
# 下载替换 android.jar | |
- name: Download android.jar | |
run: | | |
mkdir -p $ANDROID_HOME/platforms/android-34 | |
curl -L https://raw.githubusercontent.com/Reginer/aosp-android-jar/refs/heads/main/android-34/android.jar -o $ANDROID_HOME/platforms/android-34/android.jar | |
shell: bash | |
# 构建 Android APK | |
- name: Build Android APK | |
run: | | |
gradle wrapper | |
chmod +x ./gradlew | |
./gradlew assembleDebug | |
shell: bash | |
# 设置 Go 环境 | |
- name: Set up Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: '1.23' | |
# 设置 Node.js 环境 | |
- name: Set up Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '21' | |
# 安装 Wails | |
- name: Install Wails | |
run: go install github.com/wailsapp/wails/v2/cmd/wails@latest | |
# 构建 Wails 应用 | |
- name: Build Wails App | |
run: | | |
cd nrfr-client/frontend | |
npm install | |
cd .. | |
wails build | |
shell: bash | |
# 下载最新的 Shizuku APK | |
- name: Download Shizuku APK | |
run: | | |
mkdir -p nrfr-client/build/bin/resources | |
curl -L $(curl -s https://api.github.com/repos/RikkaApps/Shizuku/releases/latest | grep "browser_download_url.*apk" | cut -d '"' -f 4) -o nrfr-client/build/bin/resources/shizuku.apk | |
shell: bash | |
# 复制 Android APK | |
- name: Copy Android APK | |
run: | | |
cp app/build/outputs/apk/debug/app-debug.apk nrfr-client/build/bin/resources/nrfr.apk | |
shell: bash | |
# 获取版本号和提交信息 | |
- name: Get Version Info | |
id: version | |
run: | | |
VERSION=${GITHUB_REF#refs/tags/} | |
echo "version=${VERSION}" >> $GITHUB_OUTPUT | |
if git rev-list --tags --max-count=1 > /dev/null 2>&1; then | |
LAST_TAG=$(git describe --tags --abbrev=0 HEAD^ 2>/dev/null || git rev-list --max-parents=0 HEAD) | |
CHANGELOG=$( | |
echo "## 功能改进" | |
git log --pretty=format:"- %h %s (%an)" $LAST_TAG..HEAD --grep="^feat" | grep -v "^-.*ci:" | |
echo "## 问题修复" | |
git log --pretty=format:"- %h %s (%an)" $LAST_TAG..HEAD --grep="^fix" | grep -v "^-.*ci:" | |
echo "## 其他更新" | |
git log --pretty=format:"- %h %s (%an)" $LAST_TAG..HEAD | grep -v "^-.*(feat|fix|ci):" | |
) | |
else | |
CHANGELOG=$( | |
echo "## 首次发布" | |
git log --pretty=format:"- %h %s (%an)" | grep -v "^-.*ci:" | |
) | |
fi | |
echo "changelog<<EOF" >> $GITHUB_OUTPUT | |
echo "$CHANGELOG" | |
echo "EOF" >> $GITHUB_OUTPUT | |
shell: bash | |
# 打包发布文件 | |
- name: Create Release Archive | |
run: | | |
cd nrfr-client/build/bin | |
7z a "../../nrfr-${{ steps.version.outputs.version }}-release.zip" ./* | |
shell: bash | |
# 创建 Release | |
- name: Create Release | |
uses: softprops/action-gh-release@v1 | |
if: startsWith(github.ref, 'refs/tags/') | |
with: | |
files: "nrfr-client/nrfr-${{ steps.version.outputs.version }}-release.zip" | |
body: | | |
Nrfr ${{ steps.version.outputs.version }} | |
更新内容: | |
${{ steps.version.outputs.changelog }} | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |