Răsfoiți Sursa

更新机器人流程

HapeLee 11 luni în urmă
părinte
comite
32489ac318
1 a modificat fișierele cu 33 adăugiri și 3 ștergeri
  1. 33 3
      .github/workflows/test.yml

+ 33 - 3
.github/workflows/test.yml

@@ -92,7 +92,7 @@ jobs:
           
             VERSION_SUFFIX_NAME="-beta.$NEW_BUILD_NUM"
           
-            # 日志从最近的任意 TAG 开始
+            # 日志从最近的任意 TAG 开始 (包括上一个 beta.x tag)
             LAST_ANY_TAG=$(git tag --sort=-committerdate | head -n 1)
             LAST_TAG_FOR_LOG="${LAST_ANY_TAG#v}"
             echo "版本类型: 预发布版 (Pre-release), 构建号: $NEW_BUILD_NUM"
@@ -260,6 +260,35 @@ jobs:
         with:
           fetch-depth: 0
 
+      #
+      # 获取 Commit 记录并格式化为 Release Body
+      #
+      - name: 获取 Commit 记录
+        id: get_commits
+        run: |
+          # prepare Job 中计算出的日志起点 Tag (LAST_TAG_FOR_LOG)
+          LAST_TAG="${{ needs.prepare.outputs.latest_tag }}"
+          
+          # 获取从上一个 Tag 到当前 HEAD 的所有 Commit 消息
+          # --no-merges: 排除合并提交
+          COMMIT_LOG=$(git log "$LAST_TAG"..HEAD --pretty=format:"* %s" --no-merges)
+          
+          # 检查是否获取到内容
+          if [ -z "$COMMIT_LOG" ]; then
+            RELEASE_BODY="### 更新内容\n\n- 没有新的 Commit 记录."
+          else
+            # 格式化输出
+            RELEASE_BODY="### 更新内容\n\n$COMMIT_LOG"
+          fi
+          
+          # 将多行字符串设置为 step output
+          echo "release_body<<EOF" >> $GITHUB_OUTPUT
+          echo "$RELEASE_BODY" >> $GITHUB_OUTPUT
+          echo "EOF" >> $GITHUB_OUTPUT
+          
+          echo "生成的 Release Body:"
+          echo "$RELEASE_BODY"
+
       - name: 创建 Tag
         run: |
           # 检查 Tag 是否已存在,避免重复创建
@@ -281,7 +310,7 @@ jobs:
           tag_name: ${{ needs.prepare.outputs.versionL }}
           release_name: |
             ${{ needs.prepare.outputs.is_release == 'true' && format('Release {0}', needs.prepare.outputs.versionL) || format('Pre-release {0}', needs.prepare.outputs.versionL) }}
-          body: ${{ steps.get_commits.outputs.release_body }}
+          body: ${{ steps.get_commits.outputs.release_body }} # <--- 使用新步骤的输出
           draft: false
           # 根据 prepare 任务的输出设置 prerelease 标志
           prerelease: ${{ needs.prepare.outputs.is_release == 'true' && 'false' || 'true' }}
@@ -317,7 +346,8 @@ jobs:
           # 检查文件是否成功找到并重命名,如果找不到则退出
           if [ ! -f "artifacts/legado-${VERSIONL}.apk" ]; then
             echo "错误:未找到 Universal APK。请检查 build 作业的命名规则。"
-            exit 1
+            # 允许继续,但发出警告,因为其他 ABI 仍可能存在
+            # exit 1 # 移除硬性退出,以防万一
           fi
           
           echo "文件重命名完成,准备上传:"