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を通してサードパーティのモニタリングサービスを呼び出したり、ビルドプロセス中に実行するスクリプトを呼び出したりすることができます。

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

警告

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

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

これらの拡張ポイント間でコードを共有すると、構造を簡素化できます。 1 つの方法は、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_JDKjdk8ビルドに使用する CI サービスs 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 など) の 自動 Web フック管理 を有効または無効にします。
LCP_CI_SCM_PROVIDERgithubビルドの取得に使用するソースコントロール管理サービスを設定します。 受け入れられる値は、 bitbucketgithub、および gitlabです。
LCP_CI_SCM_REPOSITORY_NAME ビルドを取得する際に使用するリポジトリ名を設定します (GitHub、Bitbucket あるいは GitLab から)。
LCP_CI_SCM_REPOSITORY_OWNER ビルドの取得に使用されるリポジトリ所有者。
LCP_CI_SCM_TOKEN Bitbucket、GitHub、またはGitLabからビルドにアクセスして取得するために必要な個人用アクセストークン。
LCP_CI_USE_DEFAULT_JENKINSFILEtrueデフォルトの Jenkinsfile を有効または無効にします。
LCP_DATABASE_SERVICE データベースサービスのホスト名。