From 497aefb903ddcaf1dfd35b47b08a4f00e03dce9a Mon Sep 17 00:00:00 2001 From: zxyszx <299979470+zxyszx@users.noreply.github.com> Date: Tue, 4 Aug 2026 00:13:57 +0800 Subject: [PATCH] fix: finalize v1.2.5 release notes --- .github/release-notes/v1.2.5.md | 33 +++++++++++++++++++++++++ .github/workflows/docker.yml | 44 ++++++++++++++++++--------------- VERSION | 2 +- 3 files changed, 58 insertions(+), 21 deletions(-) create mode 100644 .github/release-notes/v1.2.5.md diff --git a/.github/release-notes/v1.2.5.md b/.github/release-notes/v1.2.5.md new file mode 100644 index 0000000..58ca905 --- /dev/null +++ b/.github/release-notes/v1.2.5.md @@ -0,0 +1,33 @@ +## 本次更新 + +### 一键部署与运维 + +- 新增统一管理菜单,支持一键安装、更新、修复、查看状态、重启服务、查看日志、配置 SSL、版本回滚和卸载。 +- 空白服务器进入安装流程,检测到已有安装时可直接更新或修复,减少重复操作。 +- 重新安装前自动完整备份旧安装目录,避免误覆盖现有配置和数据。 +- 更新前自动备份 SQLite 数据库,更新失败时支持回滚。 +- 完善交互式安装引导,可选择防火墙策略,并依次设置邮件服务器域名、管理员用户名、管理员密码以及 Nginx 和 SSL。 +- 管理员用户名默认使用 `admin`;管理员密码可回车自动生成 12 位随机密码,也可输入不少于 6 位的自定义密码。 + +### 邮箱与账号体验 + +- 修复管理员登录名 `admin` 被误显示为邮箱地址的问题。 +- 邮箱列表加载时显示“加载邮箱...”,账号尚未创建邮箱时显示“未创建邮箱”。 +- 统一空邮箱状态下的操作按钮为“前往邮箱管理”。 +- 管理员及具备邮箱管理权限的用户跳转至后台邮箱管理,普通用户跳转至个人中心的邮箱申请页面。 + +### 自助申请邮箱 + +- 在未创建邮箱页面明确标注开关位置:`后台管理 -> 系统设置 -> 邮件 -> 账号自助申请邮箱`。 +- 区分“未开启自助申请”和“未选择开放域名”两种状态,并给出对应处理提示。 +- 管理员可通过“前往设置”直接进入后台邮件设置页。 +- 普通用户无法自行申请时会提示联系管理员处理。 +- 修复通过链接进入系统设置时未自动切换到“邮件”设置标签的问题。 +- 补充简体中文、繁体中文和英文界面文案。 + +### 兼容与验证 + +- 更新和修复流程保留现有端口、反向代理、邮件数据、证书及数据库配置。 +- 已通过 ShellCheck、安装脚本测试、Go 后端测试和前端生产构建检查。 + +**完整更新日志**:[v1.2.4...v1.2.5](https://github.com/zxyszx/NewSzxcn-Email/compare/v1.2.4...v1.2.5) diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index dc6eb66..b27a38c 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -212,31 +212,35 @@ jobs: image_base="${image_base,,}" current_commit="$(git rev-list -n 1 "${tag}")" previous_tag="$(git describe --tags --abbrev=0 "${current_commit}^" 2>/dev/null || true)" - generate_args=(-f "tag_name=${tag}") - if [[ -n "${previous_tag}" ]]; then - generate_args+=(-f "previous_tag_name=${previous_tag}") - fi + version_notes=".github/release-notes/${tag}.md" - if ! gh api -X POST "repos/${repo}/releases/generate-notes" "${generate_args[@]}" --jq '.body' > generated-release-notes.md; then - { - echo "GitHub 自动生成更新日志失败,已回退到提交列表。" - echo - if [[ -n "${previous_tag}" ]]; then - git log --reverse --pretty=format:"- %s ([%h](${repo_url}/commit/%H))" "${previous_tag}..${tag}" + if [[ -f "${version_notes}" ]]; then + cp "${version_notes}" generated-release-notes.md + else + generate_args=(-f "tag_name=${tag}") + if [[ -n "${previous_tag}" ]]; then + generate_args+=(-f "previous_tag_name=${previous_tag}") + fi + + if ! gh api -X POST "repos/${repo}/releases/generate-notes" "${generate_args[@]}" --jq '.body' > generated-release-notes.md; then + { + echo "GitHub 自动生成更新日志失败,已回退到提交列表。" echo - echo - echo "完整更新日志: [${previous_tag}...${tag}](${repo_url}/compare/${previous_tag}...${tag})" - else - echo "- 首个公开版本。" - echo - echo "当前提交: [${GITHUB_SHA:0:7}](${repo_url}/commit/${GITHUB_SHA})" - fi - } > generated-release-notes.md + if [[ -n "${previous_tag}" ]]; then + git log --reverse --pretty=format:"- %s ([%h](${repo_url}/commit/%H))" "${previous_tag}..${tag}" + echo + echo + echo "完整更新日志: [${previous_tag}...${tag}](${repo_url}/compare/${previous_tag}...${tag})" + else + echo "- 首个公开版本。" + echo + echo "当前提交: [${GITHUB_SHA:0:7}](${repo_url}/commit/${GITHUB_SHA})" + fi + } > generated-release-notes.md + fi fi cat > release-notes.md <