📂 젠킨스의 작업
- 젠킨스 프로젝트
- 젠킨스에게 무엇을 언제 해야 하는지를 지시하는 일련의 명령 집합
어떤 종류의 작업을 구성하든 다음 세가지 유형의 지시 사항이 포함되어야 한다.
1. 작업을 수행하는 시점(트리거)
- 사용자는 작업에서 수행할 태스크가 언제 시작될지를 젠킨스에게 지시할 수 있다. (= 젠킨스 트리거)
2. 작업을 구성하는 단계별 태스트(빌드 스탭)
- 사용자는 특정 목표를 수행하기 위한 태스크를 단계별로 구성할 수 있다.(= 젠킨스 빌드 스텝)
- 빌드스텝에서는 간단한 배치 명령을 실행할 수 있다.
3. 태스트가 완료 후 수행할 명령(포스트-빌드액션)
- 사용자는 태스크 실행이 완료된 후에 젠킨스가 수행할 작업을 구성할 수 있다.
- 작업의 결과를 사용자에게 알려주는 후속 동작이나, 자바 코드를 컴파일한 후 생성된 클래스 파일을 특정 위치로 복사하는 동작 등이 있다.
📂 젠킨스의 빌드
사용자는 젠킨스 작업을 여러번 실행할 수 있는데, 실행될 때마다 고유한 빌드 번호가 부여된다.
작업 실행 중에 생성된 아티팩트, 콘솔 로그 등 특정 실행 버전과 관련된 모든 세부 정보가 해당 빌드 번호로 저장된다.
💡 젠킨스 프리스타일 작업
젠킨스에서는 필요에 따라 파이프라인 작업이나 프리스타일 작업등과 같은 다양한 유형의 작업을 만들 수 있다.
그중 프리스타일 작업은 일반적인 형태의 빌드 작업이라 할 수 있다.
이를 통해 일반적으로 테스트 실행, 애플리케이션 빌드 및 패키징, 보고서 전송 같은 간단한 작업을 할 수 있다.
📂 젠킨스의 작업 생성
- Dashboard New Item > FreeStyle project

📂 젠킨스의 작업 구성
- Dashboard 작업 > General
- 설명: 작업에 대한 설명이나 목적을 입력한다.

- 오래된 빌드 삭제 : 빌드는 젠킨스 작업의 특정한 실행 버전을 의미하며, 콘솔 출력이나 실행 후 생성된 아티팩트 등을 모두 포함한다. 빌드 내역을 삭제할 시기를 결정하는 옵션에는 두 가지가 있다.
- Build Age(빌드 기간): 빌드 후 지정된 날짜가 지나면 삭제한다.
- Build Count (빌드 횟수): 지정된 빌드 개수를 초과하면 가장 오래된 빌드를 삭제한다.
- 오래된 빌드 삭제 항목에서는 기본 설정된 제한 값은 최대 14일, 50개의 빌드까지 유지하는 것이다.
- 제한 값을 초과하면 가장 오래된 빌드가 삭제된다.
- 이 옵션을 활성화하고, 적절한 값을 입력하는 것은 디스크 공간을 절약하는 데 있어 중요하다.
- 해당 옵션을 활성화하면 아래처럼 두 가지 옵션을 설정하는 메뉴가 나타난다.
- 빌드 이력 유지 기간(일) : 빌드를 삭제하기 전에 유지할 기간을 입력한다.
- 보관할 최대 개수: 빌드를 유지할 최대 빌드 수를 지정한다.
여기서 고급을 클릭하면 필드가 더 나타난다

- 산출물 보관 일수 : 빌드 아티팩트를 유지할 기간을 정할 수 있다.
- Max # of builds to keep with artifacts (아티팩트 포함 빌드 유지 최대 개수) : 개수를 설정한 최신 빌드에 설정된 개수의 아티팩트가 유지된다.
빌드 아티팩트란
해당 작업을 실행한 후 생성되는 출력된 모든 산출물을 말한다.
예를 들어, 자바 애플리케이션을 컴파일하고 .jar 파일을 생성하는 작업이라면, .jar 파일이 해당 작업의 애티팩트가 된다.
💡매개변수형 프로젝트
- 외부 입력을 받아야하는 작업이 있다면 "이 빌드는 매개변수가 있습니다" 체크박스를 선택한다.

💡 프로젝트 비활성화

