アーティファクトとパッケージ
アーティファクトとパッケージを使用すると、 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.MINOR.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 | パッケージ登録の呼び出し中に、呼び出しの発生元のタスク実行がシステムで見つかったが、まだ後処理されていない場合。つまり、このタスク実行の完了 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、バージョン = 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 | アーティファクト登録呼び出し中に、アーティファクトバージョンがアーティファクトペイロードで提供されておらず、ルックアップサブフローがサポートされているが、親アーティファクトレコードがシステムに見つからないために実行されなかった場合。 | はい (無視) | アーティファクト登録要求は、次の理由で無視されました: アーティファクトが見つかりませんでした。 |