で宣言型パイプラインまたはスクリプト化されたパイプラインを使用する DevOps
Jenkinsfile を使用すると、ステップは手動ではなく自動的に作成、マッピングされ、オーケストレーションタスクに関連付けられます。
Jenkinsfile は、 Jenkins パイプラインの定義を含むテキスト ファイルであり、ソース管理にチェックインされます。
Jenkinsfile で構成された各ルートレベルのステージは、個々のステップにマッピングされた DevOps 内の個別のオーケストレーションタスクとして検出されます。
DevOps Jenkinsfile コマンド
- snDevOpsChange(ignoreErrors:{true/false},changeRequestDetails:{setCloseCode:{true/false},attributes:})
ここで、ignoreErrors は、エラー (true/false) が発生した場合にジョブの失敗を防ぐ設定を指定します
ここで 、changeRequestDetails は、パイプライン内の クローズコードと変更要求フィールド を指定します
DevOpsステップにマッピングされている各ルートレベルステージの変更管理を有効にします。
- snDevOpsアーティファクト
アーティファクトとパッケージを構成するときにアーティファクトを登録します。
- snDevOpsパッケージ
アーティファクトとパッケージの構成時にアーティファクトのパッケージを作成します。
- snDevOpsGetChangeNumber
特定の変更の詳細に基づいて、Jenkins パイプラインの変更要求番号を取得します。
- snDevOpsUpdateChangeInfo
Jenkins パイプラインに関連付けられた変更要求の詳細を更新します。
- snDevOpsSecurityResult
パイプラインの任意のステージでセキュリティスキャンを構成し、スキャンの詳細は対応するステージから DevOps 変更速度管理に取得されます。
パイプラインで configurationName 属性を渡すことで、これらの手順のいずれかで Jenkins サーバー構成を指定できます。構成名がどのステップでも指定されていない場合は、そのステップでデフォルト構成が使用されます。Jenkins プラグインの構成中に [ServiceNow DevOps エラーを無視する] オプションを選択しない限り、誤った構成名を渡すとステップは失敗します。
Jenkins のスニペットジェネレーター DevOps
- SnDevOpsArtifact
- SnDevOpsChange
- SnDevOpsPackage
- snDevOpsGetChangeNumber
- snDevOpsUpdateChangeInfo
- snDevOpsSecurityResult
snDevOpsChange changeCreationTimeOut: 3600, changeRequestDetails: '{ "attributes": { "short_description": "Test description", "priority": "1", "start_date": "2021-02-05 08:00:00", "end_date": "2022-04-05 08:00:00", "justification": "test justification", "description": "test description", "cab_required": true, "comments": "This update for work notes is from jenkins file", "work_notes": "test work notes", "assignment_group": "a715cd759f2002002920bde8132e7018" }, "setCloseCode": false, "autoCloseChange": true }', changeStepTimeOut: 18000, configurationName: 'Jenkins1', pollingInterval: 60並列およびサブステージのサポート
ステージ (または並列ステージのセット) がパイプライン ステージ内で入れ子になっている場合、次の規則が適用されます。
- ネストされたステージのすべてのアクションは、親ルートレベルステージの一部として処理されます
- 親ルートレベルのステージの下にネストされた複数のステージが変更をトリガーした場合でも、(親ルートレベルで) 1 つの変更要求のみが作成される
- 作成されたオーケストレーションタスクは、(ネストされたステージではなく) 常に親ルートレベルのステージに関連付けられます
サブステージ
このサブステージの例では、変更要求がサブステージ (展開 PROD) から作成された場合、親ルートレベルステージ (展開) の詳細が変更要求で使用され、オーケストレーションタスクも親ルートレベルステージ (展開) に関連付けられます。
stage("deploy") {
stages{
stage('deploy UAT') {
when{
branch 'dev'
}
stage('deploy PROD') {
when {
branch 'master'
}
steps{
snDevOpsChange()
}
}
}
パラレルステージ
この並列ステージの例では、変更要求がサブステージ (UAT test-1 および/または UAT 静的コードテスト) から作成された場合、両方のサブステージ (UAT test-1 と UAT 静的コードテスト) がトリガーされるかどうかに関係なく、最初の変更要求のみが (親ルートレベルステージ、UAT test の詳細を使用して) 作成されます。
どの並列ステージが変更を生成したかは示されず、オーケストレーション タスクは親ルート レベル ステージ (UAT テスト) に関連付けられます。
stage('UAT test') {
parallel {
stage('UAT test-1') {
steps {
snDevOpsChange()
// 'UAT test-1' tasks
}
post {
success {
// post success tasks. E.g.: junit '**/target/surefire-reports/*.xml'
}
}
}
stage('UAT static code test') {
steps {
snDevOpsChange()
// 'UAT static code test' tasks
}
}
}
}