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
このガイドについて
このガイドでは、GitLab CI/CDとLingo.dev Engineを使用してLingo.dev CI/CDをセットアップする方法を説明します。
ステップ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
-
Create personal access tokenを選択します。
プロジェクトアクセストークン
-
GitLabのプロジェクトに移動します。
-
Settings > Access tokensを選択します。
-
Add new tokenを選択します。
-
Token nameにトークン名を入力します。
-
トークンのロールを選択します。
-
以下のスコープを有効にします。
apiread_repositorywrite_repository
-
Create project access tokenを選択します。
ステップ2. CI/CD変数の設定
GitLabでは、CI/CD変数により、パイプラインが機密値にアクセスできるようになります。GitLab CI/CDでLingo.devを使用するには、Lingo.dev APIキーとGitLabアクセストークンの両方を変数として利用可能にする必要があります。
警告: デフォルトでは、CI/CD変数は保護されたブランチでのみ利用可能です。保護されたブランチを使用していない場合は、変数作成時にProtect variableオプションを無効にしてください。
Lingo.dev APIキー
- Settings > CI/CDに移動します。
- Variablesセクションを展開します。
- Add variableをクリックします。
- Keyフィールドに
LINGODOTDEV_API_KEYを入力します。 - ValueフィールドにLingo.dev APIキーを入力します。
- Visibility > Maskedを選択します。
- Add variableをクリックします。
GitLabアクセストークン
- Settings > CI/CDに移動します。
- Variablesセクションを展開します。
- Add variableをクリックします。
- Keyフィールドに
GL_TOKENを入力します。 - ValueフィールドにGitLabアクセストークンを入力します。
- Visibility > Maskedを選択します。
- Add variableをクリックします。
ステップ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 "My custom 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