jenkins

박진선·2024년 6월 17일
0

Pipeline

파이프라인이란 CI/CD 파이프라인을 젠킨스에 구현하기 위한 일련의 플러그인들의 집합이자 구성이다.
즉 여러 플러그인들을 이 파이프라인에서 용도에 맞게 사용하고 정의함으로써 파이프라인을 통해 서비스가 배포된다.
두 가지 형태의 Pipeline Syntax가 존재한다.
Declarative 또는 Scripted 두가지 타입을 사용하여 작성이 가능하다.

Declarative Pipeline 이 더 최근에 개발된 기능이기 때문에 Scripted Pipeline 보다 더 많은 구문 기능을 제공하고 Pipeline code를 더 읽기 쉽도록 설계됐다.
두가지 모두 groovy DSL을 기반으로 동작한다.

jenkins는 수행되던 job이 종료되면 job 수행과정에서 호출한 자식 프로세스를 모두 kill 하는 특징이 있어, job수행과정에서 기동 시킨 was프로세스도 kill 시키는데 환경변수 JENKINS_NODE_COOKIE=dontKillMe 세팅하면 된다.

Conditions 종류

post

파이프라인 또는 개별 스테이지의 실행이 완료된 후 실행되는 추가 단계를 정의하는 데 사용한다.
아래의 condition 설정을 통해 실행 조건을 설정할 수 있다.

always
Pipeline 또는 stage 실행 결과와 상관없이 항상 실행한다.

changed
현재 Pipeline의 실행이 이전 실행과 완료 상태가 다른 경우에만 실행한다.

fixed
현재 Pipeline의 실행이 성공적이고 이전 Pipeline 실행이 실패했거나 불안정한 경우에만 실행한다.

regression
현재 Pipeline의 실행이 실패하거나 불안정하고 이전 파이프라인 실행이 성공했을 경우 실행한다.

aborted
현재 Pipeline의 실행 상태가 aborted(수동 중단) 인 경우에만 실행한다.

failure
현재 Pipeline의 실행 상태가 FAILURE 인 경우에만 실행한다.

success
현재 Pipeline의 실행 상태가 success 인 경우에만 실행한다.

unstable
현재 Pipeline의 실행 상태가 unstable 인 경우에만 실행한다.
대개 테스트 실패, 코드 이상 등 일 경우 unstable 된다.

unsuccessful
현재 Pipeline 또는 stage 실행 상태가 success 가 아닐 경우에만 실행한다.

cleanup
현재 Pipeline 또는 stage 실행 상태에 상관없이 다른 post를 실행 후에 마지막에 실행한다.

environment

빌드 과정에서 사용할 환경 변수를 설정하는 데 사용한다.

pipeline 블록 또는 stage 블록 내에서 정의할 수 있는데 파이프라인 수준에서 정의된 환경 변수는 모든 스테이지에서 사용할 수 있으며, 스테이지 수준에서 정의된 환경 변수는 해당 스테이지 내에서만 유효하다.

깃허브 젠킨스 연동

Dashboard -> Jenkins 관리 -> System -> GitHub -> Credentials 에는 GitHub api 를 허용하기위한 credentials 를 등록하는 것이다. secret text 방식만 허용한다.

Dashboard -> 생성한 프로젝트 -> Configuration -> 소스 코드 관리 -> Credentials 에는 job 에서 github repository 에 접근하기 위한 credential 을 등록하는 것이다.
Username with password 방식만 허용한다.

profile
주니어 개발자 입니다

0개의 댓글