Jenkins パイプラインログの ServiceNow DevOps 変更要求状況
Jenkins スニペットジェネレーターユーティリティを使用すると、変更状況と対応するポリシー条件を Jenkins パイプラインジョブログに表示する方法とタイミングを設定できます。これにより、開発者はパイプライン自体のコンソールログで変更の状況を確認できます。
ステップスニペットを生成するには、構成されたパイプラインからパイプライン構文に移動し、[サンプルステップ (Sample Step)] リストから [SnDevOpsChange] ステップを選択して、ステップ内の変更状況変数の値を更新します。エラーが発生してもジョブが失敗しないようにするには、[エラーを無視] オプションを選択します。[パイプラインスクリプトを生成 (Generate Pipeline Script)] を選択してスニペットを作成します。スニペットをコピーしてパイプラインに貼り付けると、状況変更通知の受信を開始できます。変更状況通知を受信するには、 [SnDevOpsChange] ステップで次の変数を更新します。
- ポーリング間隔:Jenkins が ServiceNow に変更ステータスをポーリングし、コンソールログをステータスで更新する頻度 (秒単位) を指定します。変更状況は、[変更状況の移行 (Change state transitions)]、[アサイン先グループの更新 (Assignment Group updates)]、[承認の更新 (Approval updates)]、[開始予定日/終了予定日 (Planned Start/End date)]、または [変更の詳細] (存在する場合) フィールドが更新されたときにのみ、コンソールログで更新されます。注:フィールドに値が入力されていない場合、コンソールログの変更ステータスを更新するためのポーリング間隔チェックは実行されません。
- 変更作成タイムアウト (Change Creation Timeout):変更作成タイムアウト値を秒単位で指定します。タイムアウト時に、Jenkins は ServiceNow で変更の作成ステータスを確認します。変更が作成されなかった場合、パイプラインは [変更の作成失敗時に中止 (Abort on change creation failure)] フラグに基づいて再開または中止されます。既定では、タイムアウトが指定され、[変更の作成失敗時に中止 (Abort on change creation failure)] フラグが選択されている場合、パイプラインは中止されます。注:フィールドに値が入力されていない場合、パイプラインを更新するための変更作成タイムアウトチェックは実行されません。
- 変更の作成失敗時に中止 (Abort on change creation failure):変更作成タイムアウトまでに変更が作成されない場合は、パイプラインを中止または再開します。
- 選択済み:中止
- クリア済み:再開
- 変更ステップタイムアウト (Change Step Timeout):変更ステップのタイムアウト値を秒単位で指定します。タイムアウト時に、Jenkins は ServiceNow で変更ステップのステータスを確認します。変更ステップがまだ進行中の場合、パイプラインは [変更ステップタイムアウト時に中止 (Abort on change step timeout)] フラグに基づいて再開または中止されます。既定では、タイムアウトが指定され、[変更ステップタイムアウト時に中止 (Abort on change step timeout)] フラグが選択されている場合、パイプラインは中止されます。注:フィールドに値が入力されていない場合、パイプラインを更新するための変更ステップタイムアウトチェックは実行されません。
- 変更ステップタイムアウト時に中止 (Abort on change step timeout):変更ステップが変更ステップタイムアウト時にまだ進行中の場合は、パイプラインを中止または再開します。
- 選択済み:中止
- クリア済み:再開
変更要求が作成されたとき、または変更要求の状況が更新されたときに、パイプラインのコンソールログに移動して、変更要求の状況を表示できます。変更要求の状況に関連付けられたポリシー条件も評価され、ログに表示されます。たとえば、DevOps 変更要求の高度な自動化ポリシーが有効になっている場合、ポリシー条件が評価され、対応する決定 (自動承認/自動却下/手動承認) がログに表示されます。
次の変更要求の詳細が表示されます。
- number
- details
- status
- sys_id
- type
- risk
- priority
- changeState
- plannedStartDate
- plannedEndDate
- changeRequestURL
ポリシー条件のログは、ベースシステム変更フローで次のように表示されます。
- 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
- BETWEEN
- ANYTHING
- NSAMEAS
- SAMEAS
- GT_FIELD
- LT_FIELD
注:
変更ポリシーでベースシステムフィールド以外のフィールドが変更された場合、ポリシー条件を評価するには、それらのフィールドをフローに手動で追加する必要があります。
何らかの問題が原因で変更要求が作成されなかった場合は、失敗の理由と状況もコンソールに記録されます。