GitLab CI/CD
GitLab CI/CDとLingo.dev CI/CDによるAI翻訳
GitLab CI/CDとは?
GitLab CI/CDはGitLabに組み込まれた継続的インテグレーションおよびデプロイメントプラットフォームです。ユーザーはYAMLファイルでパイプラインを定義し、コードのビルド、テスト、デプロイ、またはリポジトリイベントによってトリガーされるタスクの自動化を行うことができます。
Lingo.dev CI/CDとは?
Lingo.dev CI/CDはCI/CD環境でアプリやコンテンツをローカライズするためのAI駆動ツールで、翻訳が常に最新の状態に保たれることを保証します。これはLingo.dev CLIの上に構築されており、ciコマンドで利用できます:
npx lingo.dev@latest ci --help
このガイドについて
このガイドでは、Lingo.dev CI/CDをGitLab CI/CDとLingo.dev Engineで設定する方法を説明します。
ステップ1. Lingo.dev CLIのセットアップ
まず、Lingo.dev CLIのクイックスタートに従ってください。
以下のものが必要になります:
- Lingo.devのAPIキー
- 翻訳パイプラインの動作を設定する
i18n.jsonファイル npx lingo.dev@latest runでコンテンツを翻訳する機能
ステップ2. アクセストークンの取得
GitLab CI/CDでは、パイプライン内で特定のアクションを実行するためにアクセストークンが必要です。
アクセストークンには2種類あります:
どちらも使用可能ですが、個人用アクセストークンのみがGitLabの無料ユーザーが利用できます。
個人用アクセストークン
-
左サイドバーで、アバターを選択します。
-
プロフィールの編集を選択します。
-
左サイドバーでアクセストークンを選択します。
-
新しいトークンを追加を選択します。
-
トークン名に、トークンの名前(例:「Lingo.dev」)を入力します。
-
以下のスコープを有効にします。
apiread_repositorywrite_repository
-
個人用アクセストークンの作成を選択します。
プロジェクトアクセストークン
-
GitLabでプロジェクトに移動します。
-
設定 > アクセストークンを選択します。
-
新しいトークンを追加を選択します。
-
トークン名に名前を入力します。
-
トークンの役割を選択します。
-
以下のスコープを有効にします。
apiread_repositorywrite_repository
-
プロジェクトアクセストークンを作成を選択します。
ステップ2. CI/CD変数の設定
GitLabでは、CI/CD変数によりパイプラインが機密値にアクセスできるようになります。Lingo.devをGitLab CI/CDで使用するには、Lingo.dev APIキーとGitLabアクセストークンの両方が変数として利用可能である必要があります。
警告: デフォルトでは、CI/CD変数は保護されたブランチでのみ利用可能です。保護されたブランチを使用していない場合は、変数作成時に変数を保護するオプションを無効にしてください。
Lingo.dev APIキー
- 設定 > CI/CDに移動します。
- 変数セクションを展開します。
- 変数を追加をクリックします。
- キーフィールドに
LINGODOTDEV_API_KEYと入力します。 - 値フィールドにLingo.dev APIキーを入力します。
- 可視性 > マスクを選択します。
- 変数を追加をクリックします。
GitLabアクセストークン
- 設定 > CI/CDに移動します。
- 変数セクションを展開します。
- 変数を追加をクリックします。
- キーフィールドに
GL_TOKENと入力します。 - 値フィールドにGitLabアクセストークンを入力します。
- 可視性 > マスクを選択します。
- 変数を追加をクリックします。
ステップ3. ワークフローの選択
Lingo.dev CI/CDは、さまざまなワークフローをサポートするために異なる方法で設定できます。以下は推奨するワークフロー(および提供する例)です:
- コンテンツが
mainにマージされたとき、翻訳をmainにコミットする - コンテンツが
mainにマージされたとき、mainからマージリクエストを作成する - コンテンツがフィーチャーブランチにマージされたとき、翻訳をそのブランチにコミットする
- コンテンツがフィーチャーブランチにマージされたとき、そのブランチからマージリクエストを作成する
ただし、「最適な」ワークフローはありません。それぞれにトレードオフがあります。どこから始めるべきか迷っている場合は、最初のオプションから始めることをお勧めします。これが最もシンプルで目立たないワークフローです。
ステップ 4. パイプラインの設定
-
リポジトリのルートに
.gitlab-ci.ymlファイルを作成します:touch .gitlab-ci.yml -
パイプライン例のいずれかをファイルにコピーします。
-
変更を
mainブランチにコミットしてプッシュします:git add .gitlab-ci.yml git commit -m "feat: GitLab CI pipeline for Lingo.dev" git push
(任意)ステップ 5. パイプラインのカスタマイズ
Lingo.dev CI/CDにはデフォルト値があり、ほとんどの場合カスタマイズする必要はありません。ただし、ciコマンドのCLIフラグを使用してこれらをオーバーライドすることができます。
npx lingo.dev@latest ci --api-key "$LINGODOTDEV_API_KEY" --commit-message "カスタムコミットメッセージ!"
利用可能なすべてのオプションを確認するには、CLIコマンドを参照してください。
パイプライン例
mainにコミット
コンテンツがmainにマージされたとき、翻訳をmainにコミットします。
image:
name: lingodotdev/ci-action:latest
entrypoint: [""]
stages: [translate]
translate:
stage: translate
script:
- npx lingo.dev@latest ci --api-key "$LINGODOTDEV_API_KEY"
only:
- main
mainからマージリクエスト
コンテンツがmainにマージされたとき、mainからマージリクエストを作成します。
image:
name: lingodotdev/ci-action:latest
entrypoint: [""]
stages: [translate]
translate:
stage: translate
script:
- npx lingo.dev@latest ci --pull-request --api-key "$LINGODOTDEV_API_KEY"
only:
- main
フィーチャーブランチにコミット
コンテンツがフィーチャーブランチにマージされたとき、翻訳をそのブランチにコミットします。
image:
name: lingodotdev/ci-action:latest
entrypoint: [""]
stages: [translate]
translate:
stage: translate
script:
- npx lingo.dev@latest ci --api-key "$LINGODOTDEV_API_KEY"
only:
- branches
except:
- main
フィーチャーブランチからマージリクエスト
コンテンツがフィーチャーブランチにマージされたとき、そのブランチからマージリクエストを作成します。
image:
name: lingodotdev/ci-action:latest
entrypoint: [""]
stages: [translate]
translate:
stage: translate
script:
- npx lingo.dev@latest ci --pull-request --api-key "$LINGODOTDEV_API_KEY"
except:
- main