ops: split source and release deployment entrypoints#190
Merged
liujuanjuan1984 merged 4 commits intomainfrom Mar 17, 2026
Merged
ops: split source and release deployment entrypoints#190liujuanjuan1984 merged 4 commits intomainfrom
liujuanjuan1984 merged 4 commits intomainfrom
Conversation
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.
变更概览
本 PR 完成
#178/#188的收尾实现,核心目标是把“用户安装入口”和“正式部署入口”都收口到 release/tag 语义,同时保留 source-based 路径用于开发与调试。在此前已完成 tag 派生版本、PyPI 发布链路和
v0.1.0首发的基础上,这个 PR 进一步把脚本与文档拆分为 source/release 两条明确路径,避免正式部署继续默认依赖源码 checkout,并补齐 release-based 真机 smoke test 方案文档。按模块说明
1. source / release 双路径脚本拆分
init_system.sh/deploy.sh作为 source-based 路径,用于开发、调试、验证未发布改动init_release_system.sh/deploy_release.sh作为 release-based 路径,用于正式 systemd 部署deploy/install_release_runtime.sh与deploy/update_a2a_release.sh,把已发布的opencode-a2a-server安装到共享uv tool运行时,而不是 repo 内.venv2. 正式部署默认入口切换
3. bootstrap 与失败保护
init_release_system.sh单独实现,避免 clone repo 与 source.venvmain/默认分支头4. 文档结构重组
scripts/init_release_system_readme.md:release-based host bootstrapscripts/deploy_release_readme.md:release-based systemd deployscripts/init_system_readme.md/scripts/deploy_readme.md:source-based bootstrap / deploydocs/agent_deploy_sop.md:统一解释三条路径deploy_release.sh/deploy.sh/deploy_light.shdocs/release_deploy_smoke_test.md:release-based 真机部署 smoke test checklist5. 约束测试与契约更新
tests/test_init_system_security.py,覆盖 source/release bootstrap 的默认行为与失败保护逻辑tests/test_deploy_security_contract.py,约束 release/source 双路径脚本与 README/SOP 文案本地验证
已完成:
uv run pre-commit run --all-filesuv run pytest补充说明:
bash syntax checksystemd + sudo + root-owned /opt的端到端部署 smoke test 方案已经补到仓库文档,但本地未执行真实主机演练相关提交
504bc56docs: finish release entrypoints for bootstrap and CLI usage #178 #1888ebed34ops: avoid fallback to default branch during release bootstrap #178 #18850edd9dops: split source and release deployment entrypoints #178 #188d69895ddocs: add release deploy smoke test checklist #178 #188代码审查结论
本 PR 引入的变动整体合理,没有发现需要阻塞合并的剩余实现问题。
本轮实现较好地解决了此前的结构性问题:
残余风险主要是执行层面的:
与 issue 的关系