GitLab との統合
コードの変更をプッシュするときに環境を自動的にビルドおよびデプロイするように、GitLab リポジトリを設定できます。 この統合により、GitLab リポジトリがクラウドインフラストラクチャアカウント上のAdobe Commerceと同期されます。
この統合により、次のことが可能になります。
- ブランチの作成時に環境を作成します
- プルリクエストを結合する際に環境を再デプロイ
- ブランチを削除したら、環境を削除します
プロセスを続行するには、GitLab トークンと Webhook を取得する必要があります。
前提条件
- Adobe Commerce on cloud infrastructure プロジェクトへの管理者アクセス
- ローカル環境での
magento-cloud
CLI ツール - GitLab アカウント
- GitLab リポジトリへの書き込みアクセス権を持つ GitLab 個人用アクセストークン。選択した範囲は、少なくとも
api
とread_repository
である必要があります。
リポジトリを準備
既存の環境からクラウドインフラストラクチャプロジェクト上にAdobe Commerceのクローンを作成し、同じブランチ名を保持したまま、プロジェクトのブランチを新しい空の GitLab リポジトリに移行します。 Adobe Commerce on cloud infrastructure プロジェクトで既存の環境やブランチが失われないように、同一の Git ツリーを保持することが 重要 です。
-
ターミナルから、クラウドインフラストラクチャプロジェクトのAdobe Commerceにログインします。
code language-bash magento-cloud login
-
プロジェクトをリストして、プロジェクト ID をコピーします。
code language-bash magento-cloud project:list
-
プロジェクトのクローンをローカル環境に作成します。
code language-bash magento-cloud project:get <project-id>
-
GitLab リポジトリをリモートとして追加します(SaaS バージョンで GitLab が使用されている場合)。
code language-bash git remote add origin git@gitlab.com:<user-name>/<repo-name>.git
リモート接続の既定の名前は
origin
またはmagento
です。origin
が存在する場合は、別の名前を選択するか、既存の参照の名前を変更または削除できます。 git-remote ドキュメントを参照してください。 -
GitLab リモートが正しく追加されていることを確認します。
code language-bash git remote -v
期待される応答:
code language-none origin git@gitlab.com:<user-name>/<repo-name>.git (fetch) origin git@gitlab.com:<user-name>/<repo-name>.git (push)
-
プロジェクトファイルを新しい GitLab リポジトリにプッシュします。 すべてのブランチ名は同じにしておくことを忘れないでください。
code language-bash git push -u origin master
新しい GitLab リポジトリで開始する場合、リモートリポジトリがローカルコピーと一致しないので、
-f
オプションを使用する必要がある場合があります。 -
GitLab リポジトリにすべてのプロジェクトファイルが含まれていることを確認します。
GitLab 統合の有効化
magento-cloud integration
コマンドを使用して GitLab 統合を有効にし、GitLab Webhook のペイロード URL を取得して、GitLab からクラウドインフラストラクチャプロジェクトのAdobe Commerceに更新を送信します。
magento-cloud integration:add --type=gitlab --project=<project-ID> --token=<your-GitLab-token> [--base-url=<GitLab-url> --server-project=<GitLab-project> --build-merge-requests={true|false} --merge-requests-clone-parent-data={true|false} --fetch-branches={true|false} --prune-branches={true|false}]
<project-ID>
<your-GitLab-token>
--base-url
https://gitlab.com/
)--server-project
--build-merge-requests
true
)--merge-requests-clone-parent-data
true
)--fetch-branches
true
)--prune-branches
true
)magento-cloud integration
コマンドは、クラウドインフラストラクチャプロジェクト上のAdobe Commerceのコード すべて を、GitLab リポジトリのコードで上書きします。 これには、production
ブランチを含むすべてのブランチが含まれます。 このアクションは即座に実行され、元に戻すことはできません。 ベストプラクティスとして、GitLab 統合を追加する前に、クラウドインフラストラクチャプロジェクト上のAdobe Commerceからすべてのブランチをクローンし、GitLab リポジトリにプッシュすることが重要です。GitLab 統合を有効にするには:
-
ターミナルから、Adobe Commerce on cloud infrastructure プロジェクトに GitLab 統合を追加します。
code language-bash magento-cloud integration:add --type gitlab --project=3txxjf32gtryos --token=qVUfeEn4ouze7A7JH --base-url=https://gitlab.com/ --server-project=my-agency/project-name --build-merge-requests=false --merge-requests-clone-parent-data=false --fetch-branches=true --prune-branches=true
-
プロンプトが表示されたら、
y
と入力して統合を追加します。code language-none Warning: adding a 'gitlab' integration will automatically synchronize code from the external Git repository. This means it can overwrite all the code in your project. Are you sure you want to continue? [y/N] y
-
返り出力で表示されている フック URL をコピーします。
code language-none Hook URL: https://eu-3.magento.cloud/api/projects/3txxjf32gtryos/integrations/eolmpfizzg9lu/hook Created integration eolmpfizzg9lu (type: gitlab) +----------------------------------+---------------------------------------------------------------------------------------+ | Property | Value | +----------------------------------+---------------------------------------------------------------------------------------+ | id | <integration-id> | | type | gitlab | | token | ****** | | base_url | https://gitlab.com/ | | project | my-agency/project-name | | fetch_branches | true | | prune_branches | true | | build_merge_requests | false | | merge_requests_clone_parent_data | false | | hook_url | https://eu-3.magento.cloud/api/projects/<project-id>/integrations/<integration-id>/hook | +----------------------------------+---------------------------------------------------------------------------------------+
GitLab での Webhook の追加
イベント(プッシュリクエストや結合リクエストなど)をクラウド Git サーバーと通信するには、GitLab リポジトリの Webhook を作成する必要があります
-
GitLab リポジトリで、「設定」タブをクリックします。
-
左側のナビゲーションバーで、「Webhook」をクリックします。
-
Webhook フォームで、次のフィールドを編集します。
- URL:GitLab 統合を有効にした際に返される
Hook URL
を入力します。 - 秘密鍵トークン:必要に応じて、検証秘密鍵を入力します。
- トリガー:必要に応じて、
Merge request events
やPush events
を確認してください。 - SSL 検証を有効にする:このオプションを選択する必要があります。
- URL:GitLab 統合を有効にした際に返される
-
Webhook を追加 をクリックします。
統合のテスト
GitLab 統合を設定したら、magento-cloud
の CLI を使用して、統合が動作していることを確認できます。
magento-cloud integration:validate
または、GitLab リポジトリに簡単な変更をプッシュしてテストできます。
-
テストファイルを作成します。
code language-bash touch test.md
-
変更をコミットして GitLab リポジトリにプッシュします。
code language-bash git add . && git commit -m "Testing GitLab integration" && git push
-
Cloud Console にログインし、コミットメッセージが表示され、プロジェクトがデプロイされていることを確認します。
クラウドブランチの作成
magento-cloud
CLI environment:push
コマンドを使用して、新しい環境を作成し、アクティブにします。 クラウドブランチの作成を参照してください。
統合の削除
magento-cloud
CLI integration:delete
コマンドを使用して、統合を削除します。 統合の削除を参照してください。