Platform Services
ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、 こちら までご連絡ください。

継続的インテグレーション

Liferay Cloud は、継続的インテグレーションインフラストラクチャ サービスを支えるために Jenkins を使用しています。 プルリクエストを送信するか、事前設定されたGitHubブランチの1つにコミットをプッシュすると、自動で設定可能なビルドがトリガーされます。

Liferay Cloud のお客様 ( のお客様 ログインを使用) は、ビルドを管理およびレビューする権限を持ちますが、完全な管理者権限は持ちません。

デフォルトでは、この自動ビルドはコードをコンパイルし、テストを実行するように設定できます。 Liferay Cloudはサービスをビルドし、そのステータスを環境のビルドページに表示します。 テストが失敗した場合は、Jenkinsダッシュボードとhttps://ci-companyname-infra.lfr.cloudログを確認できます。

継続的インテグレーションは、CLIではなく、GitHub、GitLab、またはBitbucketからデプロイする場合にのみ機能します。

詳細については、 CI サービスの制限事項 を参照してください。

JDKバージョンの設定

デフォルトでは、CIサービスはJDK 8を使用します。 Jenkinsは、設定されたJDKバージョンを使用して、ビルド内のタスクを実行したり、コードをコンパイルしたりします。

CI バージョン 6.0.0 以降では、ビルドに特定の Java バージョン(デフォルト以外)が必要な場合、コンソールまたは CI サービスのLCP.jsonファイルで、LCP_CI_GRADLE_JDK 環境変数を更新することができます。

LCP_CI_GRADLE_JDK に許可される値は次のとおりです。

  • jdk8
  • jdk11
  • jdk17
  • jdk21

デフォルトのJenkinsfileの使用

CIサービスには、プロジェクトのビルドに使用されるデフォルトのJenkinsfileが含まれています。 デフォルトのJenkinsfileは、それまでJenkinsfileに保存されていたすべてのロジックをカプセル化し、Jenkinsプラグインに移動させます。 つまり、CI構成を必要とせずに、すべてのバグ修正、セキュリティ修正、および改善を適用できます。

さらに、拡張ポイントを使用して、CIパイプラインの各ステップをカスタマイズできます。

デフォルトのJenkinsfileの拡張

デフォルトのJenkinsfileを拡張するには、プロジェクトリポジトリの ci フォルダに以下のファイルを追加します:

  • Jenkinsfile-before-all
  • Jenkinsfile-before-cloud-build
  • Jenkinsfile-before-cloud-deploy
  • Jenkinsfile-after-all
  • Jenkinsfile-post-always

CIビルドプロセスのステップの基本的な概要は次のとおりです:

  1. 存在する場合は、ci/Jenkinsfile-before-allをロードします。

  2. Liferay Workspaceをビルドします。

  3. 存在する場合は、ci/Jenkinsfile-before-cloud-buildをロードします。

  4. コンソールに表示されるLiferay Cloudのビルドを作成します。

  5. 存在する場合は、ci/Jenkinsfile-before-cloud-deployをロードします。

  6. 現在のブランチがデプロイブランチの場合、ビルドをクラウド上の環境にデプロイできます。 LCP_CI_DEPLOY_BRANCH環境変数でデプロイブランチを設定し、 LCP_CI_DEPLOY_TARGETによりデプロイ環境を指定します。

  7. 存在する場合は、ci/Jenkinsfile-after-allをロードします。 これは、すべてのビルド手順が完了すると実行されます。

  8. 存在する場合は、ci/Jenkinsfile-post-alwaysをロードします。 これは、ビルドが成功しても失敗しても実行されます。

Jenkinsサービスの起動ログを監視して、デフォルトのパイプラインでこれらがどのように使用されるかを確認することができます。 完全なデフォルトのJenkinsfileが起動ログに出力されます。

追加のパイプラインのカスタマイズと外部通話

パイプラインに追加の手順を設けることで、外部サービスを呼び出すことができます。 例えば、REST APIを通してサードパーティのモニタリングサービスを呼び出したり、ビルドプロセス中に実行するスクリプトを呼び出したりすることができます。

また、リポジトリの ci/ フォルダでJenkinsfile を定義することで、独自のパイプラインを作成することができます。 詳細については、 Jenkins Web サイト を参照してください。

警告

