Commit graph

18 commits

Author SHA1 Message Date
RavenHogwarts
f2fd8e44e0 ci: 添加构建制品证明生成功能
在发布工作流中添加构建制品证明生成步骤,以增强
安全性和可追溯性。

新增 id-token 和 attestations 权限以支持制品
证明的生成。使用 actions/attest-build-provenance
操作为主要输出文件(main.js、manifest.json 和
styles.css)生成证明,确保发布的制品的完整性
和来源可验证。
2026-05-13 15:11:31 +08:00
RavenHogwarts
09a76f0047 ci: 简化发布工作流程
移除了手动创建插件压缩包的步骤。现在直接上传
构建产物文件而不是打包成 zip 文件,简化了发布
流程并减少了不必要的中间步骤。
2026-05-13 15:11:31 +08:00
RavenHogWarts
2cc5d0961e
ci: 升级Node和pnpm版本 (#103)
升级Node.js最低版本从18.x到20.x,以获得更好的
性能和安全性支持。

迁移包管理器从npm/yarn到pnpm,并升级到版本10,
提高依赖安装速度和磁盘空间效率。

优化GitHub Actions工作流,添加pnpm缓存机制以
加快CI/CD流程,同时更新构建输出路径为dist目录。
2026-03-04 19:54:36 +08:00
RavenHogwarts
78f959cac4 chore: bump version to 2.0.0 2026-01-25 20:21:06 +08:00
RavenHogWarts
1b4412fb2d
ci: remove artifact upload and comment footer (#50)
移除 precheck 工作流中上传构建产物的步骤并简化评论内容。
主要改动包括删除 Upload build artifacts 步骤,去掉对
“Build method” 的说明,以及移除评论底部的自动更新行和分隔线。
这样做是因为预检阶段不再需要保存或展示构建产物,简化评论可以减少
噪音并避免暴露不必要的构建信息,同时让工作流更轻量化和易于维护。
2025-10-29 21:50:48 +08:00
RavenHogWarts
0994b73ca7
ci: 移除工作流中的 lint 检查和输出 (#49)
删除 precheck GitHub Actions 中的 lint 步骤及相关输出变量,精简预流程。
主要变更:
- 移除 yarn lint行与结果记录逻辑,减少 CI 运行时间并避免因格式化/风格引起的阻塞。
- 从报告和注释模板中删除 lint_check 的展示与占位,确保输出与实际步骤一致。
变更原因:
- 流程更侧重构建与产物校验,lint 检查可能由本地或专门的 CI 任务单独处理。
- 避免在此预检中重复失败导致阻塞,提高整体 CI 稳定性与速度。
2025-10-29 21:44:04 +08:00
RavenHogWarts
b65634080e
ci: update workflows and add precheck (#47)
更新 CI 工作流:将 setup-node 升级至 v4,并新增一个用于版本
更新前的全面预检工作流 precheck。主要变更包含:

- 将 .github/workflows/release.yml 中 actions/setup-node 从 v3
  升级到 v4,以获得最新的 Node.js 支持和修复。
- 新增 .github/workflows/precheck.yml,只有在 PR 被标记为
  version-bump 时触发,用于在合入版本变更前进行一系列检查:
  - checkout、Node.js 设置与依赖安装,确保环境一致。
  - 构建(build)与 lint 校验,保证代码质量与构建可用性。
  - 校验构建产物(main.js、manifest.json、styles.css)是否存在,
    防止发布缺失文件。
  - 校验 package.json 与 manifest.json 的版本一致性,避免
    版本不同步导致发布错误。
  - 在成功时上传构建产物供后续使用,并生成检查报告。

这样做的目的在于提前发现版本发布相关的问题,降低因发布
过程中文件缺失、版本不一致或构建失败导致的回滚成本,提
升发布流程的可靠性。
2025-10-29 21:36:43 +08:00
RavenHogWarts
29b544ee67
chore: 优化构建脚本 (#41)
* chore(release): 升级版本并在发布前安装依赖

更新 package.json 与 package-lock.json 中的包版本号,从
1.2.2 升级到 1.3.1,表明进行了一次新发布。为发布流程调整
release:pre 脚本,新增在构建、更新版本和生成变更日志后执行
npm i,确保在打包与发布前安装/同步依赖,避免发布缺少或
不一致的依赖导致的问题。

主要变更:
- 将项目版本从 1.2.2 提升到 1.3.1(package.json/package-lock.json)
- 在 release:pre 脚本中追加 npm i,保证发布前安装依赖

原因:
- 显式升级版本以发布新版本。
- 在发布脚本中加入依赖安装步骤,减少 CI/本地发布过程中
  因依赖未安装或锁文件不一致而产生的故障。

* feat: 优化脚本和配置读取

将 copy-to-vault.mjs 重构更健壮和可扩展的复制工具。主要改动包括:
- 调整模块导入顺序并以 quiet 模式加载 dotenv,避免在无 .env 时输出多余信息。
- 将项目根目录变量命名为 projectRoot,替代原来的 rootDir,提升可读性。
- 引入 fileConfig 数组集中管理要复制的文件及来源路径,便于以后扩展更多文件。
- 改为从 fileConfig 中查找并读取 manifest.json,基于 manifest.id 计算目标插件目录。
- 将目标插件目录命名为 targetPluginDir 并确保递归创建;复制过程中对缺失源文件给出警告而非失败,
  并取消逐文件的冗余日志,最终只输出成功提示,错误时仍然终止进程。
- 规范化部分错误/提示信息文本(英文错误信息以便一致性)。

这些改动提高了脚本的可维护性、可扩展性和对异常情况的容错能力。

* ci: 删除 PR 构建工作流文件

移除 .githubflows/pr-build.yml 文件,删除整个 PR 构建流程。
该文件包含对 PR 来源、标签(safe-to-build)和/外部仓安全性
的检查、构建、打包与上传构件以及 PR 上留言的步骤。删除该文件是
因为不再需要通过仓库内的 CI 自动为 PR 生成构建产物,或该流程已被
迁移到其他系统/仓库中。主要目的是简化仓库配置并避免重复或过时的
自动化逻辑。
2025-10-29 20:16:16 +08:00
RavenHogWarts
2a07cb353d build: 1.2.3 2025-08-13 00:26:37 +08:00
RavenHogWarts
358da40a8d
ci: 更新贡献和发版流程 (#29)
* feat(ci): 添加 PR 专用构工作流并增加安全检查

新增 .github/workflows/pr-build.yml,提供 PR 提交时的专用构建流程,
并在工作流中加入严格的安全检查逻辑以防止来自外部仓库的任意构建。

主要变更:
- 新增 PR Build 工作流(name: PR Build),在 pull_request_target 触发
 (types: opened, synchronize, reopened, labeled)。
- 增加权限配置(contents/read, pull-requests/write, checks/write,
  statuses/write)并设置 PLUGIN_ID 环境变量。
- 添加 security-check 作业:
  - 判断事件类型并检测 PR 来源(内部仓库或外部仓库)。
  - 对 labeled 事件仅在加入 safe-to-build 标签时允许构建。
  - 输出两个标志:is-safe 和 should-build,控制后续是否构建。
- 添加 build 作业(依赖 security-check):
  - 仅在 should-build == 'true' 时运行。
  - 检出 PR 分支代码(ref 为 PR head sha),设置 Node.js,安装依赖并执行构建。
  - 打包构建产物为 zip 并上传为 artifact(保留 7 天)。
  - 在 PR 上发表评论,包含构建信息、触发原因及下载链接(根据事件类型区分
    labeled 与其他触发)。

变更原因:
- 避免直接对外部 PR 自动构建可能带来的安全风险,通过 safe-to-build
  标签和来源检测来显式授权构建。
- 为 PR 提供可下载的构建产物与构建通知,方便审查与测试。

* feat(ci):除自动生成 Changelog 的Hub Action 步骤删除 release workflow 中 "Generate Changelog 步骤,除针对

中两版 CHANGE 的提取、标题级别判断awk 提取逻以及安装
的拼接。这样做是因为该步骤过于复杂且在当前流程中不再需要,
减少 CI 配置复杂度并避免在发布流程中因 changelog 提取失败导致
构建中断。

* chore(scripts): 移除中文 changelog 脚本调用并同步脚本路径

- 从 package.json 中移除对 CHANGELOG-zh.md 的 conventional-changelog
  命令调用,合并只生成英文 CHANGELOG。
- 更新 changelog:u 与 changelog:all 脚本,去掉对中文选项脚本的依赖,
  避免在无中文文件或脚本时导致发布流程失败。
- 同步变更记录语言为简体中文格式(仅修改 CHANGELOG.md 内容为中文翻译),
  以便发布说明更适配中文用户阅读。

这样做可以简化发布脚本依赖,减少发布时因缺少中文文件或脚本
引发的错误,同时保证主要 changelog 正常生成。

* feat(release): 增强发布脚本的健壮性与交互选项

- scripts/release-tag.mjs:
  - 添加 safeExec 封装执行命令并提供重试/跳过逻辑,
    避免重复执行导致脚本中断。
  - 添加 hasUncommittedChanges、tagExists、remoteTagExists
    等辅助函数,用于在提交、打标签和推送前做检查。
  - 在无变更时跳过 commit;在本地/远程已存在标签时跳过
    创建或推送标签;对 push 操作允许可跳过错误。
  - 发布失败时打印重试提示,整体输出更友好并更具容错性。
- scripts/version-bump.mjs:
  - 修复 parseVersion 返回对象的格式(补上逗号)并去掉多余空白。
  - 添加对“第一次发布 (1.0.0)”的特殊处理,调整交互选项
    显示顺序与编号;根据是否为第一次发布或 beta 状态
    动态显示可选项数量(1-5 或 1-6),并正确显示 beta
    的下一个编号。

这些改动提升了发布流程的安全性与可用性,减少手动
干预并避免重复操作带来的失败。
2025-08-13 00:11:24 +08:00
RavenHogWarts
a468659302 Revert "ci: 优化发布流程 (#17)"
This reverts commit d637337635.
2025-06-22 21:31:18 +08:00
RavenHogWarts
d637337635
ci: 优化发布流程 (#17)
* ci: 优化发布流程,改用 softprops/action-gh-release

将发布动作从 actions/create-release@v1 替换为
softprops/action-gh-release@v1,支持自动生成发布说明
并添加讨论分类,提升发布信息的清晰度和管理效率。

* ci: 支持手动触发发布工作流

在 release.yml 中添加 workflow_dispatch 事件,允许用户
通过 GitHub 界面手动触发发布流程,提升发布的灵活性和
可控性。
2025-06-22 21:27:25 +08:00
RavenHogWarts
42187a5582 docs: 更新贡献指南并修正插件名称引用 2025-05-06 22:57:06 +08:00
RavenHogWarts
d50b7a813d build: 1.0.1 2025-05-06 22:32:49 +08:00
RavenHogWarts
dc8094fa56 ci(release): 修改日志生成 2025-05-05 15:18:06 +08:00
RavenHogWarts
44a7e5e13d build: 1.0.0 2025-05-05 05:12:38 +08:00
RavenHogWarts
fbbd582ce4
feat: 从 obsidian-ravenhogwarts-toolkit 插件中拆分移植 (#1)
* chore: 初始化插件

* feat: 完成插件的拆分移植
2025-05-05 05:00:02 +08:00
RavenHogWarts
11350fe432
Initial commit 2025-05-04 12:05:18 +08:00