즉 CI/CD란 각각의 개발자들이 개발을 하는 개발환경을 사용자가 사용 가능한 서비스로 전달하는 모든 과정을 지속 가능한 형태로 또 가능하다면 자동으로 해서 개발자와 사용자 사이의 격차를 없애는 것이다. 이러한 과정에는 코드를 빌드하고, 테스트하고 배포하는 활동이 있다.
Credentials Plugin
젠킨스는 그냥 단지 서버일 뿐이기 때문에 배포에 필요한 각종 리소스에 접근하기 위해서는 여러가지 중요 정보들을 저장하고 있어야 한다.
이런 중요한 정보(aws token, git access)등을 저장해 주는 플러그인
Pipeline Plugin
젠킨스 핵심 기능인 Pipeline 을 관리할수 있게 해준다.
Docker Plugin and Docker Pipeline
Docker agent 를 사용하고 jenkins 에서 도커를 사용하기 위함
Sections
Agent sections
여러 slave node를 두고 일을 시킬 수 있는데 어떤 젠킨스가 일을 하게 할것인지를 지정한다.
Post sections
스테이지가 끝난 이후의 결과에 따라서 후속 조치를 취할 수 있다.
각각의 단계별로 구별하면 다음과 같다.
success
failure
always
cleanup
Stage section
어떤 일들을 처리 할것인지 일련의 stage를 정의한다.
일종의 카테고리
ex)빌드하는 스테이지, 프론트 엔드 배포하는 스테이지
Steps section
한 스테이지 안에서의 단계로 일련의 스탭을 보여줌
Declaratives
Environment : 어떠 Pipeline이나 stage scope의 환경변수를 설정함.
parameters : 파이프라인 실행시 파라미터 받음
triggers : 파이프라인이어 어떤 주기로 실행되는가?
when : 언제 실행 되는가?
각 stage안에서 어떠한 일들을 할 것인지 정의하는 게 Declarative이다.
pipeline { agent any // 어떤 jenkins에 일을 시킬것인가 stages { stage('Prepare') { steps { git url:'https://github.com/frontalnh/pet-insurance.git', branch: 'master', credenitalsId: 'jenkinsgit' sh 'ls' dir(',/docs'){ sh ''' aws s3 sync ./ s3://namhoontest //1. git 에서 branch를 떙겨와라 //2. 디렉토리를 바꿔서 s3를 업로드를 해라 } } post { //If maven was able to run the tests success{ echo 'success' //이후에 success로그를 찍어라 } } stage('bulid'){ steps{ ehco 'bulding...' } } }