Jenkins パイプラインログの ServiceNow DevOps 変更要求ステータス
Jenkins スニペットジェネレーターユーティリティを使用して、変更ステータスと対応するポリシー条件を Jenkins パイプラインジョブログに表示する方法とタイミングを構成できます。これにより、開発者はパイプライン自体のコンソールログで変更のステータスを確認できます。
ステップスニペットを生成するには、構成されたパイプラインからパイプライン構文に移動し、[サンプルステップ] リストから SnDevOpsChange ステップを選択して、ステップの変更ステータス変数の値を更新します。エラーが発生した場合にジョブの失敗を防ぐには、[ エラーを無視 ] オプションを選択します。[ パイプラインスクリプトを生成] を選択してスニペットを作成します。スニペットをコピーしてパイプラインに貼り付けると、ステータス変更通知の受信を開始できます。変更ステータス通知を受信するには、 SnDevOpsChange ステップで次の変数を更新します。
- ポーリング間隔:Jenkins が ServiceNow に変更ステータスをポーリングし、そのステータスでコンソールログを更新する頻度 (秒単位) を指定します。コンソールログの変更ステータスは、[ 変更ステータス移行]、[ アサイン先グループの更新]、[ 承認の更新]、[ 開始予定/終了日]、または [変更の詳細 ] (存在する場合) フィールドが更新されたときにのみ更新されます。注:フィールドに値が入力されていない場合、コンソールログの変更ステータスを更新するためのポーリング間隔チェックは実行されません。
- 変更作成タイムアウト:変更作成タイムアウト値を秒単位で指定します。タイムアウト時に、Jenkins は ServiceNow の変更の作成ステータスを確認します。変更が作成されなかった場合は、[ 変更の作成時に中止 ] フラグに基づいてパイプラインが再開または中止されます。デフォルトでは、タイムアウトが指定され、[ 変更の作成失敗時に中止 ] フラグが選択されている場合、パイプラインは中止されます。注:フィールドに値が入力されていない場合、変更の作成タイムアウトチェックはパイプラインを更新するために実行されません。
- 変更の作成に失敗したときに中止:変更の作成タイムアウトまで変更が作成されない場合は、パイプラインを中止または再開します。
- 選択済み:中止
- クリア済み:再開
- 変更ステップタイムアウト:変更ステップのタイムアウト値を秒単位で指定します。タイムアウト時に、Jenkins は ServiceNow の変更ステップのステータスを確認します。変更ステップがまだ進行中の場合、[ 変更ステップタイムアウト時に中止 ] フラグに基づいてパイプラインが再開または中止されます。既定では、タイムアウトが指定され、[ 変更ステップのタイムアウト時に中止 ] フラグが選択されている場合、パイプラインは中止されます。注:フィールドに値が入力されていない場合、変更ステップのタイムアウトチェックはパイプラインを更新するために実行されません。
- 変更ステップのタイムアウト時に中止:変更ステップのタイムアウト時に変更ステップがまだ進行中の場合は、パイプラインを中止または再開します。
- 選択済み:中止
- クリア済み:再開
パイプラインのコンソールログに移動して、変更要求が作成されたとき、または変更要求のステータスが更新されたときの変更要求のステータスを表示できます。変更要求ステータスに関連付けられたポリシー条件も評価され、ログに表示されます。たとえば、DevOps 変更要求の高度な自動化ポリシーがアクティブ化されている場合、ポリシー条件が評価され、対応する決定 (自動承認/自動却下/手動承認) がログに表示されます。
次の変更要求の詳細が表示されます。
- 番号
- details
- ステータス
- sys_id
- type
- risk
- priority
- changeState
- plannedStartDate
- plannedEndDate
- 変更要求 URL
ポリシー条件のログは、ベースシステムの変更フローについて次のように表示されます。
- DevOps モデル変更ポリシー:変更の作成時および変更ステータスが更新されたときに、ログのみが表示されます。
- DevOps 変更要求最小自動化ポリシー:変更の決定および変更の決定に対応するポリシー条件とともにログが表示されます。
- DevOps 変更要求の高度な自動化ポリシー:変更の決定および変更の決定に対応するポリシー条件とともにログが表示されます。
変更ポリシーの入力と意思決定条件は、意思決定 [sys_decision_question] テーブルに保存されます。次のフィールドと演算子をポリシー条件の入力として使用すると、ログが表示されます。
- フィールド
- code_coverage
- commits_without_work_item
- integration_tests_failed
- load_tests_failed
- regression_tests_failed
- num_of_outages_in_last_7_days
- num_of_current_outages
- num_of_open_incidents
- total_num_of_commits
- tests_passing_percent
- risk
- code_security
- commits
- 演算子
- 次の値以下 (<=)
- 次の値以上 (>=)
- 次の値と異なる (!=)
- 次の値と等しい (=)
- <
- >
- ISNOTEMPTY
- ISEMPTY
- 次の間
- ANYTHING
- NSAMEAS
- SAMEAS
- GT_FIELD
- LT_FIELD
注:
ベースシステムフィールド以外の変更ポリシーでフィールドが変更された場合、ポリシー条件を評価するには、それらのフィールドをフローに手動で追加する必要があります。
問題が原因で変更要求が作成されない場合は、失敗の理由とステータスもコンソールに記録されます。