パイプラインの定義
ジョブ パイプライン定義に関する追加情報。
このセクションでは、 YAML形式で定義されたパイプラインの構造とコンポーネントについて説明します。各ステージはパイプラインの明確なフェーズを表し、各ステージには特定のタスクを実行する複数のジョブが含まれます。
パイプラインの定義と実行順序の基本的な例
このパイプライン定義の基本的な例では、 ジョブビルドファームウェア, ジョブテストファームウェア そして ジョブ展開ファームウェアまた、追加する必要がある 最初のパラメータ そして
2番目のパラメータ.
build: label: ファームウェアのビルド ステージの説明: 第 1 ステージ if: first_param allow-fail: false jobs: build-firmware: job: ファームウェアのビルド ジョブ パラメーター: first_param: first_value second_param: second_value test-firmware: job: ファームウェアのテスト ジョブ include-report: stage: true pipeline: true wait: - build-firmware if: first_param == value use-artifacts: - from: build-firmware collect: "*.so" destination: destination_1 deploy: label: デプロイ ステージの説明: 第 2 ステージ allow-fail: false jobs: deploy-firmware: job: ファームウェアのデプロイ ジョブ use-artifacts: - from: build-firmware collect: .so destination: destination_2
この例では、ステージはbuildとdeployという名前で、順番に実行されます。ジョブにwaitディレクティブが指定されていない限り、ステージ内のジョブは並列実行されます。waitディレクティブは、ステージ内の特定のジョブの終了を待機します。
構成:
- *ステージ パイプラインのフェーズを表します。パイプラインは必要に応じて任意の数のステージを持つことができます。ステージ名は任意ですが、一意である必要があります。
- もし このステージを実行するために満たす必要のある条件。
- 変数/値の存在チェック - ユーザーがif句に$parameter_nameを追加すると、パラメータ名が定義されている限りジョブが実行されます。
- 変数が特定の値と等しい(==)/等しくない(!=) - ユーザーがif句に$parameter_name == some_valueを追加し、値が一致すると、ジョブが実行されます。
- 特定の値を含む(~~)/含まない(!~)変数 - ユーザーが$parameter_name ~~ some_valueを追加し、値またはparameter_nameにsome_valueが含まれている場合、ジョブが実行されます。
- もし このステージを実行するために満たす必要のある条件。
- ラベルは、他のページで識別子としてではなくステージ名として表示されるテキストを提示するオプションのディレクティブです。
- 説明はオプションのディレクティブであり、ステージの目的に関する情報やコンテキストを提供する簡単な説明テキストです。
- Allow-fail は、このステージの結果に応じてパイプラインの残りのステージの実行の継続を許可または拒否するオプションのディレクティブです。
- *仕事 ステージ実行の一部として実行されるジョブのリストです。
- *仕事 次のような一意の識別子を持つ ビルドファームウェア または
テストファームウェア で (パイプラインの定義と実行順序の基本的な例)、キーワード 仕事は、以前に作成されたジョブの名前です。
求人セクション、どのジョブが使用されるかが決まります。
- Parametersは、パイプラインをトリガーする際にユーザーが指定する必要があるパラメータのリストを提供するオプションのディレクティブです。各パラメータには、 NameとValueがあります。
- Waitはオプションのディレクティブで、ジョブ開始前に完了する必要があるジョブIDのリストを指定します。また、ユーザーはデッドロックにつながるサイクルを形成しないように注意する必要があります。
- 使用アーティファクト は、同じステージまたは前のステージ内の別のジョブで使用されているアーティファクトのリストを指定するオプションのディレクティブです。このディレクティブを使用すると、アーティファクトは作業ディレクトリにダウンロードされます。パイプライン内のジョブのいずれかがリポジトリまたはファイルを作業ディレクトリにクローンしている場合、アーティファクトはそれらの変更によって上書きされる可能性があることに注意してください。
- *From はアーティファクトの指定されたソースです。
- *Collect は、収集されるアーティファクトを定義します。
- Destination は、アーティファクトが収集される場所を指定します。指定されていない場合、アーティファクトはワークスペースのルートにダウンロードされます。
- このジョブを実行するために満たす必要がある条件の場合、条件の設定はステージの if 句の場合と同じです。
- Include-reportはオプションのディレクティブで、allure-results として収集されたレポートがある場合に、ジョブ実行からのレポートをステージまたはパイプラインの集計レポートに含めることを可能にします。このディレクティブ内のオプション(ステージとレポート)は両方ともオプションです。
- *仕事 次のような一意の識別子を持つ ビルドファームウェア または
テストファームウェア で (パイプラインの定義と実行順序の基本的な例)、キーワード 仕事は、以前に作成されたジョブの名前です。
求人セクション、どのジョブが使用されるかが決まります。
注:ディレクティブの横にあるアスタリスク ( * ) は、必須であることを示します。
グローバル変数
どのステージ内でも、 globalsオプションを使用してグローバル変数を定義できます(変数のデフォルト値の定義は任意です)。グローバル変数はパイプラインスコープを持つ変数であり、あるジョブ実行から別のジョブ実行に値を渡すために使用できます。また、値をジョブ実行パラメータとして渡したり、 if句の評価内で渡したりすることもできます。
stage-1: ラベル: 最初のステージ グローバル: - global_variable: value_one ジョブ: job-1: ジョブ: job1 if: global_variable == value_onw パラメーター: job_parameter: $global_variable
あるステージでグローバル変数が定義されると、同じステージまたはそれ以降のステージに属するすべてのジョブは環境変数を介してその値にアクセスし、 update-tth-globalsコマンドで更新できるようになります。以下は、Linux上でジョブ実行中にグローバル変数global_variable を使用および更新する例です。
echo $global_variable update-tth-globals global_variable new_value
Windows の場合は次のようになります。
echo %global_variable% update-tth-globals global_variable new_value
グローバル変数の名前は、パイプライン定義全体で一意である必要があります。
グローバル変数を使用した定義のより複雑な例については、こちらをご覧ください。