GitHubリポジトリの設定

GitHubリポジトリの設定

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

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

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

note

リポジトリの管理者は、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

そうでない場合は、次の手順に従ってアップグレードします:

  1. Jenkinsサービスをliferaycloud/jenkins:2.222.1-3.2.0バージョンに更新します。

  2. ルートフォルダーにある [Jenkinsfile] を削除します。

  3. 次の環境変数を追加します: [LCP_CI_USE_DEFAULT_JENKINSFILE: true]

  4. Jenkinsサービスをデプロイします。

note

Jenkinsfileをカスタマイズしている場合は、こちらのガイドに従って Default 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 [email protected]:dxpcloud/example.git

    note

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

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

    git remote add gitlab [email protected]: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 プロバイダの webhook を作成しますが、デフォルトのものしか作成されません。 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. ブランチのリンクをクリックして、適切なビルドでコミットします。

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

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

追加情報