Add Jenkins local deployment test parameters

This commit is contained in:
Codex
2026-04-29 12:03:22 +08:00
parent 37a03dc994
commit 1dee5f72d7
4 changed files with 93 additions and 14 deletions
@@ -41,10 +41,11 @@ Genarrative-Database-Export
1. `DATABASE`:目标 SpacetimeDB 数据库名;留空时读取仓库环境变量。
2. `SERVER`:SpacetimeDB server 别名,默认 `maincloud`。
3. `SERVER_URL`:显式服务地址;填写后优先于 `SERVER`。
4. `ROOT_DIR`:可选,透传给 `spacetime --root-dir`。
5. `INCLUDE_TABLES`:可选,逗号分隔的表名白名单。
6. `OUTPUT_DIRECTORY`:导出文件目录,默认 `database-exports`。
7. `EXPORT_NAME`:导出文件名;留空时使用 `spacetime-migration-<BUILD_NUMBER>.json`。
4. `DEPLOY_DIRECTORY`:固定部署目录,默认 `/var/lib/jenkins/deploy/Genarrative`。
5. `ROOT_DIR`:可选,透传给 `spacetime --root-dir`;为空时使用 `<DEPLOY_DIRECTORY>/.spacetimedb`。
6. `INCLUDE_TABLES`:可选,逗号分隔的表名白名单。
7. `OUTPUT_DIRECTORY`:导出文件目录,默认 `database-exports`。
8. `EXPORT_NAME`:导出文件名;留空时使用 `spacetime-migration-<BUILD_NUMBER>.json`。
导出成功后,Jenkins 归档:
@@ -69,7 +70,7 @@ Genarrative-Database-Import
关键参数:
1. `INPUT_FILE`:必填,迁移 JSON 文件路径。
2. `DATABASE`、`SERVER`、`SERVER_URL`、`ROOT_DIR`:与导出流水线一致。
2. `DATABASE`、`SERVER`、`SERVER_URL`、`DEPLOY_DIRECTORY`、`ROOT_DIR`:与导出流水线一致。
3. `INCLUDE_TABLES`:可选,只导入指定表。
4. `DRY_RUN`:默认 `true`,只校验不写入。
5. `INCREMENTAL`:默认 `true`,跳过已存在或冲突的行。
@@ -85,7 +86,27 @@ Genarrative-Database-Import
3. Jenkinsfile 不打印 token;生产环境应通过 Jenkins 凭据或目标机器环境变量传入敏感值。
4. 如果不传 `TOKEN`,导入脚本会创建临时 Web API identity,并调用迁移授权/撤销 procedure 收敛权限窗口。
## 5. 文件清单
## 5. 本地部署测试参数
`Genarrative-Build-And-Deploy` 增加以下本地发布包参数,便于在 Jenkins 中测试本地 SpacetimeDB,不依赖 Maincloud:
1. `DATABASE`:发布包默认数据库名,默认 `genarrative_pipeline_local_test`。
2. `API_PORT`:发布包内 api-server 端口,默认 `8082`。
3. `WEB_PORT`:发布包内静态网站端口,默认 `25001`。
4. `SPACETIME_PORT`:发布包内本地 SpacetimeDB 端口,默认 `3101`。
5. `DEPLOY_DIRECTORY`:固定部署目录,继续透传给 `Genarrative-Deploy`。
数据库导入导出流水线在本地测试时应显式填写:
```text
DATABASE=genarrative_pipeline_local_test
SERVER_URL=http://127.0.0.1:3101
DEPLOY_DIRECTORY=/var/lib/jenkins/deploy/Genarrative
```
这样脚本会自动使用 `/var/lib/jenkins/deploy/Genarrative/.spacetimedb` 作为 `spacetime --root-dir`,避免回退到 Jenkins 用户全局 CLI 登录态,也避免误连 Maincloud。
## 6. 文件清单
```text
jenkins/Jenkinsfile.database-export