https://www.youtube.com/watch?v=JPDKLgX5bRg&t=24s
1. CI/CD란 무엇인가?
- Continuous Integration : 여러 개발자들의 코드베이스를 계속해서 통합하는것
- Continuous Delivery : 사용자에게 제품/서비스를 지속적으로 제공, 코드베이스가 항상 배포 가능한 상태를 유지하는것
- Continuous Deployment : 코드베이스를 사용자가 사용가능한 환경에 배포한느것을 자동화 하는것
- 즉, 코드 빌드&테스트&배포 자동화!
- 각 단계를 하나의 파이프라인으로 정의
- 코드 작성
- 빌드: webpack, 타입스크립트 컴파일, 자바스크립트 컴파일
- 테스트: Jest, Junit
- 배포: ...
2. 젠킨스의 기본 개념과 동작 방식
- 젠킨스가 뭐야?
- 귀찮은 작업(빌드,테스트,배포 등)을 다 해주는 자동화 서버
- 개발만해! 귀찮은건 젠킨스가 다 한다!
- 기본 개념
- Java Runtime 환경에서 동작
- 다양한 플러그인들을 활용해서 각종 자동화 작업을 처리할 수 있음
- 플러그인?
- 정말 많은 플러그인이 존재한다!
- 처음에 추천해주는걸 깔면 된다.
- Credentoals Plugin: 각종 리소스의 접근정보를 저장 (AWS, Git...)
- Pipeline Plugin(🌟중요):
- 플러그인의 집합이자 스스로도 플러그인임,
- 여러 플러그인을 이 파이프라인에서 용도에 맞게 사용하고 정의함으로써 이 플러그인을 통해 서비스가 배포 됨
- Pipeline DSL(Domain Specific Language)로 작성
- 두가지 형태의 Pipeline syntax가 존재 (Declarative, Scripted Pipeline)
- Pipeline Syntax
- Sections
- Agent Section: 작업을 수행할 Slave Node 혹은 Docker
- Post Section: 스테이지가 끝난 이후 결과에 따라 후속 조치 정의 (ex. 성공했으면 이메일 로 알려줘)
- Stges Section: 어떤 일을 처리할건지 일련의 스테이지를 정의함 (요리이름, 볶음밥) https://www.jenkins.io/doc/pipeline/steps/
- Steps Section: 스테이지 안에서의 단계로 일련의 스텝을 정의함 (레시피, 기름을 두루고 전부 볶아라)
- Sections
728x90