Skip to content

ci: 工作流修正 #11

ci: 工作流修正

ci: 工作流修正 #11

Workflow file for this run

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 }}