oo

GitHubリポジトリの設定

Liferay Cloud のオンボーディングメールを受け取ると、 dxpcloud 組織でホストされている GitHub リポジトリがプロビジョニングされます。 このリポジトリは、チームの独立したプライベートなLiferay Cloud開発リポジトリのテンプレートで、通常10営業日後に削除されます。 ユーザーは以下のことを行う必要があります:

  1. プロビジョニングされたリポジトリを独自のプライベートリポジトリに転送します。
  2. Webhook を使用して、プライベートリポジトリを Liferay Cloud の Jenkins (CI) サービスと統合します。

プロビジョニングされたリポジトリはGitHubにありますが、Jenkinsサービスのバージョン3.2.0以降ではGitLabリポジトリに転送できます。 これは、GitLab リポジトリの管理者権限で行う必要があります。

note

リポジトリの管理者は、クラウドコンソールのプロジェクトの管理者と同じとは限りません。

Jenkinsサービスの準備

Jenkinsfileをカスタマイズした場合は、このガイドに従って デフォルトのJenkinsfileを拡張する

GitLabリポジトリの作成

まず、新しいGitLabリポジトリを作成します:

  1. GitLab に移動します。

  2. New project] をクリックします。

    [新しいプロジェクト]をクリックして、新しいGitLabリポジトリの作成を開始します。

  3. プロジェクトのスラッグ(URL内のリポジトリ名)を提供します。

    新しいリポジトリの詳細を記入してください。

  4. 表示レベルをプライベートに設定します(無料ユーザーは無制限のプライベートリポジトリを使用できます)。

  5. Initialize repository with a README がチェックされていないことを確認します。

  6. Create project] をクリックします。

GitHubからGitLabへの転送

以下の手順に従って、プロビジョニング済みの GitHub リポジトリを自分の GitLab リポジトリに転送します:

  1. プロビジョニング済みのGitHubリポジトリをローカルでクローンします:

    git clone git@github.com:dxpcloud/example.git

    note

    すでに他のプロバイダで作業するためにリポジトリをクローンしている場合は、このステップをスキップして、同じクローン内で作業することができます。

  2. 新しいGitリモートを追加し、GitLabをポイントします:

    git remote add gitlab git@gitlab.com:USERNAME/REPOSITORYNAME.git

  3. クローンされたリポジトリを新しいリモートリポジトリにプッシュします:

    git push gitlab master

GitHub リポジトリの作成、クローン、プッシュについてのヘルプが必要な場合は、 GitLab’s documentation を参照してください。

GitLabのアクセストークンの生成

次に、JenkinsのビルドをトリガーするためにWebhookで使用するアクセストークンを作成します。

  1. パーソナル・アクセストークンのページ に移動します。

    GitLabのパーソナルアクセストークンを作成します。

  2. このアクセストークンの名前と有効期限を指定します。

  3. 次のアクセス許可を持つようにアクセストークンを設定します:

    • api
    • read_repository
    • write_repository
  4. [Create personal access token]をクリックします。

  5. アクセストークンをコピーしてどこかに保存します(アクセストークンが再度表示されないためです)。

GitLabをJenkinsサービスに接続する

最後に、新しいリポジトリを指すようにJenkinsサービスの環境変数を設定します:

  1. Liferay Cloud Console にログインし、 infra 環境の Jenkins サービスに移動します。

  2. 環境変数] タブに移動します。

  3. 以下の環境変数を設定します:

名前
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の機能と一致させるためには追加の設定が必要です。

  1. GitLabリポジトリに移動します。

  2. Settings に移動し [Webhooks] を選択します。

  3. Project Hooks で、作成されたWebhookがリストされていることを確認します。

  4. CI webhookの[Edit]ボタンをクリックします。

    リポジトリ用に自動的に作成されたWebhookを編集します。

  5. Tags push events] と [Comments] をアンチェックします。

  6. Enable SSL verification] にチェックします。

  7. 変更を保存] クリックします。

ビルドの確認

プッシュされたブランチとマージリクエスト(GitLab のプルリクエストに相当)がビルドのトリガーとなり、Liferay Cloud Console の Builds タブからビルドの確認やデプロイができます。 Jenkins サービスとの統合を設定したら、次のステップとして、インテグレーションが成功したかどうかを確認するためにビルドを検証します。

プッシュされたブランチからのビルドの確認

新しいGitプッシュがJenkinsビルドをトリガーすることを確認します:

  1. リポジトリに変更を加え(ファイルの追加など)、ブランチにコミットします:

    git commit -m "Add file to test builds"
    
  2. ブランチをGitLabにプッシュします:

    git push gitlab branch-name
    
  3. Liferay Cloud Console の Builds ページに移動します。

  4. Builds ページで、プッシュされたブランチのビルドが表示されることを確認します。

マージリクエストからのビルドの確認

新しいマージリクエストがJenkinsビルドをトリガーすることを確認します:

  1. 任意のブランチから develop ブランチへのマージリクエストを作成します。

  2. マージリクエストに対して新しいビルドが作成されていることを確認します。

  3. Liferay Cloud Console の Builds ページに移動します。

  4. ブランチのリンクをクリックして、適切なビルドでコミットします。

    Buildページで、ブランチのリンクを確認し、ビルドをコミットします。

  5. リンクが正しいGitLabページにリダイレクトすることを確認します。

関連トピック

Capability:
Deployment Approach: