跳转到主要内容

CI 密钥注入标准

对于远程适配器,请将密钥保存在您的 CI 密钥管理器中,并且仅在调用 hyperlocalise sync 的作业中注入它们。
  • 仅在 *Env 变量名于 i18n.yml 中提交。
  • 通过作业级环境变量在运行时注入令牌值。
  • 对只读检查和启用写入的同步任务使用单独的凭据。
  • 避免在流水线步骤中打印环境变量。

建议检查

1. 配置 + 规划冒烟测试

hyperlocalise run --dry-run

2. 状态快照

hyperlocalise status --output csv
将 CSV 作为构建产物存储,以便进行趋势跟踪。

3. 同步冲突门控

sync pullsync push 默认使用 --dry-run=true,这是一个安全的 CI 基线。
hyperlocalise sync pull --output json --fail-on-conflict --dry-run=true
hyperlocalise sync push --output json --fail-on-conflict --dry-run=true
仅在明确授权可向本地文件或远程系统写入的任务中使用 --dry-run=false

计划同步任务示例

将这些 GitHub Actions 示例作为基准。根据你的 CI 平台调整密钥名称和审批规则。

计划拉取同步(只读,安全默认)

name: tms-pull-sync

on:
  schedule:
    - cron: "0 */6 * * *"
  workflow_dispatch:

jobs:
  pull-sync:
    runs-on: ubuntu-latest
    permissions:
      contents: read
    env:
      SMARTLING_USER_SECRET: ${{ secrets.SMARTLING_USER_SECRET }}
      LOKALISE_API_TOKEN: ${{ secrets.LOKALISE_API_TOKEN }}
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-go@v5
        with:
          go-version-file: go.mod
      - run: go run ./apps/cli sync pull --output json --fail-on-conflict --dry-run=true
要将远程更改应用到 CI 中的本地文件,请切换到:
go run ./apps/cli sync pull --output json --fail-on-conflict --dry-run=false

计划推送同步(可写,启用中)

name: tms-push-sync

on:
  schedule:
    - cron: "30 2 * * *"
  workflow_dispatch:

jobs:
  push-sync:
    runs-on: ubuntu-latest
    environment: production
    permissions:
      contents: read
    env:
      SMARTLING_USER_SECRET: ${{ secrets.SMARTLING_USER_SECRET }}
      LOKALISE_API_TOKEN: ${{ secrets.LOKALISE_API_TOKEN }}
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-go@v5
        with:
          go-version-file: go.mod
      - run: go run ./apps/cli sync push --output json --fail-on-conflict --dry-run=false
用于非变更验证遍历,请使用:
go run ./apps/cli sync push --output json --fail-on-conflict --dry-run=true
对于可写入的任务,优先使用受保护的环境、审批门和最小权限的服务凭据。