파이프라인의 Jenkins 중첩 및 병렬 스테이지

  • 릴리스 버전: Yokohama
  • 업데이트 날짜 2025년 01월 30일
  • 읽기4분
  • 스크립팅된 Jenkins 파이프라인에서 중첩 및 병렬 스테이지를 사용하여 파이프라인 실행 속도를 높입니다. 변경 요청은 상위 스테이지뿐만 아니라 중첩 및 병렬 스테이지에 대해 생성됩니다.

    파이프라인의 Jenkins 중첩 및 병렬 스테이지 지원

    스크립팅된 Jenkins 파이프라인에서 중첩 스테이지 및 병렬 스테이지를 사용하여 병렬로 실행할 수 있는 작업을 자동화하고 속도를 높일 수 있습니다. 예를 들어 다양한 테스트 케이스(예: 다양한 운영 체제 및 브라우저에 대한 다양한 품질 검사)에 대한 중첩 및 병렬 스테이지가 있는 스크립팅된 Jenkins 파이프라인이 있습니다.

    ServiceNow DevOps 는 파이프라인에서 Jenkins 병렬 및 중첩 스테이지 처리를 지원하고 파이프라인 UI에 DevOps 파이프라인을 표시합니다. 실제로 파이프라인 UI는 ServiceNow DevOps 파이프라인 UI를 Jenkins 실시간으로 렌더링하거나 복제합니다. 관련 파이프라인의 파이프라인 실행 뷰에서 파이프라인 UI 관련 링크를 클릭하여 파이프라인의 실시간 상태를 볼 수 있습니다 Jenkins. 빌드 파이프라인, 테스트 결과, 소프트웨어 품질 요약 결과 및 변경 요청 세부 정보에서 제공되는 연결된 아티팩트 세부 정보가 파이프라인 UI에 표시됩니다.
    중요사항:
    병렬 및 중첩 스테이지에 대한 지원은 의 Jenkins스크립팅된 파이프라인으로 제한됩니다. 자유형 파이프라인은 병렬 및 중첩 스테이지가 에서 Jenkins자유형 파이프라인의 일부인 경우에도 파이프라인 UI에 DevOps 순차적 또는 순차적으로 계속 표시됩니다.
    그림 1. 중첩 또는 병렬 스테이지가 있는 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되지 않았습니다. 상위 스테이지만 선형 또는 순차적 방식으로 식별되고 처리되었습니다. 변경 요청이 중첩 및 병렬 스테이지의 일부로 존재하는 경우 이러한 변경 요청은 무시되고 단일 변경 요청이 상위 스테이지의 일부로 처리되었습니다. 업그레이드 후 새 파이프라인을 실행하면 중첩된 스테이지에 대해 새 단계 및 단계 실행이 생성됩니다.

    중첩 및 병렬 스테이지는 이전에 처리되지 않았으며 승인 그룹은 상위 스테이지에만 매핑되었습니다. 처리 중에 중첩 및 병렬 스테이지가 식별되기 때문에 관련 승인 그룹이 적절한 중첩 또는 병렬 스테이지에 매핑되는지 확인해야 합니다. 파이프라인의 후속 단계가 변경 요청의 승인 여부에 종속되는 경우 파이프라인 실행이 일시 중지 되고 변경 요청이 승인되면 다시 시작됩니다.

    업그레이드 고려 사항

    중첩 및 병렬 파이프라인을 오케스트레이션 도구로 이미 사용하고 Jenkins 있는 경우 업그레이드 시 다음 사항을 고려하십시오.
    • 사용량이 적은 시간에 업그레이드하십시오.
    • 에서 현재 진행 ServiceNow DevOps중인 파이프라인 실행이 없는지 확인합니다. 파이프라인 실행이 처리 중인 경우 진행 중인 파이프라인 실행에 대해 단계 실행이 예상대로 생성되지 않을 수 있습니다. 파이프라인을 다시 실행하여 적절한 단계 실행을 생성합니다.