💡동시 빌드 진행
기본적으로 작업 실행은 한 번에 하나씩만 가능하다. 작업 실행 버튼을 여러 번 클릭하면 현재 실행 중인 작업이 완료될 때까지 대기열에 추가되는 방식이다.
이러한 기본 실행 방식은 작업을 수행하는 데 있어 디렉터리와 파일들에 대해 독점 권한을 갖는 것이 중요할 때 사용된다.
그러나 빌드를 병렬로 실행하고 싶다면 '필요한 경우 concurrent 빌드 실행' 옵션을 선택해야 한다.
이 옵션은 독립적인 여러 단계로 분리될 수 있는 긴 빌드 프로세스를 실행할 때 유용하다. 즉, 긴 빌드 프로세스의 여러 단계를 병렬로 시작하면 전체 작업 시간을 상당히 줄일 수 있다.

💡대기 시간
- Quiet period 옵션을 선택하면 새로운 빌드가 즉시 시작되지 않는다. 빌드 큐에 추가되고 지정된 시간이 지나야 빌드가 시작된다. 이 옵션은 여러 개의 코드 커밋을 모아서 수행할 때 유용한 기능이다.

💡재시도 회수
재시도 횟수 옵션이 설정되지 않은 상태에서 소스 코드 관리 시스템을 사용하도록 작업을 구성했다면, 첫 번째 체크아웃 시도가 실패하자마자 바로 작업 실패로 처리된다.
하지만, 이 옵션을 사용하면 작업 실패로 표시하기 전에 몇 번 더 체크아웃을 시도할지를 정할 수 있다.
예를 들어, 소스 코드 형상관리 체크아웃 반복 횟수에 값을 3으로 지정하면 젠킨스는 체크아웃을 3번 시도하며 재시도 사이의 시간 간격은 10초이다.

💡업 스트림 프로젝트가 빌드 중일때 빌드 차단
작업A에서 생성된 아티팩트가 작업B의 작업에 사용되도록 2개의 작업을 구성할 수 있다. 즉 작업B를 작업A에 종속되게 구성하는 것이다. 옵션을 선택하면, 업스트림 프로젝트가 빌드 큐에 있을 때 젠킨스가 이 작업을 실행하지 않는다.
💡다운스트림 프로젝트가 빌드 중일때 빌드 차단
옵션을 선택하면, 다운스트림 프로젝트가 빌드 큐에 있을 때 젠킨스가 이 작업을 실행하지 않는다.
💡커스텀 워크스페이스 사용
워크스페이스는 빌드가 실행되는 디렉터리를 말한다.
젠킨스 작업이 소스코드를 리포지터리에서 체크아웃하는 경우에 이 디렉터리를 사용한다.
빌드가 시작되면 기본적으로 ${JENKINS_HOME}\workspace 폴더에 실행 중인 작업의 이름으로 워크스페이스 디렉터리가 생성된다.
💡표시 이름 지정
필드에 저장한 이름이 젠킨스 웹 화면 전쳉 프로젝트 이름으로 표시된다.
💡 의존성 빌드 로그 유지
옵션을 선택하면 현재 작업과 관련된 모든 빌드가 로그 순환 기능에서 제외된다.
로그 순환은 젠킨스의 빌드 로그를 자동으로 압축하고 삭제하는 기능이다.

💡소스코드 관리
깃 플러그인이 설치된 경우에만 나타나며, 신규 소프트웨어 빌드를 새성하는 젠킨스 작업은 중앙 리포지터리로 커밋된 최신 코드에서 작동한다.
그러므르 젠킨스가 최신 코드를 다운로드해 빌드할 수 있도록 깃 코드 리포지터리 URL에 이 필드를 추가해야 한다.
리포지터리URL에 입력된 주소는 내 공개 리포지터리 주소이다. 공개 깃 리포지터리는 인증이 필요없다.
그러나 개인 리포지터리의 경우에는 일반적으로 깃 리포지터리 구성에 필요한 사용자 이름, 비밀번호등 같은 인증번호를 제공해야한다.
그렇지 않으면 오류가 발생하고, 해당 오류를 해결하려면 필수 인증 번호를 갖는 Global 유형의 자격 증명을 생성해야 한다.
Global 유형의 자격 증명을 생성하고, Credentials에서 선택하게 되면 에러 메시지가 표시되지 않는다.

add에서 jenkins 옵션을 클릭하면 아래와 같은 자격증명 추가 팝업이 뜬다.

💡빌드 브랜치
기본적으로 젠킨스 작업은 마스터 브랜치를 기준으로 변경 사항을 확인하고, 원격 레포 브랜치에서 코드를 다운로드한다.
하지만, 다른 브랜치를 지정하고 싶다면 Branches to build에서 새로운 브랜치의 이름을 지정하면 된다.

