Jenkins란?
Jenkins는 오픈 소스 자동화 서버로, 주로 **지속적 통합(CI)** 과 **지속적 배포(CD)** 작업을 자동화하는 데 사용됩니다.
다양한 플러그인과 확장성 덕분에 다양한 개발 파이프라인을 관리할 수 있습니다.
Jenkins의 주요 특징
자동화된 빌드 및 테스트: 코드가 커밋될 때마다 자동으로 빌드하고 테스트하여 빠르게 문제를 발견할 수 있습니다.
플러그인 확장성: 다양한 플러그인을 사용하여 CI/CD 파이프라인을 확장하고 설정할 수 있습니다.
분산 빌드: 여러 머신을 사용하여 빌드를 분산시킬 수 있습니다.
멀티 플랫폼 지원: Windows, Linux, macOS 등 다양한 플랫폼에서 실행 가능합니다.
Jenkins 파이프라인
파이프라인 정의: Jenkins 파이프라인은 여러 단계의 빌드, 테스트, 배포 등을 자동화하는 프로세스입니다.
Jenkinsfile: 파이프라인을 코드로 정의할 수 있는 방법입니다. Groovy 언어를 사용하여 파이프라인을 작성합니다.
작업(Job)
Jenkins에서 실행할 개별 작업을 "Job"이라고 부릅니다. 각 Job은 빌드, 테스트, 배포 등의 작업을 수행합니다
Jenkins와 Gitlab을 연동하기 위한 순서는 다음과 같다.

Jenkins에서 새로운 Item 만들기(Pipeline으로)
Jenkins에서 해당 Item의 Configure 설정


루트 디렉토리에 Jenkinsfile 작성
GitLab에 커밋 시 Jenkins 빌드 확인 - 끝
Declarative vs Scripted 파이프라인
Declarative Pipeline: 선언적 방식으로 파이프라인을 작성하는 방법입니다. 비교적 직관적이며 코드 가독성이 좋습니다.
Scripted Pipeline: Groovy 스크립트를 이용한 유연한 파이프라인 작성 방법입니다.
파이프라인
파이프라인(Jenkinsfile) :
Groovy // mkdir로 확인하기
pipeline {
agent any
triggers {
gitlab(
// test 브랜치에 대한 푸시 이벤트만 트리거
branchFilterType: 'NameBasedFilter',
includeBranchesSpec: 'test'
)
}
stages {
stage('Basic Echo') {
steps {
echo 'Hello, Jenkins!'
}
}
}
post {
success {
echo 'Directory creation successful!'
}
failure {
echo 'Directory creation failed!'
}
}
}