Jenkinsパイプラインのネストされたステージと並列ステージ
スクリプト化された Jenkins パイプラインでネストされた並列ステージを使用して、パイプラインの実行を高速化します。変更要求は、親ステージだけでなく、ネストされたステージと並列ステージに対して作成されます。
Jenkinsパイプラインでのネストされたステージと並列ステージのサポート
スクリプト化された Jenkins パイプラインでネストされた並列ステージを使用して、並列実行できるタスクを自動化および高速化できます。たとえば、オペレーティングシステムやブラウザごとに異なる品質チェックなど、さまざまなテストケースのネストされた並列ステージを持つスクリプト化された Jenkins パイプラインがあるとします。
pipeline {
agent any
stages {
stage('Build') {
steps {
echo 'Building...'
// Your build steps here
}
}
stage('Test') {
parallel {
stage('Unit Tests') {
steps {
echo 'Running unit tests...'
// Your unit test steps here
}
}
stage('Integration Tests') {
steps {
echo 'Running integration tests...'
// Your integration test steps here
}
}
stage('Additional Tests') {
steps {
script {
parallel(
'Nested Stage 1': {
echo 'Running nested parallel stage 1...'
// Your nested parallel stage 1 steps here
},
'Nested Stage 2': {
echo 'Running nested parallel stage 2...'
// Your nested parallel stage 2 steps here
}
)
}
}
}
}
}
stage('Deploy') {
steps {
echo 'Deploying...'
snDevOpsChange changeRequestDetails: '{ "attributes": {"chg_model": "e55d0bfec343101035ae3f52c1d3ae49","standard_change_template"="563504cc47410200e90d87e8dee490e2"},"autoCloseChange": false}',changeStepTimeOut: 18000, pollingInterval: 60
// Your deploy steps here
}
}
}
}
ネストされたステージと並列ステージの変更要求
(変更要求の前に) すべてのアップストリームイベントが受信されると、ネストされたすべてのステージと並列ステージに対して変更要求が作成されます。以前のリリースでは、 Jenkins パイプラインのネストされたステージまたは並列ステージは、 ServiceNow DevOpsで識別も処理もされませんでした。親ステージのみが識別され、直線的または順次的に処理されました。変更要求がネストされた並列ステージの一部として存在する場合、それらの変更要求は無視され、単一の変更要求が親ステージの一部として処理されました。アップグレード後に新しいパイプラインを実行すると、ネストされたステージに対して新しいステップとステップ実行が作成されます。
ネストされたステージと並列ステージは以前は処理されておらず、承認グループは親ステージにのみマッピングされていました。ネストされたステージと並列ステージは処理中に識別されるため、関連する承認グループが適切なネストされたステージまたは並列ステージにマッピングされていることを確認する必要があります。パイプラインの後続のステップが変更要求の承認に依存している場合、パイプラインの実行は一時停止され、 変更要求が承認されると再開されます。
アップグレードに関する考慮事項
- ピーク時間外にアップグレードしてください。
- ServiceNow DevOps別に現在進行中のパイプライン実行がないことを確認します。パイプライン実行が処理されている場合、進行中のパイプライン実行に対してステップ実行が期待どおりに作成されないことがあります。パイプラインを再実行して、適切なステップ実行を作成します。