Jenkins pipeline (Declarative pipeline)

Jenkins pipeline을 사용해서 여러 단계의 테스트 및 빌드, 배포, 반복 작업 등을 할 수 있음

용어

pipeline

  • 애플리케이션의 빌드, 테스트 및 배포 단계를 포함하는 전체 빌드 프로세스 정의
  • 선언형 파이프라인 구문의 핵심 부분이며, 시작 지점에 선언해야 함
pipeline {  }

node

  • 스크립트형 파이프라인 구문의 핵심 부분이며, 시작 지점에 선언해야 함
  • 스크립트형 파이프라인 구문이므로, 생략.
node {  }

stage

  • 전체 파이프라인 단계를 통해 수행되는 작업의 하위 집합
  • 전체 파이프라인의 흐름에서 특정한 시점에 실행이 필요한 것들을 묶을 수 있음
  • 선언형과 스크립트형 파이프라인에 모두 사용

step

  • 단일 작업
  • 특정 시점에서 수행할 작업을 알려줌
  • 선언형과 스크립트형 파이프라인에 모두 사용

예시

pipeline {
    agent any
    options {
        skipStagesAfterUnstable()
    }

    stages {
        stage('Build') { // 하나의 stage 안에 각 step에서 수행할 작업을 알려줌
            steps {
                echo 'Building...'
                // build 수행하는 명령어
            }
        }
        stage('Test') {
            steps {
                echo 'Testing...'
                // test 수행하는 명령어
            }
        }
        stage('Deploy') { 
            steps {
                echo 'Deploying...'
                // deploy 수행하는 명령어
            }
        }
    }
}

agent

  • 파이프라인에 대한 수행 및 작업 공간 할당
  • agent 키워드 반드시 사용해야 함
  • any : 사용가능한 어떤 agent를 써도 좋음
  • none : agent를 할당하지 않음. pipeline 블록에 사용할 경우, 각 단계마다 agent 명시해주어야 함
  • label : 제공된 label을 이용해 파이프라인 실행
agent {
	label 'my-defined-label'
}

 

  • docker : Docker Registry 사용 및 Dockerfile 사용 가능
  • kubernetes : k8s 클러스터에 배포된 파드 내부에서 pipeline 실행

 

 

 

참고

https://lovethefeel.tistory.com/95

https://jayy-h.tistory.com/32

https://dev-gorany.tistory.com/339

'기타' 카테고리의 다른 글

Unit test - Test Double과 Mockito  (0) 2023.03.01
HTTP 상태 코드  (0) 2022.12.29
Jira로 협업하기 - 용어 정리  (0) 2022.12.08
정규표현식(Regex)에 대해 알아보자 - 문자클래스  (0) 2022.10.12