OAC-20: ci(e2e): verbatim release install and node enrollment on GitHub runner - #17
Merged
Merged
Conversation
Add a fork-only e2e-install workflow that installs a published release with the release's own install.sh, then enrolls a Docker sandbox node with a replica of the Web console's node command. It is manual-only; the temporary push trigger on the feature branch serves the first self-test and is removed before merge. Classify the new workflow as lint-only in scripts/ci_plan.py. Refs OAC-20. Co-authored-by: multica-agent <github@multica.ai>
The step-9 readiness check embedded its Python at the shell nesting indent (14 spaces) instead of the run block's block-scalar base indent (10 spaces). YAML strips only the base 10, so the interpreter received the code indented by 4 spaces and failed with "IndentationError: unexpected indent" on line 2, which broke the online/provider_ready/rollout.state=ready gate even though the node had enrolled successfully. De-indent lines 342-352 by four spaces so the embedded Python reaches column 0 after block-scalar stripping, matching the other python3 -c blocks in the workflow. No other lines change. Co-authored-by: multica-agent <github@multica.ai>
The branch self-test now passes all nine steps, so the temporary push trigger used to obtain the first run is removed before merge. Manual workflow_dispatch is the only trigger, as the workflow intends. Co-authored-by: multica-agent <github@multica.ai>
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
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-hosted runner 上逐字执行 release 的
install.sh,再按 Web 控制台生成的命令注册 Docker sandbox node,为 OAC-4「真实发布路径」提供最终 e2e 证据(取代 OAC-18 的 training10 路径)。fork-only,不改产品代码。改动
.github/workflows/e2e-install.yml:workflow_dispatch(release_tag/expected_commit/web_port)。首次自测用的临时分支 push 触发器已移除。install.sh(sha256)→ 逐字执行install.sh --allow-insecure-origin→ 部署健康校验(Web/healthz、GET /core/v1/installation的allow_insecure_origin=true与source_commit)→ 配置 docker provider deployment → 即时生成一次性 enrollment token 并按 Web 契约拼装节点安装命令 → 轮询online/provider_ready/rollout.state=ready,并采集ss、journalctl、last_seen_at递增证据。::add-mask::。scripts/ci_plan.py:新增.github/workflows/e2e-install.yml → lint精确分类。耦合点(R2):节点安装命令由 Web 客户端
apps/web/src/features/sandbox/enrollment-command.ts拼装,没有服务端 API 返回完整命令;本 workflow 按文档契约复刻。Web 命令模板变更必须同步本 workflow。验证
make check-names:通过(15 tests OK + name guard passed)。./actionlint -color无输出,exit 0)。python3 -c均可编译。OAC_REPOSITORY=sunyalou/OpenAgentCore bash install.sh --version build-ee22bfad… --public-url http://10.1.0.104:8080 --allow-insecure-origin退出码 0。public_url, source_commit, allow_insecure_origin and installation_id all match。saved provider=docker generation=1。online=True provider_ready=True rollout.state=ready;node JSON"rollout":{"state":"ready","ready_generation":1},"provider_ready":true,...,"online":true。sudo ss -tnp显示两条oac-node(pid=4070,fd=7/8)到10.1.0.104:8080的ESTAB连接;journalctl -u oac-node-…显示服务已启动;last_seen_at递增2026-10-03T10:49:13.362686Z → 2026-10-03T10:49:33.363384Z。已知限制
workflow_dispatch作为最终证据。build-ee22bfad…与 GHCR 匿名拉取;release 资产变更需重跑。关联
OAC-20(本 PR);回填 OAC-4「真实发布路径」;取代 OAC-18。