본문 바로가기

Docker,Jenkins

JenkinsFile로 pipeline 구축

728x90

파이프라인을 만드는방식 

3가지 

  • WEB UI를 통해서 Job 구성에서 직접 스크립트 코드 작성
  • SCM을 이용해서 Jenkinsfile 에 스크립트 코드 작성 - github에 jenkinsfile을 만들어 두고 그걸 땡겨와서 젠킨스가 실행
  • Blueocean 플러그인으로 UI를 통해서 스크립트 코드 작성 - github에서 관리

이중에서 내가 원래 사용했던 방식은 WEB UI를 통해서 직접 스크립트 코드를 작성하고

변경될 때마다 jenkinsServer에 들어가서 작성하곤 했었다.

 

하지만, 소마 선배분들의 프로젝트를 보니 대부분이 jenkinsFile을 작성하여 파이프라인코드를 

jenkins에서 가져갈 수 있도록 설계를 해두셨다 그래서 왜 ? 라는 의문을 가지고 인터넷서칭을 해보았다.

더보기

Jenkins에서 새로운 Job을 생성하거나 기존 설정을 변경하기 위해서, 대부분은 Web UI에서 매뉴얼 방식으로 작업한 경험이 있을 것이다. Job이 몇개 없고 설정도 단순하다면 큰 문제가 되지 않지만, 점차 구성이 복잡해지고 관리해야 할 Job이 늘어날 수록 이 방식은 적합하지 않다.. 예를 들어, 진행중인 프로젝트에 CI/CD 파이프라인을 적용한다고 하자. 동일한 소스 코드에 대해 빌드/테스트/배포 Job이 서로 분리되어 있으므로 설정도 따로 해야하고, 각 단계가 어떻게 진행되었는지 직관적인 파악이 어려운 경우가 있다.

 

Jenkins Pipeline은 프로젝트의 전체 파이프라인을 개발자가 직접 정의한 코드 형태(Pipeline as Code)로 받아 하나의 Job에서 이를 수행할 수 있는 강력한 기능을 제공한다. 파이프라인이 정의된 코드는 'Jenkinsfile'에 저장하는데 이를 프로젝트 소스코드가 있는 Repository에 같이 관리함으로써, 프로젝트 단위의 파이프라인 정의가 이루어진다. 또한 파이프라인의 변경 이력이 모두 commit으로 남기 때문에 추적 및 복구가 용이하다.

 

즉, 변경 이력이 모두 기록되는것, 중요한 실무에서는 jenkinsFile을 사용하는 일이 많을 것 같다라는 생각을하고 한번 사용해보면 좋을 것 같다라는 생각을 했습니다.

 

 

1.플로그인 설치

 

Declarative Pipeline Migration Assistant API

 

Declarative Pipeline Migration Assistant API

Declarative Pipeline Migration Assistant API (this plugin contains APIs used to convert Freestyle Jobs into Declarative Pipelines).

plugins.jenkins.io

 

스크립트로 된 파이프라인을 선언형파이프라인으로 자동변환시켜준다. 해당하는 플로그인이 있어야

스크립트로 된 파일 -> jenkins 에서 선언해서 실행시켜준다.

 

2.

 

 

나의Jenkions 파일은 my-app 밑에 위치하기때문에 경로를 위 사진처럼 설정해주었다.

private repository 라면 credentials 을 설정해줘야한다.

 

설정이 완료됐으니 이제 파이프라인을 나의 레포에 입력하고 빌드를 돌려보자

 

이제 jenkins 파이프라인을 서버에 접속하지않아도 버전관리 뿐만 아니라 커밋내역 변경사항을

수시로 확인할 수 있게 되었다.

728x90