アーティファクトとパッケージ
アーティファクトとパッケージを使用すると、 DevOps チェンジベロシティ 幅広い展開モデルとリリースモデルにわたって開発およびテストアクティビティを追跡できます。この機能により、異なる時間または異なるパイプラインでアーティファクトが作成およびリリースされたときに、 DevOps データモデルに格納されているパイプラインアクティビティを取得して適用できます。
アーティファクト
アーティファクトバージョンが登録されると、コミット、テスト、コードスキャンなどの関連アクティビティが追跡されるため、アーティファクトバージョンがいつデプロイされたかに関係なく、それらの詳細を取得できます。これは、現在のパイプライン実行、同じパイプラインの後続の実行、現在のパイプラインによってトリガーされるパイプライン、または個別にトリガーされる別のパイプラインにすることができます。
コミットをアーティファクトバージョン (CI パイプライン) に関連付け、アーティファクトパッケージ (CD パイプライン) を定義すると、最後にアプリが本番環境に展開されて以降に生成されたすべてのアーティファクトバージョンが、変更のコミットのリストに含まれる。これらのアイテムを統合すると、特に展開前に複数の CI ビルドがある場合に役立ちます。
- カテゴリ DevOps または [ DevOps 変更] フィールドで [DevOps 変更要求を分類] チェックボックス が DevOps プロパティでオンになっています。詳細については、「DevOps カテゴリを次のように義務付けていない変更要求 DevOps」を参照してください。
- コミットおよび作業アイテム関連リスト
パッケージ
- パッケージで宣言されているすべてのアーティファクトバージョンのアクティビティの取得。たとえば、自動変更承認ポリシーで使用する場合などです。
- 指定されたアーティファクトバージョンが正常にリリースされたときを記録し、それらに関連付けられた情報が考慮されないようにします。たとえば、後からの変更要求の場合などです。
アーティファクトのセットアップ
- DevOps でアーティファクトツールレコードを作成します。注:アーティファクトバージョンを検索するために Webhook またはユーザーが作成した統合サブフロー構成が必要でない限り、アーティファクトツールは必要ありません。
- CI パイプラインにアーティファクトを登録します。
- CD パイプラインにパッケージを作成します。注:パッケージ作成ステップは、本番展開ステップの前に行う必要があります。
アーティファクト登録
DevOps API /アーティファクト/登録エンドポイントを使用して、スクリプト化されたパイプラインまたはフリースタイルジョブでアーティファクト登録を構成します。複数のアーティファクトバージョンがサポートされています。
スクリプト化された宣言型パイプライン (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 フローによってフェッチされます。
ほとんどの場合、これらのステージングレコードは数秒以内に処理されます。ただし、必要なデータが受信されない場合があるため、これらのレコードがアイドル状態のままになる場合があります。以下のテーブルの [説明 ] フィールドには、監視を容易にするために、このような場合に不足している詳細の概要が含まれています。
| ステージングタイプ | ステージングコード | これはいつ発生するか | 最終状況は? | 説明 |
|---|---|---|---|---|
| create_package_association | WAITING_FOR_OTHER_STAGED_REQUESTS | パッケージ登録コール中に、コールの発生元のタスク実行がシステムで検出され、後処理されたが、アーティファクトペイロードで渡されたすべてのアーティファクトバージョンがシステムで見つかったわけではない場合。 | いいえ | 次の理由でパッケージ登録要求が保留されています: 関連付けのタスク実行が見つかり (TE00012345)、後処理フラグが true に設定されていますが、すべてのアーティファクトバージョンが見つかったわけではありません。 アーティファクトの合計数:2 |
| create_package_association | TASK_EXEC_POST_PROCESSING_PENDING | パッケージ登録の呼び出し中に、呼び出しの発生元のタスク実行がシステムで見つかったが、まだ後処理されていない場合。つまり、このタスク実行の Completed 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)。 アーティファクト数:2 分の 1 |
| create_package | VERSION_NOT_FOUND | パッケージ登録呼び出し中に、アーティファクトバージョンがアーティファクトペイロードで渡されないが、タスク実行レコードを検索するために使用できる taskExecutionSysId または (pipelineName, stageName, taskExecutionNumber) のいずれかが含まれている場合。この場合は検出され、後処理されますが、アーティファクトバージョンレコードが関連付けられていません。 | いいえ | 次の理由でパッケージ登録要求が保留されています: アーティファクトバージョンがペイロードになく、タスク実行の詳細 (name=TestArtifact、バージョン = 2.5、repositoryName=TestRepo、pipelineName=TestPipeline、stageName=Package、taskExecutionNumber=18) を使用しても見つかりません (TE00012345)。 アーティファクト数:2 分の 1 |
| 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)。 アーティファクト数:2 分の 1 |
| create_package | NO_TASK_EXECUTION_FOUND | パッケージ登録呼び出し中に、アーティファクトバージョンがアーティファクトペイロードで渡されないが、タスク実行レコードの検索に使用できる taskExecutionSysId または (pipelineName, stageName, taskExecutionNumber) が含まれているが、この場合は見つかりません。 | いいえ | 次の理由でパッケージ登録要求が保留されています: アーティファクトバージョンがペイロードになく、関連付けのタスク実行も見つかりません (name=TestArtifact、version=2.5、repositoryName=TestRepo、pipelineName=TestPipeline、stageName=Package、taskExecutionNumber=18)。 アーティファクト数:2 分の 1 |
| create_package | WAITING_FOR_OTHER_STAGED_REQUESTS | パッケージ登録の呼び出し中に、アーティファクトペイロードで渡されたアーティファクトバージョンがシステムで見つかったが、他の関連するステージングレコード (create_packageレコードとcreate_package_associationレコードの両方を含む) が処理されるのを待機する必要があります。 | いいえ | 次の理由でパッケージ登録要求が保留されています: アーティファクトバージョンが見つかりましたが、残りのパッケージ登録ステージングレコードを待機する必要があります。 アーティファクト数:2 分の 1 |
| 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 がサポートされており、アーティファクトバージョンレコードを見つけることができ、コールの発生元のタスク実行がシステム内で見つかったが、まだ後処理されていない場合。つまり、このタスク実行の Completed Webhook イベントはまだ処理されていません。 | いいえ | アーティファクト登録要求は、次の理由で処理待ちになっています: アーティファクトバージョンが Webhook で見つかり、関連付けのタスク実行が見つかりました (TE00012345) が、後処理完了フラグが true に設定されています。 |
| register_artifact | NO_TASK_EXECUTION_FOUND | アーティファクト登録呼び出し中に、アーティファクトバージョンがアーティファクトペイロードで提供されていないが、ルックアップサブフローがサポートされており、アーティファクトバージョンレコードを見つけることができるが、呼び出しの発生元のタスク実行がシステムにまだ見つからない場合。 | いいえ | アーティファクト登録要求は、次の理由で処理待ちになっています: アーティファクトバージョンがルックアップで見つかりましたが、関連付けのタスク実行が見つかりません (pipelineName=TestPipeline、stageName=Package、taskExecutionNumber=18)。 |
| register_artifact | TASK_EXEC_POST_PROCESSING_PENDING | アーティファクト登録コール中に、アーティファクトバージョンがアーティファクトペイロードで提供されていないが、ルックアップサブフローがサポートされており、アーティファクトバージョンレコードを見つけることができ、呼び出しの発生元のタスク実行がシステム内で見つかったが、まだ後処理されていない場合。つまり、このタスク実行の Completed Webhook イベントはまだ処理されていません。 | いいえ | アーティファクト登録要求は、次の理由で処理待ちになっています: アーティファクトバージョンがルックアップで見つかり、関連付けのタスク実行が見つかりました (TE00012345) が、後処理完了フラグが true に設定されていません。 |
| register_artifact | ERROR_CALLING_SUBFLOW | アーティファクト登録コール中に、アーティファクトバージョンがアーティファクトペイロードで提供されておらず、ルックアップサブフローがサポートされているがアーティファクトバージョンが見つからない場合。 | はい (無視) | アーティファクト登録要求は、次の理由で無視されました: アーティファクトバージョンがルックアップサブフローで見つかりませんでした。 |
| register_artifact | ERROR_CALLING_SUBFLOW | アーティファクト登録呼び出し中に、アーティファクトペイロードにアーティファクトバージョンが提供されておらず、ルックアップサブフローがサポートされているが、サブフローのエラーのためにアーティファクトバージョンが見つからなかった場合。 | はい (無視) | アーティファクト登録要求は、次の理由で無視されました: エラーのため、ルックアップサブフローでアーティファクトバージョンが見つかりませんでした (詳細については、DevOps ログを参照してください)。 |
| register_artifact | ERROR_CALLING_SUBFLOW | アーティファクト登録呼び出し中に、アーティファクトバージョンがアーティファクトペイロードで提供されておらず、ルックアップサブフローがサポートされているが、親アーティファクトレコードがシステムに見つからないために実行されなかった場合。 | はい (無視) | アーティファクト登録要求は、次の理由で無視されました: アーティファクトが見つかりませんでした。 |