アーティファクトとパッケージ
アーティファクトとパッケージを使用すると、 DevOps チェンジベロシティ は幅広い展開モデルとリリースモデルにわたって開発とテストのアクティビティを追跡できます。この機能により、 DevOps データモデルに格納されているパイプラインアクティビティは、アーティファクトが異なるタイミングまたは異なるパイプラインで作成およびリリースされたときに取得して適用できます。
アーティファクト
アーティファクトバージョンが登録されると、コミット、テスト、コードスキャンなどの関連アクティビティが追跡されるため、アーティファクトバージョンがいつデプロイされたかに関係なく、これらの詳細を取得できます。これは、現在のパイプライン実行、同じパイプラインの後の実行、現在のパイプラインによってトリガーされるパイプライン、または個別にトリガーされる別のパイプラインに含めることができます。
コミットをアーティファクトバージョン (CI パイプライン) に関連付け、アーティファクトパッケージ (CD パイプライン) を定義すると、最後にアプリが本番環境に展開されて以降に生成されたすべてのアーティファクトバージョンが、変更のコミットのリストに含まれる。これらのアイテムを統合すると、特に展開前に複数の CI ビルドがある場合に役立ちます。
- DevOpsプロパティの [カテゴリ] または DevOps [DevOps 変更] フィールドで DevOps 変更要求を分類 チェックボックスがオンになっている。詳細については、「DevOps カテゴリを必須にしない変更要求 DevOps」を参照してください。
- [コミット] および [作業アイテム] 関連リスト
パッケージ
- パッケージで宣言されているすべてのアーティファクトバージョンのアクティビティの取得。たとえば、自動変更承認ポリシーで使用します。
- 指定されたアーティファクトバージョンが正常にリリースされたときに記録し、それらに関連付けられた情報が考慮されないようにします。たとえば、後の変更要求などです。
アーティファクトのセットアップ
- DevOps でアーティファクトツールレコードを作成します。注:アーティファクトバージョンを検索するために Webhook またはユーザーが作成した統合サブフロー構成が必要でない限り、アーティファクトツールは必要ありません。
- CI パイプラインにアーティファクトを登録します。
- CD パイプラインにパッケージを作成します。注:パッケージ作成ステップは、本番展開ステップの前に行う必要があります。
アーティファクトの登録
DevOps API /artifact/registration エンドポイントを使用して、スクリプト化されたパイプラインまたはフリースタイルジョブでアーティファクト登録を構成します。複数のアーティファクトバージョンがサポートされています。
スクリプト化された宣言型パイプライン (snDevOpsArtifact Jenkinsfile コマンド)
例:snDevOpsArtifact(artifactsPayload: """{"artifacts": [{"name": "sa-web.jar", "version": "1.9","semanticVersion": "1.9.0","repositoryName": "services-1031"}], "branchName": "master"}""")フリースタイルジョブ (アーティファクト ビルドステップの登録)
例:{"artifacts":[{"name":"sentiment-analysis-web2","version":"1.9","semanticVersion":"1.9.0","repositoryName":"maven-releases"}]}
アーティファクトパッケージの作成
フリースタイルジョブ (パッケージ作成 ビルドステップ)
例:
{"artifacts":[{"name":"sentiment-analysis-web2","version":"1.9","repositoryName":"maven-releases"}]}宣言型パイプラインとスクリプト化されたパイプライン (snDevOpsPackage Jenkinsfile コマンド)
ペイロードに複数のアーティファクト (異なるリポジトリからのもの) を含むパッケージ。例:snDevOpsPackage(name: "sentimentpackage", artifactsPayload: """{"artifacts":[{"name": "sa-web.jar", "version": "1.9", "repositoryName": "services-1031"}, "{"name": "sa-db.jar", "version": "1.3.2", "repositoryName": "services-1032"}], "branchName": "master"}""")
Jenkins プラグインステップ includeBuildInfo を使用して、API 呼び出しにビルドの詳細を含めることができます。
アーティファクトのワークフローとオブジェクト
オーケストレーションツールジョブでは、新しいアーティファクト (バージョン構成) をアーティファクトリポジトリに公開します。各アーティファクトのバージョンは、タスクの実行 (関連するコードコミット構成) に関連付けられます。リリース用のパッケージ (展開用にフラグが付けられた特定の成果物バージョンで構成される) が作成され、展開ステージが完了すると、パッケージは本番環境への展開済みとしてマークされます。
これらのオブジェクトはアーティファクト構造の一部です。
アーティファクトツール
JFrog Artifactoryなどのアーティファクトリポジトリマネージャーをサポートするために使用されます。
注:アーティファクトバージョンを検索するために Webhook またはユーザーが作成した統合サブフロー構成が必要でない限り、アーティファクトツールは必要ありません。アーティファクトリポジトリ
ビルドで生成されたアーティファクトのターゲットであり、ビルドに必要なアーティファクトのソースでもあります。手動で作成することも、ツール内の新しいリポジトリで新しい成果物が公開されるときに RegisterArtifact API を使用して作成することもできます。
アーティファクト
異なるビルド (アーティファクトバージョン) が生成されるアーティファクト名。手動で作成することも、RegisterArtifact API を使用して作成することもできます。アーティファクト (バージョン) はタスクの実行に関連付けられ、アーティファクトリポジトリに公開されます。
アーティファクトバージョン
アーティファクトの特定のバージョン。CI ビルドによって生成されたアプリケーションの展開可能なコンポーネント。指定されている場合、セマンティックバージョンが使用されます。
ディスカバリーまたは RegisterArtifact API を使用して作成できます。アーティファクト (バージョン) はタスクの実行に関連付けられ、追跡対象のアーティファクトリポジトリに公開されます。
セマンティックバージョン
アーティファクトバージョンのオプションの属性。指定されている場合、変更のコミットを決定するために使用されます。セマンティック・バージョン・フォーマットは (MAJOR.マイナー。PATCH)。
パッケージ
CD パイプラインへの入力として、またはテスト結果を関連付けるために使用されるアーティファクトバージョンのコレクション。
パッケージの作成は、オーケストレーションツールからの CreatePackage API 呼び出しによってトリガーされ、パッケージには、取り込まれるすべてのアーティファクトバージョンの名前、バージョン、およびリポジトリ名が含まれます。チェックボックスは、パッケージが本番環境に展開されているかどうかを示します。
また、既存のすべてのパイプライン変更要求を、アプリケーションナビゲーター の変更モジュールから直接 確認することもできます。
アプリケーションナビゲーター の変更モジュールを使用して 、既存のすべての変更管理とパイプライン変更要求を直接確認できます。
移動先 すべての変更関連情報を確認できます
パイプライン変更要求
アプリケーションナビゲーター のリストモジュールを使用して 、既存のすべてのアーティファクトとパッケージを直接表示できます。
移動先 すべてのアーティファクト関連情報。
アーティファクトとパッケージの監視
アーティファクトとパッケージがソースツールから ServiceNowに登録されると、多くの場合、 sn_devops_artifact_staging テーブルにステージングされますが、これらのオブジェクトの作成とリンクに必要な残りのデータは、受信イベントから受信するか、 DevOps フローによってフェッチされます。
ほとんどの場合、これらのステージングレコードは数秒以内に処理されます。ただし、必要なデータが受信されないケースもあるため、これらのレコードがアイドル状態のままになることがあります。以下の表の [ 説明 ] フィールドには、このような場合に欠落している詳細の概要が含まれており、監視が容易になります。
| ステージングタイプ | ステージングコード | これはいつ発生する可能性がありますか | 最終ステータスは? | Description (説明) |
|---|---|---|---|---|
| create_package_association | WAITING_FOR_OTHER_STAGED_REQUESTS | パッケージ登録呼び出し中に、呼び出し元のタスク実行がシステムで検出され、後処理されたが、アーティファクトペイロードで渡されたすべてのアーティファクトバージョンがシステムで見つかっていない場合。 | いいえ | パッケージ登録要求は、次の理由で保留中です: 関連付けのタスク実行が見つかり (TE00012345)、後処理完了フラグが true に設定されていますが、すべてのアーティファクトバージョンが見つかったわけではありません。 アーティファクトの合計数: 2 |
| create_package_association | TASK_EXEC_POST_PROCESSING_PENDING | パッケージ登録呼び出し中に、呼び出し元のタスク実行がシステムで見つかったが、まだ後処理されていない場合。つまり、このタスク実行の完了 Webhook イベントはまだ処理されていません。 | いいえ | パッケージ登録要求は、次の理由で保留中です: 関連付けのタスク実行が見つかりました (TE00012345) が、後処理完了フラグが true に設定されています。 アーティファクトの合計数: 2 |
| create_package_association | NO_TASK_EXECUTION_FOUND | パッケージ登録の呼び出し中に、呼び出し元のタスク実行がまだシステムで見つからない場合。 | いいえ | パッケージ登録要求は、次の理由で保留中です: 関連付けのタスク実行が見つかりません (pipelineName=TestPipeline、stageName=Package、taskExecutionNumber=18)。 アーティファクトの合計数: 2 |
| create_package | VERSION_NOT_FOUND | パッケージ登録呼び出し中に、アーティファクトペイロードで渡されたアーティファクトバージョンがシステムでまだ見つかっていない場合。 | いいえ | パッケージ登録要求は、次の理由で保留中です: アーティファクトのバージョンが見つかりません (name=TestArtifact、version=2.5、repositoryName=TestRepo、pipelineName=TestPipeline、stageName=Package、taskExecutionNumber=18)。 アーティファクト数: 1/2 |
| create_package | VERSION_NOT_FOUND | パッケージ登録呼び出し中に、成果物バージョンが成果物ペイロードに渡されないが、タスク実行レコードの検索に使用できる taskExecutionSysId または (pipelineName、stageName、taskExecutionNumber) のいずれかが含まれている場合 (この場合は、検出されて後処理されますが、成果物バージョン レコードが関連付けられていません)。 | いいえ | パッケージ登録要求は、次の理由で保留中です: ペイロードでアーティファクトバージョンを利用できず、タスク実行の詳細を使用して見つけることができません (name=TestArtifact、version=2.5、repositoryName=TestRepo、pipelineName=TestPipeline、stageName=Package、taskExecutionNumber=18) (TE00012345)。 アーティファクト数: 1/2 |
| create_package | TASK_EXEC_POST_PROCESSING_PENDING | パッケージ登録呼び出し中に、成果物バージョンが成果物ペイロードに渡されないが、タスク実行レコードの検索に使用できる taskExecutionSysId または (pipelineName、stageName、taskExecutionNumber) (この場合は、見つかったがまだ後処理されていない) のいずれかが含まれている場合。 | いいえ | パッケージ登録要求は、次の理由で保留中です: ペイロードでアーティファクトバージョンを利用できず、関連付けのタスク実行が見つかりましたが、後処理完了フラグが true に設定されていません (name=TestArtifact、version=2.5、repositoryName=TestRepo、pipelineName=TestPipeline、stageName=Package、taskExecutionNumber=18) (TE00012345)。 アーティファクト数: 1/2 |
| create_package | NO_TASK_EXECUTION_FOUND | パッケージ登録呼び出し中に、成果物バージョンが成果物ペイロードに渡されないが、タスク実行レコードの検索に使用できる taskExecutionSysId または (pipelineName、stageName、taskExecutionNumber) のいずれかが含まれている場合 (この場合は見つからない)。 | いいえ | パッケージ登録要求は、次の理由で保留中です: ペイロードでアーティファクトバージョンを利用できず、関連付けのタスク実行も見つかりません (name=TestArtifact、version=2.5、repositoryName=TestRepo、pipelineName=TestPipeline、stageName=Package、taskExecutionNumber=18)。 アーティファクト数: 1/2 |
| create_package | WAITING_FOR_OTHER_STAGED_REQUESTS | パッケージ登録呼び出し中に、アーティファクトペイロードで渡されたアーティファクトバージョンがシステムで見つかったが、他の関連するステージングレコード (create_packageレコードとcreate_package_associationレコードの両方を含む) が処理されるのを待つ必要がある場合。 | いいえ | パッケージ登録要求は、次の理由で保留中です: アーティファクトバージョンが見つかりましたが、残りのパッケージ登録ステージングレコードを待機する必要があります。 アーティファクト数: 1/2 |
| register_artifact | TASK_EXEC_POST_PROCESSING_PENDING | アーティファクト登録の呼び出し中に、呼び出し元のタスク実行がシステムで見つかったが、まだ後処理されていない場合。つまり、このタスク実行の「完了」Webhook イベントはまだ処理されていません。 | いいえ | アーティファクト登録要求は、次の理由で保留中です: アーティファクトバージョンが作成され、関連付けのタスク実行が見つかりました (TE00012345) が、後処理完了フラグが true に設定されています。 |
| register_artifact | NO_TASK_EXECUTION_FOUND | アーティファクト登録の呼び出し中に、呼び出し元のタスク実行がまだシステムで見つからない場合。 | いいえ | アーティファクト登録要求は、次の理由で保留中です: アーティファクトバージョンが作成されましたが、関連付けのタスク実行が見つかりません (pipelineName=TestPipeline、stageName=Package、taskExecutionNumber=18)。 |
| register_artifact | VERSION_ALREADY_REGISTERED | アーティファクト登録呼び出し中に、特定のアーティファクトとリポジトリのアーティファクトペイロードで提供されるアーティファクトバージョンが既にシステムに存在する場合。 | はい (無視) | アーティファクト登録要求は、次の理由で無視されました: アーティファクトバージョンは既に登録されています。 |
| register_artifact | NO_SUBFLOW_CONFIGURED | アーティファクト登録呼び出し中に、アーティファクトバージョンがアーティファクトペイロードで指定されておらず、Webhook とルックアップサブフローの両方がアーティファクトバージョンレコードを見つけられない場合。 | はい (無視) | アーティファクト登録要求は、次の理由で無視されました: ペイロードでアーティファクトバージョンを利用できません。Webhook とルックアップサブフローは使用できません。 |
| register_artifact | NO_TASK_EXECUTION_FOUND | アーティファクト登録呼び出し中に、アーティファクトバージョンがアーティファクトペイロードで指定されていないが、Webhook がサポートされており、アーティファクトバージョンレコードは見つかるが、呼び出しの発信元のタスク実行がシステムにまだ見つからない場合。 | いいえ | アーティファクト登録要求は、次の理由で保留中です: アーティファクトバージョンが Webhook で見つかりましたが、関連付けのタスク実行が見つかりません (pipelineName=TestPipeline、stageName=Package、taskExecutionNumber=18)。 |
| register_artifact | TASK_EXEC_POST_PROCESSING_PENDING | アーティファクト登録呼び出し中に、アーティファクトバージョンがアーティファクトペイロードで指定されていないが、Webhook がサポートされており、アーティファクトバージョンレコードが見つかり、呼び出しの発信元であるタスク実行がシステムで見つかっているがまだ後処理されていない場合。つまり、このタスク実行の完了 Webhook イベントはまだ処理されていません。 | いいえ | アーティファクト登録要求は、次の理由で保留中です: アーティファクトバージョンが Webhook で見つかり、関連付けのタスク実行が見つかりました (TE00012345) が、後処理完了フラグが true に設定されています。 |
| register_artifact | NO_TASK_EXECUTION_FOUND | アーティファクト登録の呼び出し中に、アーティファクトバージョンがアーティファクトペイロードで指定されていないが、ルックアップサブフローがサポートされており、アーティファクトバージョンレコードが見つかるが、呼び出しの発信元のタスク実行がまだシステムにない場合。 | いいえ | アーティファクト登録要求は、次の理由で保留中です: アーティファクトバージョンがルックアップで見つかりましたが、関連付けのタスク実行が見つかりません (pipelineName=TestPipeline、stageName=Package、taskExecutionNumber=18)。 |
| register_artifact | TASK_EXEC_POST_PROCESSING_PENDING | アーティファクト登録の呼び出し中に、アーティファクトバージョンがアーティファクトペイロードで指定されていないが、ルックアップサブフローがサポートされており、アーティファクトバージョンレコードが見つかり、呼び出しの発信元であるタスク実行がシステムで見つかっているがまだ後処理されていない場合。つまり、このタスク実行の完了 Webhook イベントはまだ処理されていません。 | いいえ | アーティファクト登録要求は、次の理由で保留中です: アーティファクトバージョンがルックアップで見つかり、関連付けのタスク実行が見つかりました (TE00012345) が、後処理完了フラグが true に設定されています。 |
| register_artifact | ERROR_CALLING_SUBFLOW | アーティファクト登録呼び出し中に、アーティファクトバージョンがアーティファクトペイロードで指定されておらず、ルックアップサブフローがサポートされているが、アーティファクトバージョンが見つからなかった場合。 | はい (無視) | アーティファクト登録要求は、次の理由で無視されました: アーティファクトバージョンがルックアップサブフローで見つかりませんでした。 |
| register_artifact | ERROR_CALLING_SUBFLOW | アーティファクト登録呼び出し中に、アーティファクトバージョンがアーティファクトペイロードで指定されておらず、ルックアップサブフローがサポートされているが、サブフローのエラーが原因でアーティファクトバージョンが見つからなかった場合。 | はい (無視) | アーティファクト登録要求は、次の理由で無視されました: エラーのため、ルックアップサブフローでアーティファクトバージョンが見つかりませんでした (詳細については、DevOps ログを参照してください)。 |
| register_artifact | ERROR_CALLING_SUBFLOW | アーティファクト登録呼び出し中に、アーティファクトバージョンがアーティファクトペイロードで指定されておらず、ルックアップサブフローがサポートされているが、親アーティファクトレコードがシステムで見つからなかったために実行されなかった場合。 | はい (無視) | アーティファクト登録要求は、次の理由で無視されました: アーティファクトが見つかりませんでした。 |