GitHubリポジトリの設定¶
DXP Cloudオンボーディングメールを受信すると、 dxpcloud
組織でホストされているGitHubリポジトリがプロビジョニングされます。 このリポジトリは、チームの個別のプライベートDXP Cloud開発リポジトリのテンプレートで、通常は10営業日後に削除されます。 ユーザーは以下のことを行う必要があります:
プロビジョニングされたリポジトリを独自のプライベートリポジトリに転送します。
プライベートリポジトリとDXP CloudのJenkins(CI)サービスをWebhookで連携させます。
プロビジョニングされたリポジトリはGitHubにありますが、Jenkinsサービスのバージョン3.2.0以降ではGitLabリポジトリに転送できます。
Jenkinsサービスの準備¶
すでにDXP Cloudのインスタンスで version 4.x.x services を使用している場合は、JenkinsサービスはすでにGitLabと互換性があります。 アップグレードの詳細については、 DXP Cloudスタックのアップグレード を参照してください。
version 3.x.xのサービスを使用している場合は、 LCP.json
で、 ci
サービスを確認し、以下のJenkinsサービス以上のものを実行していることを確認してください:
liferaycloud/jenkins:2.222.1-3.2.0
そうでない場合は、次の手順に従ってアップグレードします:
Jenkinsサービスを
liferaycloud/jenkins:2.222.1-3.2.0
バージョンに更新します。ルートフォルダーにある
Jenkinsfile
を削除します。次の環境変数を追加します:
LCP_CI_USE_DEFAULT_JENKINSFILE: true
。Jenkinsサービスをデプロイします。
注釈
Jenkinsfile をカスタマイズしている場合は、以下のガイドに従って [デフォルトの Jenkinsfile を延長します](../platform-services/continuous-integration.html#extending-the-default-jenkinsfile) _。
GitLabリポジトリの作成¶
まず、新しいGitLabリポジトリを作成します:
GitLab に移動します。
[New project] をクリックします。
プロジェクトのスラッグ(URL内のリポジトリ名)を提供します。
表示レベルをプライベートに設定します(無料ユーザーは無制限のプライベートリポジトリを使用できます)。
[Initialize repository with a README] がチェックされていないことを確認します。
[Create project] をクリックします。
GitHubからGitLabへの転送¶
以下の手順に従って、プロビジョニング済みの GitHub リポジトリを自分の GitLab リポジトリに転送します:
プロビジョニング済みのGitHubリポジトリをローカルでクローンします:
git clone git@github.com:dxpcloud/example.git
注釈
すでに他のプロバイダで作業するためにリポジトリをクローンしている場合は、このステップをスキップして、同じクローン内で作業することができます。
新しいGitリモートを追加し、GitLabをポイントします:
git remote add gitlab git@gitlab.com:USERNAME/REPOSITORYNAME.git
クローンされたリポジトリを新しいリモートリポジトリにプッシュします:
git push gitlab master
GitHub リポジトリの作成、クローン、プッシュについてのヘルプが必要な場合は、 GitLab's documentation を参照してください。
GitLabのアクセストークンの生成¶
次に、JenkinsのビルドをトリガーするためにWebhookで使用するアクセストークンを作成します。
パーソナル・アクセストークンのページ に移動します。
このアクセストークンの名前と有効期限を指定します。
次のアクセス許可を持つようにアクセストークンを設定します:
api
read_repository
write_repository
[Create personal access token]をクリックします。
アクセストークンをコピーしてどこかに保存します(アクセストークンが再度表示されないためです)。
GitLabをJenkinsサービスに接続する¶
最後に、新しいリポジトリを指すようにJenkinsサービスの環境変数を設定します:
DXP Cloudコンソールにログインし、
infra
環境でJenkinsサービスに移動します。[環境変数] タブに移動します。
以下の環境変数を設定します:
名前 |
Value |
---|---|
|
gitlab |
|
[repo_owner] |
|
[repo_name] |
|
[access_token] |
これらの環境変数を更新した後、Jenkinsサービスは再起動します。 これで、新しいリポジトリでプッシュされたブランチとプルリクエストがビルドをトリガーします。
プライベートGitLabサーバーへの接続¶
プライベートGitLabサーバーを使用するには、Jenkinsサービスで追加の環境変数を設定する必要があります:
名前 |
Value |
---|---|
|
[private host URL] |
LCP_CI_SCM_SERVER_HOST
変数に、プライベートGitLabサーバーのベースURLを設定します(例えば、 http://private.gitlab.server.com/
)。 これにより、ビルドを生成してリポジトリのブランチにリンクするときにCIがコードベースを取得するために使用するサーバーURLが設定されます。 デフォルトでは、CIはGitLabのベースURLとして https://gitlab.com/
を使用しています。
追加のGitLab Webhook設定¶
Liferay DXP CloudのJenkinsサービスは、選択したgit SCMプロバイダーのためのWebhookを作成しますが、デフォルトのものしか作成しません。 GitLabのデフォルトのWebhookをGitHubやBitBucketのWebhookの機能と一致させるためには追加の設定が必要です。
GitLabリポジトリに移動します。
Settings に移動し [Webhooks] を選択します。
Project Hooks で、作成されたWebhookがリストされていることを確認します。
CI webhookの[Edit]ボタンをクリックします。
[Tags push events] と [Comments] をアンチェックします。
[Enable SSL verification] にチェックします。
[変更を保存] クリックします。
ビルドの確認¶
プッシュされたブランチとマージリクエスト(GitLabのプルリクエストに相当)は、DXP Cloudコンソールの[Builds]タブから表示またはデプロイできるビルドをトリガーする必要があります。 Jenkins サービスとの統合を設定したら、次のステップとして、インテグレーションが成功したかどうかを確認するためにビルドを検証します。
プッシュされたブランチからのビルドの確認¶
新しいGitプッシュがJenkinsビルドをトリガーすることを確認します:
リポジトリに変更を加え(ファイルの追加など)、ブランチにコミットします:
git commit -m "Add file to test builds"
ブランチをGitLabにプッシュします:
git push gitlab branch-name
DXP Cloud コンソールの Builds ページに移動します。
Builds ページで、プッシュされたブランチのビルドが表示されることを確認します。
マージリクエストからのビルドの確認¶
新しいマージリクエストがJenkinsビルドをトリガーすることを確認します:
任意のブランチから
develop
ブランチへのマージリクエストを作成します。マージリクエストに対して新しいビルドが作成されていることを確認します。
DXP Cloud コンソールの Builds ページに移動します。
ブランチのリンクをクリックして、適切なビルドでコミットします。
リンクが正しいGitLabページにリダイレクトすることを確認します。