用途:把 GitHub Actions 或 Bamboo 的 CI/CD 流水线迁移、转换为 TeamCity 配置。检测范围是当前目录下的 .github/workflows/ 与 bamboo-specs/,须在仓库根目录运行 teamcity migrate。
主要能力:teamcity migrate 可一次完成检测、转换并写出 .tc.yml;--dry-run --json 以结构化 JSON 预演;teamcity pipeline validate 做 schema 校验;--json 输出 {"sources": [...], "results": [...]},每条结果含 outputFile、yaml、needsReview、manualSetup 与 validationError。报告区分“Needs review”(生成 YAML 内部问题,如 TODO 占位、被丢弃步骤、可复用工作流占位)与“Manual setup needed”(转换器无法完成的事项)。退出码 1 表示至少一个源转换失败或生成文件未通过 schema 校验,转换成功的文件仍会写出,应看逐文件 ✓/⚠/✗ 而非当作整体失败。
使用方式:先在仓库根运行迁移,修复所有 Needs review 与需改 YAML 的 Manual setup 项;密钥需在 YAML 顶层 secrets 块中定义(转换器只把 ${{ secrets.X }} 改写为 %X%,不会定义,值用 teamcity project token put 存储);然后 teamcity pipeline validate 通过后,先 teamcity project vcs create 创建 VCS 根(默认分支为 main,master 需传 --branch refs/heads/master),再 teamcity pipeline create 时用 --vcs-root 指定其 id(不接受 URL);运行用 teamcity run start 加 --watch,失败时用 teamcity run log <id> --failed --raw 查看并 teamcity pipeline push 后重跑至全绿;最后配置触发器与通知。
限制与注意:./gradlew 与 ./mvnw 必须写成 type: script,TeamCity 的 gradle/maven runner 会用 agent 版本而非项目版本,会导致真实构建失败;schema 通过不代表流水线可运行,构建通过才算完成。密钥、触发器、分支过滤始终需手工配置。私有仓库建议用 GitHub App 连接而非 PAT:teamcity project connection create github-app 会打印后续授权、安装与 vcs create 命令,无头环境可传已有凭据(--no-manifest --app-id --client-id --private-key-file --stdin)或使用 SSH 部署密钥(teamcity project ssh upload,URL 形如 git@github.com:...);公开仓库用 --auth anonymous。未知 action/task 会变成占位,需阅读其源码改写等价 shell 脚本。