Notice
Recent Posts
Recent Comments
Link
Gom3rye
Jenkins 본문
728x90
반응형
샘플 프로젝트 생성
- item 이름 설정 > free style project > okay
- Build Steps 항목에서 Execute Shell 선택 > echo “Welcome to my first project using Jenkins.” 내용 작성 > 저장
- 지금 빌드를 눌러서 실행 > 결과는 빌드 성공한 항목을 클릭해서 확인 가능
- 실제 샘플 프로젝트의 위치 확인
- docker exec -it jenkins-server bash
- cd /var/jenkins_home/workspace
- ls 하면 drwxr-xr-x 2 jenkins jenkins 4096 Jul 18 00:26 'Hello World’ 나온다.
- cd ‘Hello World’
Jenkins Architecture
Master & Agent
- Jenkins를 운영하다 보면 예상보다 빠르게 과부하 현상이 나타나는 경우가 있는데 커밋을 자주 하는 팀에서 발생한다.
- 현재 Jenkins를 실행하고 있는 Master와 작업을 수해하는 Agent로 나누어서 실행하는 방식을 사용한다.
Jenkins CI/CD
Git 사용 설정
- git 플러그인이 설치되어야 한다.
- jenkins 관리 > Plugins > Installed Plugins 에서 확인, 없으면 설치
- git 관련 설정: jenkins 관리 > Tools > Git
- git 설치 확인
- docker exec -it jenkins-server bash
Gradle Project 생성 및 실행
- Gradle Project 생성 (Spring Boot 프로젝트 생성)
- 기본 패키지에 클래스를 추가하고 작성
@Service
public class CalculatorService {
int sum(int a, int b){
return a+b;
}
}
- 기본 패키지에 컨트롤러 클래스를 추가하고 작성
@RestController
public class CalculatorController {
@Autowired
private CalculatorService service;
@RequestMapping("/sum")
public String sum(@RequestParam("a") Integer a, @RequestParam("b") Integer b){
return String.valueOf(service.sum(a,b));
}
}
- 포트 변경: application.properties 파일에 작성
- server.port=9000
- 자바로 만든 프로젝트들은 대부분 톰켓 쓰는데 그 포트가 8080이고 우리는 이미 Jenkins로 8080 쓰고 있으니까
- server.port=9000
- 프로젝트 컴파일: ./gradlew compilejava
- 프로젝트 빌드: ./gradlew build
- 프로젝트 실행: ./gradlew bootRun
- 실행한 후 브라우저에서 localhost:9000/sum?a=값&b=값 의 형태로 확인할 수 있다.
- 프로젝트 패키징: ./gradlew jar
- github에 푸시하고 https://github.com/Gom3rye/calculator.git jenkins 프로젝트 만들기
Jenkins 작업
- Freestyle Project 만들기
- 소스 코드 관리에서 Git을 선택하고 Repository URL을 입력
- Build Step에서 Add build step > Execute shell
chmod +x ./gradlew
./gradlew compileJava
./gradlew clean build
- 빌드를 해서 에러가 없는지 확인
Maven Project 빌드
- Business logic을 구현할 때는 Template Method Pattern을 사용한다. 고객은 Interface만 보고 개발자가 Interface로 template을 작성하고 Class로 구현한다.
git init
git add .
git commit -m "maven project"
git remote add origin <https://github.com/Gom3rye/springmaven.git>
git push origin main
- Jenkins에 Maven 플러그인을 설치하고 tool 메뉴에서 maven을 찾아서 버전을 설정해준다.
- Jenkins에서 Maven Project를 생성해서 설정
Git hub WebHook을 이용한 업데이트
Git Hub에서 Access Token 발급
- workflow, admin:repo_hook 체크하기
- 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
Jenkins에서 git hub server 설정
- jenkins 관리 메뉴에서 system으로 가서 설정
- credential을 추가하는데 Kind를 Secret.txt로 선택하고 ID(깃헙 id)를 설정하고 Secret에 Access Token을 입력한다.
Jenkins의 Item에서 Triggers에서 GitHub hook trigger for GITScm polling 을 체크한다. (프로젝트/Configuration)
- 깃헙 레포 > 세팅 > **Webhooks / Add webhook > Payload URL:** https://jenkins설치된컴퓨터의IP:8080/Item이름(프로젝트이름)
- push가 되면 알려준다. (특정 이벤트(예: push, pull request, issue 생성)가 발생했을 때, 설정한 외부 서버(URL)에 자동으로 HTTP POST 요청을 보내 알려준다.)
pipeline
pipeline 시각화 플러그인 설치: Delivery Pipeline
- 프로젝트 작성 방법
- Declarative
- Scripted
- Scripted는 특정 Stage만 실행 가능하다.
- Scripted는 제어문 사용 가능하다.
- Scripted는 pipeline으로 시작하고 Declarative 방식은 node로 시작한다.
Declarative 방식으로 pipeline item을 생성
pipeline script 작성
node{
stage("Ready"){
sh "echo 'Ready'"
}
stage("Build"){
sh "echo 'Build Jar'"
}
stage("Deploy"){
sh "echo 'Deploy EC2'"
sh "echo 'Deploy AWS'" # stage안에 명령어 여러 개 넣어도 된다.
}
}

Scripted 방식으로 pipeline item을 생성
pipeline script 작성
pipeline{
agent any # 모든 agent에서
stages{
stage('Compile'){
steps{
echo "Compile"
}
}
stage('JUnit'){
steps{
echo "JUnit Test"
}
}
stage('Code Analysis'){
steps{
echo "코드 정적 분석"
}
}
stage('Deploy'){
steps{
echo "Deploy1"
}
}
}
}
⇒ stage안에 steps 여러 개 만들어도 되고 명령어를 여러 개 만들어도 되지만 그러면 따로 설정을 또 해줘야 한다.
728x90
반응형
'현대 오토에버 클라우드 스쿨' 카테고리의 다른 글
| Kubernetes Service, AWS EC2 (4) | 2025.07.22 |
|---|---|
| AWS (1) | 2025.07.21 |
| Git Hub Action & Jenkins (5) | 2025.07.17 |
| Git 협업 (2) | 2025.07.16 |
| Git (0) | 2025.07.15 |