GitHubリポジトリの設定
Liferay Cloud のオンボーディングメールを受け取ると、 dxpcloud
組織でホストされている GitHub リポジトリがプロビジョニングされます。 このリポジトリは、チームの独立したプライベートなLiferay Cloud開発リポジトリのテンプレートで、通常10営業日後に削除されます。 ユーザーは以下のことを行う必要があります:
- プロビジョニングされたリポジトリを独自のプライベートリポジトリに転送します。
- Webhook を使用して、プライベートリポジトリを Liferay Cloud の Jenkins (CI) サービスと統合します。
プロビジョニングされたリポジトリはGitHubにありますが、Jenkinsサービスのバージョン3.2.0以降ではGitLabリポジトリに転送できます。 これは、GitLab リポジトリの管理者権限で行う必要があります。
リポジトリの管理者は、クラウドコンソールのプロジェクトの管理者と同じとは限りません。
Jenkinsサービスの準備
Jenkinsfileをカスタマイズした場合は、このガイドに従って デフォルトの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
noteすでに他のプロバイダで作業するためにリポジトリをクローンしている場合は、このステップをスキップして、同じクローン内で作業することができます。
-
新しい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サービスの環境変数を設定します:
-
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 プロバイダのウェブフックを作成します。 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ページにリダイレクトすることを確認します。