feat(release): 发布包自动生成更新说明与CI发布介绍
Some checks failed
Some checks failed
This commit is contained in:
parent
a7d6eaae6f
commit
3d23a35511
@ -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:
|
||||
|
||||
10
.github/workflows/release.yml
vendored
10
.github/workflows/release.yml
vendored
@ -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
|
||||
|
||||
@ -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"));
|
||||
|
||||
@ -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 标签。
|
||||
|
||||
Loading…
Reference in New Issue
Block a user