すべてのプロダクト
Search
ドキュメントセンター

Enterprise Distributed Application Service:EDAS アプリケーション向け Jenkins CI のセットアップ

最終更新日:Mar 11, 2026

Jenkins と GitLab を統合し、Enterprise Distributed Application Service (EDAS) アプリケーションを自動的にビルドおよびデプロイします。コードを GitLab にプッシュすると、Webhook が Jenkins をトリガーし、コードをプルして Maven ビルドを実行し、toolkit-maven-plugin プラグインを介して EDAS にデプロイします。

このワークフローは、Elastic Compute Service (ECS) クラスターと Kubernetes クラスターの両方にデプロイされたアプリケーションをサポートします。

仕組み

Code push to GitLab  ->  GitLab webhook triggers Jenkins  ->  Maven builds the project  ->  toolkit-maven-plugin deploys to EDAS
  1. GitLab リポジトリにコードをプッシュします。

  2. GitLab Webhook が変更を Jenkins に通知します。

  3. Jenkins が最新のコードをプルし、Maven ビルドを実行します。

  4. toolkit-maven-plugin プラグインが EDAS POP API スクリプトを呼び出し、更新されたアプリケーションをデプロイします。

前提条件

開始する前に、以下を準備してください。

Maven プロジェクトの構成

プロジェクトの pom.xmltoolkit-maven-plugin プラグインを追加して、EDAS デプロイメント設定を定義します。完全なプラグイン構成については、「toolkit-maven-plugin プラグインを使用して ECS クラスターにデプロイされたアプリケーションを更新する」をご参照ください。

プラグインを構成した後、セルフマネージドサーバーで Maven を使用して、構成が有効かどうかを確認することを推奨します。

mvn clean package toolkit:deploy

正常なビルドとデプロイメントにより、Maven プロジェクトが Jenkins 自動化の準備ができていることが確認されます。

Jenkins プラグインのインストール

  1. Jenkins コンソールで、[システム管理] > [プラグイン] に移動します。

  2. 次のプラグインをインストールします。

    プラグイン目的
    git client plugin, git pluginGit リポジトリからソースコードをプルする
    GitLab hook plug-inGitLab Webhook を介して Jenkins ビルドをトリガーする

Jenkins での Maven の構成

  1. Jenkins コンソールで、[Jenkins の管理] > [グローバルツール設定] に移動します。

  2. Maven バージョンを選択し、インストールパスを構成します。

Jenkins と GitLab 間の SSH 認証の設定

Jenkins サーバーで SSH キーペアを生成し、公開鍵を GitLab に追加します。これにより、Jenkins は手動認証なしでコードをプルできます。

  1. Jenkins サーバーで、Jenkins を実行するユーザーの SSH RSA キーペアを生成します。詳細については、「GitLab SSH ドキュメント」をご参照ください。

  2. GitLab で、設定項目 > デプロイキー へ移動します。

  3. [新規デプロイキー] をクリックし、Jenkins サーバーからの公開鍵を貼り付けます。

Jenkins ジョブの作成

  1. Jenkins ホームページで、[新規アイテム] をクリックし、ジョブ名を入力して、[フリースタイル・プロジェクト] を選択します。

  2. [ソースコード管理] タブで、[Git] を選択し、以下のパラメーターを設定します。

    パラメーター説明
    Repository URLご利用のプロジェクトの Git リポジトリ URL
    CredentialsJenkins を実行するユーザーの SSH RSA キーペアが、この Git プロジェクトの GitLab に追加済みの場合は、None を選択します。それ以外の場合、エラーが返されます。
  3. ビルド トリガー」タブで、「SCM のポーリング」を選択します。

  4. [ビルド環境] タブで、[コンソール出力にタイムスタンプを追加] を選択します。

  5. [ビルド] タブで、[ビルドステップの追加] をクリックし、[最上位 Maven ターゲットの呼び出し] を選択します。

  6. Maven ビルドステップを構成します。

    パラメーター
    Maven バージョン[グローバルツール設定]
    目的clean package toolkit:deploy

GitLab Webhook の構成

各コードプッシュが自動的にビルドをトリガーするように、GitLab を Jenkins にリンクします。

  1. GitLab プロジェクトで、[設定] > [ウェブフック] に移動します。

  2. [URL] フィールドに、次のフォーマットで Webhook URL を入力します。プレースホルダーを実際の値に置き換えてください。例:

    プレースホルダー説明
    <jenkins-server>Jenkins サーバーの IP アドレスまたはホスト名123.57.xx.xxx
    <port>Jenkins リスニングポート8080
    <git-repository-url>プロジェクトの Git SSH URLgit@code.aliyun.com:tdy218/hello-edas.git
       http://<jenkins-server>:<port>/git/notifyCommit?url=<git-repository-url>
       http://123.57.xx.xxx:8080/git/notifyCommit?url=git@code.aliyun.com:tdy218/hello-edas.git
  3. [テストフック] をクリックして Webhook 接続を検証します。

デプロイメントの検証

構成を完了したら、GitLab リポジトリにコミットをプッシュします。Webhook が Jenkins をトリガーし、Maven を実行してアプリケーションを EDAS にデプロイします。

ビルド結果を確認するには:

  1. Jenkins ジョブページに移動し、[ビルド番号] > [コンソール出力] の順にクリックします。

  2. 正常なデプロイメントでは、次のような出力が生成されます。

       15:58:51 [INFO] Deploy application successfully!
       15:58:51 [INFO] ------------------------------------------------------------------------
       15:58:51 [INFO] BUILD SUCCESS
       15:58:51 [INFO] ------------------------------------------------------------------------
       15:58:51 [INFO] Total time: 24.330 s
       15:58:51 [INFO] Finished at: 2018-12-25T15:58:51+08:00
       15:58:51 [INFO] Final Memory: 23M/443M
       15:58:51 [INFO] ------------------------------------------------------------------------
       15:58:51 Finished: SUCCESS
  3. デプロイメントが失敗した場合は、EDAS コンソールにログインし、左側のナビゲーションウィンドウで[アプリケーション]をクリックします。アプリケーション名をクリックします。左側のナビゲーションウィンドウで、[変更履歴]をクリックしてデプロイメントの詳細を表示し、失敗の原因を特定します。

マルチモジュール Maven プロジェクトのデプロイ

マルチモジュールプロジェクトの場合、Jenkins ジョブの設定は、Jenkins ジョブの作成と同じです。違いは、1 つではなく、[トップレベルの Maven ターゲットを実行] のビルドステップを 2 つ使用する必要がある点です。依存関係を解決するためにまず親モジュールをビルドし、その後サブモジュールをビルドしてデプロイします。

2 つのビルドステップを次のように構成します。

ビルドステップゴール目的
1 番目clean install親モジュールをビルドして依存関係を解決する
2 番目clean package toolkit:deployターゲットサブモジュールをビルドしてデプロイする

: 次のデモプロジェクトは、この構造を持っています。

edas-app-demo/          (parent module)
├── detail/             (submodule)
├── itemcenter/         (submodule)
└── itemcenter-api/     (submodule)

itemcenter サブモジュールをデプロイするには、まず親モジュールで clean install を実行し、次に itemcenter サブモジュールで clean package toolkit:deploy を実行します。