デプロイメントのニーズに合わせてAzureビルドパイプラインを作成
目標とするMavenフェーズと、アーティファクトのデプロイメント先とするリポジトリーに従って、Talendが提供するパイプラインスクリプトを設定してプロジェクト項目を生成します。
YAMLパラメーターを環境に適合化
パイプラインで使用されるパラメーターや認証情報の中には、Azure DevOpsに保存したセキュアファイルから派生するものもあります。パイプラインの設定で使用できるTalend Mavenのパラメーターに関するその他の情報は、TalendのカスタムMavenビルドのオプションをご覧ください。
- azure-pipeline.zipファイルをダウンロードして抽出します。情報メモ警告: このファイルは例であり、使用する前にお使いの環境に適合させる必要があります。事前定義されたMavenコマンドとオプションが含まれていますので、デプロイメントのニーズに合わせてカスタマイズしてお使いください。たとえばazure-pipeline.ymlスクリプトファイルは、Talend Management Consoleにアーティファクトをビルドして公開できます。アーティファクトをアーティファクトリポジトリーやDockerに公開したい場合は、スクリプト内の対応するパラメーターをコメント解除します。
- スクリプトの先頭で定義した環境変数(プロジェクト名、ジョブ名/バージョン/タイプ、リポジトリーURLなど)に独自の値を設定します。情報メモヒント: Talendが例として提供しているXXX参照をazure-pipeline.ymlスクリプト内で検索し、お使いの環境に対応する値に置換します。プロジェクト名がCICD、ジョブ名がjob_feature956でバージョンが0.1、Dockerイメージ名がcicd4talendの例:
variables: - group: Talend Variables - name: project_name value: 'CICD' - name: jobs_to_build value: 'process/my_complex_job_1.0' - name: docker_image_name value: 'cicd4talend'
情報メモ警告: 構文の要件:- project_name変数の値は大文字でなければならず、それ以外の場合はビルドエラーが発生する可能性があります。プロジェクト名に特殊文字を必要とするか、または最終構文に疑問がある場合は、プロジェクトの親pom.xmlファイル(<project>/poms/pom.xml内のtalend.project.name変数)で確認できます。
- ジョブ/ルート/サービスの元の名前に大文字が含まれていた場合でも、jobs_to_build変数の値は小文字でなければなりません。これは、ビルドの起動に必要な.pomファイル内ではアーティファクトがすべて小文字であるためです。
- -SNAPSHOTサフィックスはバージョン値に手動で追加しないでください。スナップショットとリリースはバージョン自体から切り離されており、Talend Studioの環境設定からのみ操作する必要があります。各アーティファクトのデプロイメントバージョンを一括変更をご覧ください。
- 前に作成したartifact_urlというAzure変数に記述されているアーティファクトリポジトリーのURLを編集します。 アーティファクトをNexusのmaven-releasesリポジトリーにデプロイするコマンドの例(本番環境における安定リリース版のアーティファクトが対象):
-DaltDeploymentRepository=releases::default::http://nexus:8081/repository/maven-releases/
カスタムコンポーネントを使うジョブをデプロイする場合は、TalendのカスタムMavenビルドのオプションにあるように、-Dcomponents.*オプションを使う必要があります。
- talend_ci_config変数グループに記述されているTalend Cloudワークスペースと環境を編集します。
(--contextを使って)コンテキスト環境をProdに変更しながら、prod環境のci-workspaceという名前のワークスペース内にあるTalend Cloudアカウントにアーティファクトを(スクリーンショットと共に)デプロイするコマンドの例:
-Dservice.url=$(talend_cloud_url) -Dcloud.token=$(talend_cloud_token) -Dcloud.publisher.screenshot=true -context=Prod -Dcloud.publisher.environment=prod -Dcloud.publisher.workspace=ci-workspace
この環境はTalend Studioで前もって定義しておく必要があります。ただし、コンテキストパラメーターが未定義の場合は、--context_paramを使用してビルド時に定義できます。
- 到達するMavenフェーズを定義するには:[options] (オプション)行と[goals] (目標)行に示されているフェーズとビルドプロファイルが自分が実行したいものであることを確認します。Talendで提供されているデフォルトスクリプトで定義されているデフォルト目標は、deployです。Mavenのフェーズについては、Mavenのドキュメンテーションをご覧ください。情報メモヒント: すべてのビルドプロファイル(-Pdocker、 -Pnexusなど)がプロジェクトの親pom.xmlファイルにリスト表示されます。Dockerイメージ名や、Open JDK名など、一部のデフォルトパラメーターはこのファイルで上書きすることもできます。パッケージされたアーティファクトを.jarファイルまたは.zipファイルとして取り込み、任意のNexusリポジトリーにデプロイする方法:
options: '--settings $(settings_xml.secureFilePath) -Pnexus -pl $(jobs_to_build) -am' goals: 'clean deploy'
コンパイルされたコードを取り込み、Dockerイメージとしてパッケージし、任意のレジストリにデプロイするコマンドの例:
options: '--settings $(settings_xml.secureFilePath) -X -Pdocker -pl $(jobs_to_build) -am -Dtalend.docker.name=$(docker_image_name)' goals: 'deploy'
パイプラインを作成および設定
ビルドパイプライン作成の最初のステップは、ソースアーティファクトの保存先となるGitリポジトリーをインポートすることです。
- [Pipelines] (パイプライン)ページに移動します。
- [Create pipeline] (パイプラインを作成)をクリックします。
- [Connect] (接続)ステップと[Select] (選択)ステップで、ソースリポジトリーのタイプを選択し、インポートするリポジトリーを選択した後に、Azureへアクセス権を与えます。
- [Configure] (設定)ステップで、パイプラインのステップを設定できるよう[Starter pipeline]を選択します。
- [Review] (レビュー)ステップで、前にデプロイメントのニーズに合わせてダウンロードしたazure-pipeline.ymlファイルのコンテンツを貼り付けます。