본문 바로가기

DevOps/Jenkins

[Jenkins #1] Jenkins 파이프라인을 이용한 pep8 test 만들기

728x90

안녕하세요 굉장히 오랜만입니다.

 

오늘은 Jenkins의 기본적인 사용법 중 하나인 Blue Ocean을 통한 파이프라인 구축을 해보았습니다.

 

지난 시간에 젠킨스 설치까지 마쳤는데요 파이프라인을 사용하기 위해서 일단 블루오션 플러그인을 설치해야합니다.

 

플러그인 관리

 

블루오션 설치

 

저는 설치되어있지만 저 블루오션 플러그인을 설치하셔야합니다.

 

설치가 완료되면 아래 그림처럼 블루오션이 생기고 Jenkins url 뒤에 /blue를 붙이는 것으로 블루오션에 접근할 수 있습니다.

 

젠킨스 블루오션

 

 

처음에 접속하면 다음과 같이 코드가 있는 곳을 선택하라고 합니다.

 

위처럼 선택해 주는데 처음에 연동하는 과정에서 github 계정과의 연동을 해야합니다.

github 연동에는 2가지 방법이 있습니다. 

 

1) ID와 PW를 통한 연동

2) 인증 키값을 이용한 연동

 

자 이렇게 파이프라인을 생성을 누르면 하나의 파이프라인이 생기게 됩니다.

 

이 때 Github 레포지토리에 Jenkins 파일이 있다면 그 젠킨스 파일을 인식하여 자동으로 파이프라인이 생성됩니다.

그게 아니라면 블루오션의 GUI를 통해 파이프라인을 생성할 수 있습니다.

블루오션으로 파이프라인을 만들면 Jenkins파일이 자동으로 Github레포지토리에 생성됩니다.

 

 

 

젠킨스파일

 

파이프라인

 

 

 

 

위 파이프라인은 깃허브 레포지토리에 코드가 push되면 python의 flake8을 통해 pep8 코딩컨벤션을 진행하고

추가된 파일을 도커로 패키징하여 도커 허브에 업로드하고 마지막으로 서버에 켜진 컨테이너를 교체하는 파이프라인입니다.

 

 

주의사항) 해당 예제는 도커로 실행한 젠킨스입니다. 컨테이너 안에서 도커 명령어를 사용하기 위한 방법은 여러가지가 있지만 저같은 경우 host와 도커데몬에 대한 볼륨을 공유하는방식으로 사용하고있습니다.

 

 

젠킨스에 대한 명령은 젠킨스 컨테이너 안에서 이루어지기 때문에 쉘스크립트 명령어로 실행할 모듈 같은 것들이 모두 설치되어있어야합니다. 위같은 경우 flake8에 대한 설정이나 도커에 대한 설정이 필요합니다.

 

flake8은 python 버전에 따라 적용되는 범위가 다르기 때문에 선택하시면 될거 같습니다.

 

 

기본적인 명령은 젠킨스서버안에 workspaces 라는 곳에서 이루어집니다.

 

github에 있는 레포지토리를 젠킨스서버안으로 옮겨와서 테스트하는 방식이라고 생각하시면 됩니다.

 

 

파이프라인을 모두 작성하면 자동으로 테스트에 들어가게되는데 

 

성공

 

 

실패

성공한다면 위와같은 모습을 실패한다면 아래와같은 모습을 볼 수 있습니다.

 

 

 

또한 추가적으로 위와같이 진행과정을 모니터링할 수 있습니다.

반응형

'DevOps > Jenkins' 카테고리의 다른 글

[Jenkins #0] Docker를 이용한 Jenkins 설치 및 업데이트  (0) 2020.04.08