使用您最喜欢的AI助手总结文档,并引用此页面和AI提供商
版本历史
- "添加 CI 命令"v7.5.112026/1/6
此页面的内容已使用 AI 翻译。
查看英文原文的最新版本If you have an idea for improving this documentation, please feel free to contribute by submitting a pull request on GitHub.
GitHub link to the documentationCopy doc Markdown to clipboard
CI 命令
复制代码到剪贴板
npx intlayer ci <command...>CI 命令专为自动化和 CI/CD 管道而设计。它会自动从 INTLAYER_PROJECT_CREDENTIALS 环境变量注入凭据,并可以在 monorepo 中的多个项目上运行 Intlayer 命令。
工作原理
CI 命令以两种模式运行:
单项目模式:如果当前工作目录与
INTLAYER_PROJECT_CREDENTIALS中的项目路径之一匹配,则仅针对该特定项目运行命令。迭代模式:如果未检测到特定的项目上下文,它会遍历所有已配置的项目并为每个项目运行命令。
环境变量
该命令需要设置 INTLAYER_PROJECT_CREDENTIALS 环境变量。此变量应包含一个 JSON 对象,将项目路径映射到其凭据:
复制代码到剪贴板
{ "packages/app": { "clientId": "your-client-id-1", "clientSecret": "your-client-secret-1" }, "packages/admin": { "clientId": "your-client-id-2", "clientSecret": "your-client-secret-2" }}包管理器检测
CI 命令会根据 npm_config_user_agent 环境变量自动检测正在使用的包管理器(npm、yarn、pnpm 或 bun),并使用适当的命令来执行 Intlayer。
参数
<command...>:要执行的 Intlayer 命令(例如,fill、push、build)。您可以传递任何 Intlayer 命令及其参数。示例:
npx intlayer ci fill --verbose示例:
npx intlayer ci push示例:
npx intlayer ci build
示例
在单项目模式下运行命令
如果您在匹配 INTLAYER_PROJECT_CREDENTIALS 中路径之一的项目目录中:
复制代码到剪贴板
cd packages/appnpx intlayer ci fill这将为 packages/app 项目自动注入凭据并运行 fill 命令。
在所有项目上运行命令
如果您在未匹配任何项目路径的目录中,该命令将遍历所有已配置的项目:
复制代码到剪贴板
cd /path/to/monoreponpx intlayer ci push这将为 INTLAYER_PROJECT_CREDENTIALS 中配置的每个项目运行 push 命令。
传递额外标志
您可以将任何标志传递给底层 Intlayer 命令:
复制代码到剪贴板
npx intlayer ci fill --verbose --mode complete在 CI/CD 管道中使用
在您的 CI/CD 配置中(例如,GitHub Actions、GitLab CI),将 INTLAYER_PROJECT_CREDENTIALS 设置为密钥:
复制代码到剪贴板
# GitHub Actions 示例env: INTLAYER_PROJECT_CREDENTIALS: ${{ secrets.INTLAYER_PROJECT_CREDENTIALS }}steps: - name: 填充字典 run: npx intlayer ci fill脚手架 GitHub Actions
当你运行 intlayer init 时,Intlayer 会检测你的包管理器(npm、yarn、pnpm 或 bun),并在 .github/workflows/ 下脚手架生成两个 GitHub Actions 工作流,命令与该包管理器相匹配:
intlayer-fill.yml— 在每个 pull request 上,构建字典并运行intlayer fill --git-diff --mode complete来为更改的字典生成缺失的翻译,然后将结果提交回 PR 分支。intlayer-test.yml— 在每个 pull request 上,构建字典并运行intlayer test,当必需的语言环境缺少翻译时,检查失败。
现有的工作流文件永远不会被覆盖。要完全跳过脚手架,运行:
复制代码到剪贴板
npx intlayer init --no-github-actions为 fill workflow 提供 AI 访问权限
生成的 intlayer-fill.yml 需要 AI 访问权限。有两个选项可用(在 workflow 的 env 块中配置):
- 您自己的 AI 提供商密钥 — 在您的存储库设置中添加
AI_API_KEY密钥(Settings → Secrets and variables → Actions)。workflow 通过--provider、--model和--api-key转发它。 - Intlayer CMS 访问密钥 — 添加
INTLAYER_CLIENT_ID和INTLAYER_CLIENT_SECRET密钥,并将它们连接到您的intlayer.configeditor部分。CMS 访问密钥通过 Intlayer 后端授予 AI 访问权限。
intlayer-test.yml workflow 不需要任何 AI 访问权限。
错误处理
- 如果未设置
INTLAYER_PROJECT_CREDENTIALS,命令将以错误退出。 - 如果
INTLAYER_PROJECT_CREDENTIALS不是有效的 JSON,命令将以错误退出。 - 如果项目路径不存在,将跳过并显示警告。
- 如果任何项目失败,命令将以非零状态代码退出。
使用场景
- Monorepo 自动化:在 monorepo 中的多个项目上运行 Intlayer 命令
- CI/CD 管道:在持续集成工作流中自动化字典管理
- 批量操作:同时对多个 Intlayer 项目执行相同操作
- 密钥管理:使用环境变量安全地管理多个项目的凭据
安全最佳实践
- 在 CI/CD 平台中将
INTLAYER_PROJECT_CREDENTIALS存储为加密密钥 - 永远不要将凭据提交到版本控制
- 为不同的部署环境使用特定于环境的凭据
- 定期轮换凭据