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

# Tự động hóa CI

> Mẫu CI an toàn cho kiểm tra sai lệch và đồng bộ kéo/đẩy TMS theo lịch.

## Tiêu chuẩn chèn bí mật CI

Đối với các bộ điều hợp từ xa, hãy giữ các bí mật trong trình quản lý bí mật CI của bạn và chỉ tiêm chúng vào các job gọi `hyperlocalise sync`.

* Chỉ commit tên biến trong `*Env` `i18n.yml`.
* Chèn giá trị token tại thời gian chạy thông qua các biến môi trường ở cấp công việc.
* Sử dụng thông tin xác thực riêng cho các kiểm tra chỉ đọc so với các tác vụ đồng bộ có bật ghi.
* Tránh in các biến môi trường trong các bước của pipeline.

## Cài đặt CLI trong GitHub Actions

Dùng hành động cài đặt để tải xuống một binary phát hành và thêm `hyperlocalise` vào `PATH` cho các bước sau. Đây là cấu hình được khuyến nghị cho các tác vụ CI chạy trực tiếp các lệnh CLI.

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

Ghim một bản phát hành cụ thể khi bạn muốn kiểm soát thay đổi chặt chẽ hơn:

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

Đầu vào:

* `version`: thẻ phát hành để cài đặt. Mặc định là `latest`.
* `install-dir`: thư mục cài đặt tùy chọn. Mặc định là thư mục tạm của runner.

Đối với kiểm tra drift và tính toàn vẹn của pull request mà không cần tự thực hiện từng bước CLI, hãy dùng [GitHub Action drift check](/workflows/github-action-drift-check) composite action thay vào đó.

## Các kiểm tra được đề xuất

Cài đặt CLI trước, sau đó chạy các lệnh này trong công việc của bạn.

### 3. Cổng xem trước đồng bộ

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

### Đồng bộ kéo theo lịch (chỉ đọc, mặc định an toàn)

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

Để áp dụng các thay đổi từ xa vào các tệp cục bộ trong CI, chuyển sang:

### Đồng bộ đẩy theo lịch trình (đã bật ghi, đang hoạt động)

Đối với một lần kiểm tra xác thực không làm thay đổi, hãy sử dụng:

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

Đối với các công việc có quyền ghi, hãy ưu tiên các môi trường được bảo vệ, các cổng phê duyệt và thông tin xác thực dịch vụ theo nguyên tắc đặc quyền tối thiểu.

## Ví dụ về tác vụ đồng bộ theo lịch

Sử dụng các ví dụ GitHub Actions này làm nền tảng. Điều chỉnh tên bí mật và quy tắc phê duyệt cho nền tảng CI của bạn.

### 2. Ảnh chụp trạng thái

```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
```

Chỉ chạy không có `--dry-run` trong các tác vụ được ủy quyền rõ ràng để ghi tệp cục bộ hoặc hệ thống từ xa.

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

### 1. Kiểm tra khói cấu hình + lập kế hoạch

```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` và `sync push` áp dụng thay đổi theo mặc định. Thêm `--dry-run` cho các job xem trước CI không làm thay đổi.

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

Lưu CSV dưới dạng artifact xây dựng để theo dõi xu hướng.
