ContainerStructureTest@0 - コンテナー構造テスト v0 タスク

container-structure-test (https://github.com/GoogleContainerTools/container-structure-test) を使用して、コマンド テスト、ファイル存在テスト、ファイル コンテンツ テスト、メタデータ テストの 4 つのカテゴリに基づいてイメージの構造を検証します。

構文

# Container Structure Test v0
# Uses container-structure-test (https://github.com/GoogleContainerTools/container-structure-test) to validate the structure of an image based on four categories of tests - command tests, file existence tests, file content tests and metadata tests.
- task: ContainerStructureTest@0
  inputs:
  # Container Repository
    dockerRegistryServiceConnection: # string. Required. Docker registry service connection. 
    repository: # string. Required. Container repository. 
    #tag: '$(Build.BuildId)' # string. Tag. Default: $(Build.BuildId).
    configFile: # string. Required. Config file path. 
    #testRunTitle: # string. Test run title. 
    #failTaskOnFailedTests: false # boolean. Fail task if there are test failures. Default: false.

入力

dockerRegistryServiceConnection - Docker レジストリ サービス接続
string. 必須です。

Docker レジストリ サービス接続を指定します。 レジストリで認証する必要があるコマンドでは必須です。


repository - コンテナー リポジトリ
string. 必須です。

リポジトリの名前。


tag - タグ
string. 既定値: $(Build.BuildId)

タグは、Docker レジストリ サービス接続からイメージをプルする場合に使用されます。


configFile - 構成ファイルのパス
string. 必須です。

.yaml または .json ファイル形式のコンテナー構造テストを含む構成ファイル パス。


testRunTitle - テスト実行のタイトル
string.

テスト実行の名前を指定します。


failTaskOnFailedTests - テストエラーがある場合の失敗タスク
boolean. 既定値: false

テストエラーがある場合は、タスクを失敗させます。 テストエラーが検出された場合は、このオプションをオンにしてタスクを失敗させます。


タスク制御オプション

すべてのタスクには、タスク入力に加えて制御オプションがあります。 詳細については、「 コントロール オプションと一般的なタスク プロパティ」を参照してください。

出力変数

[なし] :

解説

このタスクは、コンテナー構造テストを実行し、テスト結果を Azure Pipelines に発行し、包括的なテスト レポートと分析エクスペリエンスを提供するのに役立ちます。

注意

これは早期プレビュー機能です。 今後の機能は、今後のスプリントでロールアウトされる予定です。

コンテナー構造テストは、コンテナー イメージの構造を検証するための強力なフレームワークを提供します。 これらのテストを使用すると、イメージ内のコマンドの出力をチェックしたり、ファイル システムのメタデータと内容を検証したりできます。 テストは、スタンドアロン バイナリまたは Docker イメージを使用して実行できます。

このフレームワーク内のテストは、YAML または JSON 構成ファイルを使用して指定されます。 1 回のテスト実行で複数の構成ファイルを指定できます。 構成ファイルはテスト ランナーによって読み込まれ、テストが順番に実行されます。 この構成ファイル内では、次の 4 種類のテストを記述できます。

  • コマンド テスト (発行された特定のコマンドの出力/エラーのテスト)
  • ファイルの存在テスト (ファイルがイメージのファイル システムに存在するか、存在しないことを確認する)
  • ファイル コンテンツ テスト (イメージのファイル システム内のファイルに特定のコンテンツが含まれているか、含まれていないか確認する)
  • メタデータ テスト、単数形 (特定のコンテナー メタデータが正しいことを確認する)

テストのビルド、テスト、発行

コンテナー構造テスト タスクは、クラシック パイプラインと、YAML ベースのパイプライン & 統合パイプライン (マルチステージ) に追加できます。

新しい YAML ベースの統合パイプラインでは、ウィンドウでタスクを検索できます。

統合パイプラインでのコンテナー テスト

タスクが追加されたら、必要に応じて、構成ファイルパス、docker registory サービス接続、コンテナー リポジトリ、タグを設定する必要があります。 yaml ベースのパイプラインにタスク入力が作成されます。

YAML ベースのパイプラインでのコンテナー テスト

YAML ファイル

YAML ファイル

steps:
- task: ContainerStructureTest@0
  displayName: 'Container Structure Test '
  inputs:
    dockerRegistryServiceConnection: 'Container_dockerHub'
    repository: adma/hellodocker
    tag: v1
    configFile: /home/user/cstfiles/fileexisttest.yaml

テスト レポートを表示する

タスクが実行されたら、テスト タブに直接移動して、完全なレポートを表示できます。 発行されたテスト結果は、パイプラインの概要の [テスト] タブ に表示され、パイプラインの品質の測定、追跡可能性の確認、エラーのトラブルシューティング、エラーの所有権の促進に役立ちます。

[テスト レポート] ページ

要件

要件 説明
パイプラインの種類 YAML、クラシック ビルド、クラシック リリース
上で実行 エージェント、DeploymentGroup
確認要求 なし
Capabilities このタスクは、ジョブ内の後続のタスクに対する要求を満たしていません。
コマンドの制限 Any
設定可能な変数 Any
エージェントのバージョン 2.144.0 以降
タスクのカテゴリ テスト
要件 説明
パイプラインの種類 YAML、クラシック ビルド、クラシック リリース
上で実行 エージェント、DeploymentGroup
確認要求 なし
Capabilities このタスクは、ジョブ内の後続のタスクに対する要求を満たしていません。
コマンドの制限 Any
設定可能な変数 Any
エージェントのバージョン 2.0.0 以上
タスクのカテゴリ テスト