Repository navigation
ci: 一键全平台发版流程 - #2
Merged
Merged
Conversation
- Split build.yml (checks + all-platform builds, runs on every PR and can be called with a ref) from release.yml (prepare, build, publish) - release.yml workflow_dispatch takes a version: validates it, syncs all version fields, commits to main, tags, builds, and publishes the release; pushing a vX.Y.Z tag still works and skips the version commit - Release notes come from the "## X.Y.Z" section of docs/更新日志-X.Y.md (new `release-notes` command in scripts/project.mjs); optional draft mode; reruns update the existing release - New targets: Windows ARM64, Linux ARM64, and .rpm for Linux - Docs describe the new release steps and artifacts Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
概要
在 GitHub Actions 中加入一键全平台发版:填版本号,就会自动完成版本同步、提交、打标签、全平台构建和发布 Release。
用法
docs/更新日志-X.Y.md中写好## X.Y.Z小节并推送到main本地同步版本号后直接推送
vX.Y.Z标签的方式仍然可用。改动
build.yml(新增):检查 + 全平台构建,只上传产物。每个 PR 都会运行,也可以手动运行,或由发版流程传入标签调用release.yml(重写):prepare:校验版本号(格式、不低于当前版本、标签不存在、更新日志有对应小节),手动发版时同步版本号、提交release: prepare version X.Y.Z,并原子推送main和标签build:调用build.yml构建该标签publish:生成SHA256SUMS.txt,正文由更新日志小节和下载表组成,创建 Release;重跑时更新已有 Release 并覆盖同名文件ubuntu-22.04-arm),Linux 新增.rpmscripts/project.mjs:新增release-notes <version>命令,提取对应更新日志小节,缺失时报错验证
actionlint通过(包括 shellcheck)npm run check通过build.yml:7 个构建任务(新增的 Windows ARM64、Linux ARM64、.rpm是第一次构建)release.yml只能在真正发版时完整运行,建议第一次发版时勾选"草稿"🤖 Generated with Claude Code