外部サービスやカスタムパイプラインは、Liferay Cloudサポートの対象外であるため、慎重にご利用ください。 Jenkinsのカスタムプラグインはサポートされていません。

異なる拡張ポイント間でのコードの再利用

これらの拡張ポイント間でコードを共有することで、構造を簡素化できる。 一つの方法は、Groovyスクリプトを読み込むことです。

例えば、 [ci]/ フォルダに [util.groovy] という内容でgroovyファイルを作成すると、次のようになります:

def sendSlackMessage(message) {
	println(message)
}

return this

次に、以下をci/Jenkinsfile-before-cloud-buildに挿入できます:

def util = load("ci/util.groovy")

util.sendSlackMessage("About to create Liferay Cloud build...")

環境変数リファレンス

これらの環境変数は、デフォルトのJenkinsfileでのみ使用されます。 その機能の詳細については、Jenkinsのドキュメントにあるパイプラインオプションの項目を参照してください。

名前デフォルト値説明
LCP_CI_ARTIFACT_DAYS_TO_KEEP-1遺物が保管される日数
LCP_CI_ARTIFACT_NUM_TO_KEEP1アーティファクトスタッシュ を保存する最近のビルドの数を設定します。
LCP_CI_BUILD_DAYS_TO_KEEP14ビルドが保存される日数
LCP_CI_BUILD_NUM_TO_KEEP10保存されたビルドの数
LCP_CI_BUILD_TIMEOUT_MINUTES30パイプライン実行の制限時間。この時間を過ぎると、Jenkinsはパイプラインを中止します。
LCP_CI_CLI_LOG_LEVEL verboseに設定されている場合、CI サービスは lcp コマンドを実行する際に --verbose フラグを使用します。 これにより、コマンド実行時のデバッグに役立つ情報がさらに提供されます。
LCP_CI_DEPLOY_BRANCHdevelop自動デプロイ に使用するブランチを指定します。 有効なブランチ名に設定されていない場合、自動デプロイは無効となります。
LCP_CI_DEPLOY_TARGETdev自動デプロイメント がデプロイされる環境を設定します。 LCP_CI_DEPLOY_BRANCHが設定されている場合にのみ使用されます。
LCP_CI_GRADLE_JDKjdk8CI サービスの Java バージョン をビルドに使用します。
LCP_CI_LIFERAY_DXP_HOTFIXES_[ENV] Liferayサービスをデプロイする際にCIが自動的に適用するホットフィックスの名前(.zipの拡張子なし)。 [ENV] を環境名 (すべて大文字) に置き換えるか、 COMMON に置き換えてください。
LCP_CI_NUM_EXECUTORS2ビルド実行キューで使用される実行エンジンの数。 これを 1 に減らすと、ビルドの並列実行が制限され、場合によってはビルドの失敗が減る可能性があります。
LCP_CI_PRESERVE_STASHES_BUILD_COUNT20stashesが保存される最近のビルドの数を設定します。 LCP_CI_ARTIFACT_NUM_TO_KEEP 変数で許可されているよりも多くのビルドでStashを保持することはできません。
LCP_CI_SCM_MANAGE_HOOKStrueコードホスティングプラットフォーム(GitHubなど)におけるWebhookの自動管理を有効または無効にします。
LCP_CI_SCM_PROVIDERgithubビルドの取得に使用するソースコントロール管理サービスを設定します。 受け入れられる値は、 bitbucketgithub、および gitlab です。
LCP_CI_SCM_REPOSITORY_NAME ビルドを取得する際に使用するリポジトリ名を設定します (GitHub、Bitbucket あるいは GitLab から)。
LCP_CI_SCM_REPOSITORY_OWNER ビルドの取得に使用されるリポジトリ所有者。
LCP_CI_SCM_TOKEN ビルドを取得するために使用されるアクセストークン。 Bitbucket の場合は、 Atlassian API トークン を使用してください。 GitHubまたはGitLabを使用する場合は、個人アクセストークンを使用してください。
LCP_CI_SCM_USERNAME LCP_CI_SCM_TOKEN に関連付けられた Atlassian アカウントのメールアドレス (Bitbucket に必要)。
LCP_CI_USE_DEFAULT_JENKINSFILEtrueデフォルトのJenkinsfileを有効または無効にします。
LCP_DATABASE_SERVICE データベースサービスのホスト名。