diff --git a/docs/technical/【开发运维】Jenkins容器预览部署控制面技术方案-2026-08-15.md b/docs/technical/【开发运维】Jenkins容器预览部署控制面技术方案-2026-08-15.md index 23436d15c..cc1c484a1 100644 --- a/docs/technical/【开发运维】Jenkins容器预览部署控制面技术方案-2026-08-15.md +++ b/docs/technical/【开发运维】Jenkins容器预览部署控制面技术方案-2026-08-15.md @@ -43,6 +43,8 @@ Web 端口池固定为 `8400..8499`: SpacetimeDB 与 OTLP 不映射宿主端口;Jenkins 通过受控 Compose 网络中的 SpacetimeDB 容器地址完成模块发布,运行服务之间继续使用 Compose DNS。页面只展示 Web 内网地址 `http://<预览宿主>:`。 +SpacetimeDB 2.7 CLI 发布到受控 Compose 网络地址时固定使用 `--yes=remote,migrate,break-clients`,避免 Jenkins 等待非本地目标交互确认;该预览路径不传 `--delete-data`。Jenkins 同时固定 `GENARRATIVE_PREVIEW_WEB_HOST=192.168.35.82`,不得用默认路由自动探测结果生成页面链接,以免 VPN 或容器网卡地址泄漏到同事可见 URL。 + ## Jenkins 参数与产物 固定 Job:`shared/Genarrative-Preview-Deployer`。 diff --git a/jenkins/Jenkinsfile.preview-deployer b/jenkins/Jenkinsfile.preview-deployer index 3d187edc4..0808dc5ed 100644 --- a/jenkins/Jenkinsfile.preview-deployer +++ b/jenkins/Jenkinsfile.preview-deployer @@ -14,6 +14,7 @@ pipeline { GIT_REMOTE_URL = 'ssh://git@127.0.0.1:2222/GenarrativeAI/Genarrative.git' GIT_REMOTE_CREDENTIAL_ID = 'genarrative-local-gitea-ssh' GENARRATIVE_PREVIEW_STATE_ROOT = '/data/jenkins/preview-deployments' + GENARRATIVE_PREVIEW_WEB_HOST = '192.168.35.82' } parameters { diff --git a/scripts/check-preview-deployer.mjs b/scripts/check-preview-deployer.mjs index 472f472fa..b8990447c 100644 --- a/scripts/check-preview-deployer.mjs +++ b/scripts/check-preview-deployer.mjs @@ -118,14 +118,19 @@ assertIncludes( ); assertIncludes( deployer, - '--yes=migrate,break-clients', - 'SpacetimeDB 发布不得默认删除实例数据。', + '--yes=remote,migrate,break-clients', + 'SpacetimeDB 预览发布必须显式确认受控容器网络目标,且不得默认删除实例数据。', ); assertExcludes( deployer, '--delete-data', '预览部署不得使用 SpacetimeDB 删除数据参数。', ); +assertIncludes( + jenkinsfile, + "GENARRATIVE_PREVIEW_WEB_HOST = '192.168.35.82'", + 'Jenkins 必须固定输出可供同事访问的内网 Web 主机地址。', +); assertIncludes(webConfig, "?? '/build/'", 'SPA 默认 base 必须固定为 /build/。'); assertIncludes( systemd, diff --git a/scripts/jenkins-preview-deployer.sh b/scripts/jenkins-preview-deployer.sh index 6a92d6293..8de77344c 100644 --- a/scripts/jenkins-preview-deployer.sh +++ b/scripts/jenkins-preview-deployer.sh @@ -416,7 +416,7 @@ deploy() { publish genarrative-loadtest \ --server "${SPACETIME_PUBLISH_URL}" \ --module-path server-rs/crates/spacetime-module \ - --yes=migrate,break-clients \ + --yes=remote,migrate,break-clients \ --build-options="--debug" \ --no-config )