💡 빌드 트리거
Triggers 섹션 내의 설정 값을 사용하여 젠킨스에서 작업에 착수하는 시점을 설정할 수 있다.
💡 원격빌드 트리거
깃 리포지터리 같은 외부 서비스에서 젠킨스 작업을 시작할 수 있다.
즉, 개발자가 코드를 마스터 브랜치에 병합하면 젠킨스 작업이 시작되는 경우를 말한다.
💡 다른 프로젝트 빌드 완료 후 빌드 시작 (Build after other projects are built)
해당 옵션은 다른 작업을 완료한 후, 다른 작업을 시작하고 싶을 때 선택한다.
아래 옵션을 사용해 의존성 작업 상태에 따른 작업 시작 여부를 구성할 수 있다.
Trigger only if build is stable : 빌드가 안정한 경우에만 시작
Trigger even if the build is unstable : 빌드가 불안정한 경우에도 시작
Trigger even if the build fails : 빌드가 실패해도 시작
Always trigger, even if the build is aborted
💡정기빌드 (Build periodically)
해당 옵션을 사용하면 매일, 매월, 매주 같은 특정 시간과 간격에 따라 빌드를 시작할 수 있다.
즉, 윈도우의 작업 스케쥴러나 유닉스 시스템의 크론잡과 같은 기능을 제공하는 것이다.
그러나 작업을 특정시간에 주기적으로 시작하는 것은 CI/CD원칙에 부합하지 않는다.
CI/CD에서는 코드 변경이 발생하는 즉시 빌드가 진행되고 그 결과를 피드백하는 방식이기 때문이다.
그러므로 해당 기능이 유용한 경우는 애플리케이션이 빌드돼 테스트 환경에 배포된 후 테스트를 실행하는 작업을 시작하는 경우라 할 수 있다.
옵션을 선택하면 일정을 입력하는 텍스트 박스 나타나며, 여러에 일정을 크론 표현식으로 입력할 수 있다.
크론 표현식 : MINUTE HOUR DOM MONTH DOW
매월 매일 모든 요일마다 오전 8시 45분에 실행된다.
45 8 * * *
💡폴 SCM
젠킨스가 SCM섹션에 지정한 URL에 있는 소스코드의 변경여부를 확인하는 시간 간격

💡빌드스텝
1개 이상의 단계를 하나씩 실행하는 식으로 현재 작업에 할당된 태스크를 수행할 때 사용한다.
스텝은 배치 파일을 실행할 수도 있고, 다른 빌드 도구를 실행하는 것일 수도 있다.
예를 들어, 윈도우 터미널의 명령을 실행하는 스텝을 추가한다면 Add build Step > Execute Windows batch command 옵션을 선택한다. 그리고 명령어 필드에 터미널 명령어를 추가해 주면 된다.

💡포스트-빌드 액션
할당된 태스크가 완료된 이후에 수행하려는 작업이 있을때 사용한다.
예를 들어, 작업 완료 후 이메일 알림을 보내는 작업이 대표적이다.
액션을 추가려면 Add Post-Bulid Action옵션을 클릭한 후, 필요한 옵션을 선택한다.

📂 작업 실행 및 결과 확인
젠킨스에서 작업이 생성, 구성, 저장될때마다 작업 결과가 대시보드에 표시된다.
특정 작업을 수동으로 실행하고싶다면 작업 항목의 실행아이콘을 클릭하면, 빌드 실행 상태를 확인할 수 있다.

빌드 내역링크를 클릭하면 빌드 실행 결과를 확인할 수 있다.


📂 워크스페이스 보기
특정 작업의 워크스페이스를 보고 싶다면 대시보드에서 작업항목을 클릭하면 확인 가능하다.

'Study > 젠킨스로 배우는 CI,CD 파이프라인 구축' 카테고리의 다른 글
| 젠킨스로 배우는 CI/CD 파이프라인 구축 - 깃과 깃랩 (0) | 2025.07.06 |
|---|---|
| 젠킨스로 배우는 CI/CD 파이프라인 구축 - 메이븐으로 프로젝트 준비 (0) | 2025.07.06 |
| 젠킨스로 배우는 CI/CD 파이프라인 구축 - 사용자 관리 (0) | 2025.06.15 |
| 젠킨스로 배우는 CI/CD 파이프라인 구축 - 젠킨스 자격증명 관리 (0) | 2025.05.25 |
| 젠킨스로 배우는 CI/CD 파이프라인 구축 - 젠킨스 보안관리 구성 (1) | 2025.05.25 |
