에서 선언적 또는 스크립팅된 파이프라인 사용 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 변경 속도에 해당하는 단계에서 검색됩니다.
파이프라인에 JenkinsconfigurationName 속성을 전달하여 이러한 단계에서 서버 구성을 지정할 수 있습니다. 어떤 단계에도 구성 이름이 지정되어 있지 않으면 해당 단계에서 기본 구성이 사용됩니다. 잘못된 구성 이름을 전달하면 플러그인을 구성하는 Jenkins 동안 ServiceNow DevOps 오류 무시 옵션을 선택하지 않으면 단계가 실패합니다.
Jenkins 용 스니펫 생성기 DevOps
- SnDevOpsArtifact
- SnDevOpsChange
- SnDevOps패키지
- 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병렬 및 하위 스테이지 지원
스테이지(또는 병렬 스테이지 세트)가 파이프라인 스테이지 내에 중첩되면 다음 규칙이 적용됩니다.
- 중첩된 단계의 모든 작업은 상위 루트 수준 단계의 일부로 처리됩니다
- 상위 루트 수준 단계 아래에 중첩된 여러 스테이지가 변경을 트리거하더라도 하나의 변경 요청만 생성됩니다(상위 루트 수준에서).
- 생성된 오케스트레이션 작업은 항상 상위 루트 수준 스테이지(중첩된 스테이지가 아님)와 연결됩니다.
하위 스테이지
이 하위 스테이지 예에서 변경 요청이 하위 스테이지(프로덕션 배포)에서 생성되면 상위 루트 수준 스테이지(배포)의 세부 정보가 변경 요청에 사용되며 오케스트레이션 작업도 상위 루트 수준 스테이지(배포)와 연결됩니다.
stage("deploy") {
stages{
stage('deploy UAT') {
when{
branch 'dev'
}
stage('deploy PROD') {
when {
branch 'master'
}
steps{
snDevOpsChange()
}
}
}
병렬 스테이지
이 병렬 스테이지 예에서는 하위 스테이지(UAT 테스트-1 및/또는 UAT 정적 코드 테스트)에서 변경 요청을 만들면 두 하위 스테이지(UAT 테스트-1 및 UAT 정적 코드 테스트)가 트리거되는지 여부에 관계없이 첫 번째 변경 요청만 만들어집니다(상위 루트 수준 스테이지인 UAT 테스트의 상세 정보를 사용).
변경을 생성한 병렬 스테이지에 대한 표시가 없으며 오케스트레이션 작업은 상위 루트 수준 스테이지(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
}
}
}
}