Chuyển đến nội dung chính

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ác kiểm tra được đề xuất

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

hyperlocalise run --dry-run

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

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

3. Cổng xung đột đồng bộ

sync pullsync push mặc định là --dry-run=true, đây là một đường cơ sở CI an toàn.
hyperlocalise sync pull --output json --fail-on-conflict --dry-run=true
hyperlocalise sync push --output json --fail-on-conflict --dry-run=true
Chỉ sử dụng --dry-run=false 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.

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.

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

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
Để áp dụng các thay đổi từ xa vào các tệp cục bộ trong CI, chuyển sang:
go run ./apps/cli sync pull --output json --fail-on-conflict --dry-run=false

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

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
Đố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:
go run ./apps/cli sync push --output json --fail-on-conflict --dry-run=true
Đố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.