GitHubリポジトリの設定
Liferay Cloud のオンボーディングメールを受け取ると、 dxpcloud
の組織でホストされている GitHub リポジトリがプロビジョニングされます。 このリポジトリは、チームの独立したプライベートなLiferay Cloud開発リポジトリのテンプレートであり、通常10営業日後に削除されます。 ユーザーは以下のことを行う必要があります:
- プロビジョニングされたリポジトリを独自のプライベートリポジトリに転送します。
- Webhookを使用して、自社のプライベートリポジトリとLiferay CloudのJenkins(CI)サービスを連携させます。
プロビジョニングされたリポジトリはGitHubにありますが、Jenkinsサービスのバージョン3.2.0以降ではGitLabリポジトリに転送できます。 これは、GitLabリポジトリへの管理者アクセス権で行う必要があります。
リポジトリの管理者は、Cloud コンソールのプロジェクトの管理者と 同じ とは限りません。
Jenkinsサービスの準備
すでにLiferay Cloudインスタンスで バージョン 4.x.x サービス を使用している場合、Jenkins サービスはすでに GitLab と互換性があります。 アップグレードの詳細については、 Liferay Cloud Stack のアップグレード を参照してください。
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をカスタマイズしている場合は、こちらのガイドに従って Default Jenkinsfileの拡張 _ を行ってください。
GitLabリポジトリの作成
まず、新しいGitLabリポジトリを作成します:
GitLab に移動します。
[New project] をクリックします。
プロジェクトのスラッグ(URL内のリポジトリ名)を提供します。
表示レベルをプライベートに設定します(無料ユーザーは無制限のプライベートリポジトリを使用できます)。
Initialize repository with a README がチェックされていないことを確認します。
[Create project] をクリックします。
GitHubからGitLabへの転送
以下の手順に従って、プロビジョニング済みの GitHub リポジトリを自分の GitLab リポジトリに転送します:
プロビジョニング済みのGitHubリポジトリをローカルでクローンします:
git clone [email protected]:dxpcloud/example.git
noteすでに他のプロバイダで作業するためにリポジトリをクローンしている場合は、このステップをスキップして、同じクローン内で作業することができます。
新しいGitリモートを追加し、GitLabをポイントします:
git remote add gitlab [email protected]: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サービスの環境変数を設定します:
Liferay Cloud Console にログインし、
infra
環境で Jenkins サービスに移動します。[環境変数] タブに移動します。
以下の環境変数を設定します:
名前 | 値 |
---|---|
LCP_CI_SCM_PROVIDER |
gitlab |
LCP_CI_SCM_REPOSITORY_OWNER |
[repo_owner] |
LCP_CI_SCM_REPOSITORY_NAME |
[repo_name] |
LCP_CI_SCM_TOKEN |
[access_token] |
これらの環境変数を更新した後、Jenkinsサービスは再起動します。 これで、新しいリポジトリでプッシュされたブランチとプルリクエストがビルドをトリガーします。
プライベートGitLabサーバーへの接続
プライベートGitLabサーバーを使用するには、Jenkinsサービスで追加の環境変数を設定する必要があります:
名前 | 値 |
---|---|
LCP_CI_SCM_SERVER_HOST |
[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 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のプルリクエストに相当)は、Liferay Cloud Consoleの Builds タブから確認またはデプロイできるビルドのトリガーとなります。 Jenkins サービスとの統合を設定したら、次のステップとして、インテグレーションが成功したかどうかを確認するためにビルドを検証します。
プッシュされたブランチからのビルドの確認
新しいGitプッシュがJenkinsビルドをトリガーすることを確認します:
リポジトリに変更を加え(ファイルの追加など)、ブランチにコミットします:
git commit -m "Add file to test builds"
ブランチをGitLabにプッシュします:
git push gitlab branch-name
Liferay Cloud Console の Builds ページに移動します。
Builds ページで、プッシュされたブランチのビルドが表示されることを確認します。
マージリクエストからのビルドの確認
新しいマージリクエストがJenkinsビルドをトリガーすることを確認します:
任意のブランチから
develop
ブランチへのマージリクエストを作成します。マージリクエストに対して新しいビルドが作成されていることを確認します。
Liferay Cloud Console の Builds ページに移動します。
ブランチのリンクをクリックして、適切なビルドでコミットします。
リンクが正しいGitLabページにリダイレクトすることを確認します。