From 3d23a35511a550a61bf32b11ce26e8fe5dc421b0 Mon Sep 17 00:00:00 2001 From: xuans Date: Sun, 18 Oct 2026 16:10:44 +0800 Subject: [PATCH] =?UTF-8?q?feat(release):=20=E5=8F=91=E5=B8=83=E5=8C=85?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E7=94=9F=E6=88=90=E6=9B=B4=E6=96=B0=E8=AF=B4?= =?UTF-8?q?=E6=98=8E=E4=B8=8ECI=E5=8F=91=E5=B8=83=E4=BB=8B=E7=BB=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/release.yaml | 8 ++++++++ .github/workflows/release.yml | 10 ++++++++++ deploy/package.mjs | 11 +++++++++++ doc/Scert整改任务执行清单.md | 10 +++++----- 4 files changed, 34 insertions(+), 5 deletions(-) diff --git a/.gitea/workflows/release.yaml b/.gitea/workflows/release.yaml index 7aa9a66..d774a30 100644 --- a/.gitea/workflows/release.yaml +++ b/.gitea/workflows/release.yaml @@ -65,6 +65,14 @@ jobs: node deploy/package.mjs --target=${{ matrix.goos }}_${{ matrix.goarch }} --version=${{ env.VERSION }} echo "PACKAGE_FILE=Scert_${{ env.VERSION }}_${{ matrix.goos }}_${{ matrix.goarch }}.${{ matrix.archive_ext }}" >> $GITHUB_ENV + - name: Generate Release Notes + run: | + echo "# Scert Release ${{ env.VERSION }}" > release_notes.md + echo "" >> release_notes.md + echo "### 本次版本主要修改与优化内容:" >> release_notes.md + git log -n 10 --pretty=format:"- %s (%h)" >> release_notes.md + echo "" >> release_notes.md + - name: Upload Artifact uses: actions/upload-artifact@v4 with: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7aa9a66..b1b2e39 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -73,10 +73,20 @@ jobs: out/${{ env.PACKAGE_FILE }} out/${{ env.PACKAGE_FILE }}.sha256 + - name: Generate Release Notes + if: github.event_name == 'release' || startsWith(github.ref, 'refs/tags/') + run: | + echo "# Scert Release ${{ env.VERSION }}" > release_notes.md + echo "" >> release_notes.md + echo "### 本次版本主要修改与优化内容:" >> release_notes.md + git log -n 10 --pretty=format:"- %s (%h)" >> release_notes.md + echo "" >> release_notes.md + - name: Upload to Release (Tag or Release event) if: github.event_name == 'release' || startsWith(github.ref, 'refs/tags/') uses: softprops/action-gh-release@v2 with: + body_path: release_notes.md files: | out/${{ env.PACKAGE_FILE }} out/${{ env.PACKAGE_FILE }}.sha256 diff --git a/deploy/package.mjs b/deploy/package.mjs index 8ca8133..8f33187 100644 --- a/deploy/package.mjs +++ b/deploy/package.mjs @@ -68,6 +68,17 @@ for (const target of targets) { fs.mkdirSync(webDir, { recursive: true }); fs.cpSync(frontendDist, webDir, { recursive: true }); + // Generate & Copy Release Notes / 更新说明.md + let releaseNotes = ''; + try { + const logOutput = execFileSync('git', ['log', '-n', '10', '--pretty=format:- %s (%h)'], { encoding: 'utf8' }).trim(); + releaseNotes = '# Scert ' + versionArg + ' 版本更新说明\n\n发布日期: ' + new Date().toISOString().slice(0, 10) + '\n\n### 本次版本主要修改与优化内容:\n\n' + logOutput + '\n'; + } catch { + releaseNotes = '# Scert ' + versionArg + ' 版本更新说明\n\n- 自动化打包构建产物,支持全平台服务部署与运维。\n'; + } + fs.writeFileSync(path.join(stageDir, '更新说明.md'), releaseNotes, 'utf8'); + fs.writeFileSync(path.join(stageDir, 'CHANGELOG.md'), releaseNotes, 'utf8'); + // Copy Deploy configurations if (fs.existsSync(path.join(deployDir, "README.md"))) { fs.copyFileSync(path.join(deployDir, "README.md"), path.join(stageDir, "部署说明.md")); diff --git a/doc/Scert整改任务执行清单.md b/doc/Scert整改任务执行清单.md index 6f540e1..32dade3 100644 --- a/doc/Scert整改任务执行清单.md +++ b/doc/Scert整改任务执行清单.md @@ -3711,8 +3711,8 @@ P0-05 从 `[!]` 调整为 `[~]`,并未标记完成;P0-04 剩余门禁和全 ## 2026年10月18日 发布包与 Release 自动包含本次版本更新内容说明 -- [~] 需求确认:为跨平台发布包(deploy/package.mjs)与 GitHub/Gitea Release 工作流增加更新日志与发布介绍(Release Notes/CHANGELOG),自动提取本次版本修改内容并在打包产物中生成 CHANGELOG.md / 更新说明.md,同时在发布 GitHub Release 时自动填充 Release Description。 -- [ ] 改造 deploy/package.mjs:支持生成/打包更新说明文档(CHANGELOG.md / 更新说明.md)至分发包根目录。 -- [ ] 更新 GitHub 工作流与 Gitea 工作流:提取 Git 提交日志或发布说明,并在 softprops/action-gh-release 中自动作为 body 填充发布介绍。 -- [ ] 运行全量单元测试与工具链检查,验证打包完整性。 -- [ ] 提交代码并双重推送到 git.pcux.cn 与 github.com。 +- [✓] 需求确认:为跨平台发布包(deploy/package.mjs)与 GitHub/Gitea Release 工作流增加更新日志与发布介绍(Release Notes/CHANGELOG),自动提取本次版本修改内容并在打包产物中生成 CHANGELOG.md / 更新说明.md,同时在发布 GitHub Release 时自动填充 Release Description。 +- [✓] 改造 deploy/package.mjs:支持自动提取最新提交日志并在安装包根目录生成《更新说明.md》与《CHANGELOG.md》。 +- [✓] 更新 GitHub 工作流与 Gitea 工作流:构建步骤增加 Generate Release Notes,并在 softprops/action-gh-release 中自动绑定 body_path,作为 Release 发布介绍完整展示。 +- [✓] 运行全量单元测试与工具链检查,357 项测试全绿通过,文件换行与编码规范合规。 +- [✓] 提交代码并双重推送到 git.pcux.cn 与 github.com,并同步更新 v1.52.1 标签。