> ## Documentation Index
> Fetch the complete documentation index at: https://hyperlocalise.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# CI 自动化

> 用于漂移检查和定时 TMS 拉取/推送同步的安全 CI 模式。

## CI 密钥注入标准

对于远程适配器，请将密钥保存在您的 CI 密钥管理器中，并且仅在调用 `hyperlocalise sync` 的作业中注入它们。

* 仅在 `*Env` 变量名于 `i18n.yml` 中提交。
* 通过作业级环境变量在运行时注入令牌值。
* 对只读检查和启用写入的同步任务使用单独的凭据。
* 避免在流水线步骤中打印环境变量。

## 在 GitHub Actions 中安装 CLI

使用安装操作下载发布二进制文件，并将`hyperlocalise`添加到`PATH`中，以便后续步骤使用。这是直接运行 CLI 命令的 CI 作业的推荐设置。

```yaml theme={null}
- uses: hyperlocalise/hyperlocalise/install@v1
  with:
    version: latest
```

在你想要更严格的变更控制时，固定到特定版本：

```yaml theme={null}
- uses: hyperlocalise/hyperlocalise/install@v1
  with:
    version: v1.2.3
```

输入：

* `version`：要安装的发布标签。默认为 `latest`。
* `install-dir`：可选安装目录。默认为运行器临时目录。

对于无需手动编写 CLI 步骤的拉取请求漂移和完整性检查，请改用 [GitHub Action drift check](/workflows/github-action-drift-check) 复合操作。

## 建议检查

先安装 CLI，然后在你的作业中运行这些命令。

### 3. 同步预览门控

```bash theme={null}
hyperlocalise run --dry-run
```

### 计划拉取同步（只读，安全默认）

```bash theme={null}
hyperlocalise status --output csv
```

要将远程更改应用到 CI 中的本地文件，请切换到：

### 计划推送同步（可写，启用中）

用于非变更验证遍历，请使用：

```bash theme={null}
hyperlocalise sync pull --output json --dry-run
hyperlocalise sync push --output json --dry-run
```

对于可写入的任务，优先使用受保护的环境、审批门和最小权限的服务凭据。

## 计划同步任务示例

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

### 2. 状态快照

```yaml theme={null}
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: hyperlocalise/hyperlocalise/install@v1
        with:
          version: latest
      - run: hyperlocalise sync pull --output json --dry-run
```

仅在明确授权可写入本地文件或远程系统的作业中运行，不要包含`--dry-run`。

```bash theme={null}
hyperlocalise sync pull --output json
```

### 1. 配置 + 规划冒烟测试

```yaml theme={null}
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: hyperlocalise/hyperlocalise/install@v1
        with:
          version: latest
      - run: hyperlocalise sync push --output json
```

`sync pull` 和 `sync push` 默认会应用更改。为非变更的 CI 预览作业添加 `--dry-run`。

```bash theme={null}
hyperlocalise sync push --output json --dry-run
```

将 CSV 作为构建产物存储，以便进行趋势跟踪。
