目標とするMavenフェーズと、アーティファクトのデプロイ先とするリポジトリーに従って、Talendが提供するパイプラインスクリプトを設定してプロジェクトアイテムを生成します。
パラメーターの一部には、以前に定義した設定ファイルと、Jenkinsに保存した認証情報が使用されます。パイプラインの設定で使用できるTalendMavenのパラメーターに関するその他の情報は、TalendのカスタムMavenビルドのオプションを参照してください。
手順
-
Talend_Pipeline設定ページを開き、[Script] (スクリプト)エディターに移動します。
-
スクリプトの先頭で定義した環境変数(プロジェクト名、ジョブ名/バージョン/タイプ、リポジトリーURLなど)に独自の値を設定します。
ヒント: Talendが例として提供している
XXX参照をスクリプト内で探し、お使いの環境に対応する値に置換します。
スクリプトは、このページの左側パネルにある[Downloads] (ダウンロード)タブにあります。
例え
CICDという名前のプロジェクト、
job_feature956という名前でバージョンが
0.1のジョブ、および
cicd4talendという名前のDockerイメージのサンプル:
env.PROJECT_GIT_NAME = 'CICD'
env.PROJECT_NAME = env.PROJECT_GIT_NAME.toLowerCase()
env.ARTIFACT = 'job_feature956'
env.VERSION = '0.1'
env.GIT_URL = 'https://github.com/talend/myrepo.git'
env.TYPE = "" // if big data = _mr
env.UPDATESITE_URL 'http://localhost:8080/P2/'
env.IMAGE_NAME = 'cicd4talend'
env.GIT_CREDENTIALS_ID = 'git'
env.DOCKER_CREDENTIALS_ID = 'docker'
参照プロジェクトを使用している場合は、それに応じてパイプラインスクリプトを編集しなければならないこともあります。
警告: 構文の要件:
- パラメーター env.PROJECT_GIT_NAME変数は大文字にする必要があり、大文字にしないとビルドエラーが発生することがあります。プロジェクト名に特殊文字を必要とするか、または最終構文に疑問がある場合は、プロジェクトの親pom.xmlファイルで確認できます(<project>/poms/pom.xml内のtalend.project.name変数)。
- パラメーター env.ARTIFACT変数の値は、ジョブ/ルート/サービスの元の名前に大文字が含まれていた場合でも、小文字でなければなりません。ビルドの起動に必要な.pomファイル内ではすべてのアーティファクトが小文字だからです。
- -SNAPSHOTサフィックスはバージョン値に手動で追加しないでください。スナップショットとリリースはバージョン自体から切り離されており、Studioの環境設定からのみ操作する必要があります。各アーティファクトのデプロイバージョンを一度に変更を参照してください。
-
プロジェクトアーティファクトをデプロイするリポジトリーを定義するには、「アーティファクトリポジトリーへのアーティファクトのビルド、テスト、公開」ステージのmavenOpts行に記載されているリポジトリーURLを編集します。
Talendが提供するデフォルトスクリプトに定義されているリポジトリーは、Nexus snapshotsリポジトリーです。
例え
-
mavenOpts: '-Dlicense.path=/home/talend/talend_studio/license -Dupdatesite.path=${UPDATESITE_URL} -DaltDeploymentRepository=snapshots::default::http://nexus:8081/repository/snapshots/ -Xms1024m -Xmx3096m')
アーティファクトをNexus snapshotsリポジトリーにデプロイできます(開発中のプロジェクトとバージョンが-SNAPSHOTのアーティファクトが対象)。独自のアーティファクトリポジトリーのURLを指定する必要があります。
-
mavenOpts: '-Dlicense.path=C:/Talend/talend_studio/license -Dproduct.path=C:/Talend/talend_studio -Dgeneration.type=local -DaltDeploymentRepository=releases::default::http://nexus:8081/repository/releases/ -Xms1024m -Xmx3096m')
アーティファクトをNexus
[releases] (リリース)リポジトリーにデプロイできます(安定したリリースのためには本番環境のアーティファクト)。独自のアーティファクトリポジトリーのURLを指定する必要があります。
注:
- Talend CommandLine serverモード生成タイプは非推奨です。ビルド時にTalend CommandLineを自動的にダウンロードしてインストールできるよう-Dupdatesite.pathパラメーターを使用するか、ローカルの生成タイプを使用することを推奨します。
- カスタムコンポーネントを使うジョブをデプロイする場合は、TalendのカスタムMavenビルドのオプションで-Dcomponents.*オプションを使う必要があります。
-
到達するMavenフェーズを定義するには:'Build, Test and Publish artifacts to artifact repository'、および'Push to a Docker Registry'ステージに示されているフェーズが実行するフェーズであることを確認します。
Mavenのフェーズは、
Mavenのドキュメンテーションを参照してください。
ヒント: すべてのビルドプロファイル(-Pdocker、 -Pnexusなど)がプロジェクトの親pom.xmlファイルにリスト表示されます。Dockerイメージ名や、Open JDK名など、一部のデフォルトパラメーターはこのファイルで上書きすることもできます。
例え
sh "mvn -f $PROJECT_GIT_NAME/poms/pom.xml clean deploy -Pnexus -fn -e -pl jobs/routes${TYPE}/${ARTIFACT}_${VERSION} -am"
(Unix)パッケージされたルートをjarまたは.zipファイルとして取り込み、任意のNexusリポジトリーにデプロイできます。
bat "mvn -f $PROJECT_GIT_NAME/poms/pom.xml deploy -Pdocker -fn -e -pl jobs/process${TYPE}/${ARTIFACT}_${VERSION}"
(Windows)コンパイルされたコードを取り込み、Dockerイメージとしてパッケージし、任意のレジストリーにデプロイできます。プロジェクトアイテムの実行に適用できるフィルターの例は、選択したアーティファクトでのプロジェクトの実行をフィルタリングするを参照してください。
-
プロジェクトアーティファクトをデプロイするDockerレジストリーを定義するには:'Push to a Docker registry'ステージのmavenOpts行に示されているDocker認証情報が、以前Jenkinsに保存した認証情報を指していることを確認します。
例え
mavenOpts: '-Dcommandline.skip=true -Dlicense.path=${LICENSE} -Dupdatesite.path=${UPDATESITE_URL} -Ddocker.push.registry=registry.hub.docker.com/${env.Dusername} -Ddocker.push.username=${env.Dusername} -Ddocker.push.password=${env.Dpassword} -Xms1024m -Xmx3096m')
アーティファクトを、以前に任意のDockerで定義したDockerイメージとしてデプロイできます。Dockerレジストリー認証情報を指定する必要があります。Dockerレジストリー認証情報は、以前
Jenkinsに保存した認証情報を参照します。
注: -Dcommandline.skip=trueパラメーターは、以前にTalend CommandLineを使用してアーティファクトを生成したことがある場合にのみ使用できます。
-
[Save] (保存)をクリックして変更内容を反映させます。
トラブルシューティング:
トラブルシューティング:
ESB機能を公開しようとしている時に次のエラーが発生した場合:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy-file (deploy-file) on project XXX-feature:
*The parameters 'url' for goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy-file are missing or invalid*
リリースアーティファクト用のMavenオプションに次のパラメーターを追加してみてください:
-Dproject.distributionManagement.repository.url=http://localhost:8081/repository/releases/
-Dproject.distributionManagement.repository.id=releases
または、スナップショットアーティファクト用に次のパラメーターを追加してみてください:
-Dproject.distributionManagement.snapshotRepository.url=http://localhost:8081/repository/snapshots/
-Dproject.distributionManagement.snapshotRepository.id=snapshots