# CodePipeline, CodeStar, Jenkins

# 1. CodePipeline

`Source → Build → Test → Deploy → Provision`의 워크플로우를 시각적으로 보여주며, 단계별로 상세하게 설정할 수 있는 Continuous Delivery 서비스이다.

- **Stage** : 순차적으로 진행되는 단계

- **Action group** : Stage 안의 순차적으로 진행되는 세부 단계.

- **Action** : action group에 속해 병렬로 실행되는 단위. 모두 성공해야 다음 action group으로 넘어간다.

- **Artifact** : stage의 output은 S3에 저장되며 다음 단계의 input으로 쓰인다.

### Source - 변경 감지 옵션

- **CW Events** : source에 변경 발생 시, CW Event를 트리거하여 CodePipeline을 시작. AWS 서비스에만 적용 가능.

- **CodePipeline** : 주기적으로 source를 검사하여 변경 여부를 확인

### 수동 승인

사람이 직접 클릭을 눌러 승인을 하도록 하는 액션이 있다. 또한 AWS SNS를 통해 이메일을 보낼 수도 있다.

### CloudWatch Event와 통합

CodeBuild, CodeDeploy와 비슷하게 CW event를 통해 CodePipeline을 실행할 수도 있고, CodePipeline의 이벤트를 다른 곳에 보낼 수도 있다.

### runorder

action은 모두 runorder를 갖는다. 이 runorder를 수정해서 action의 우선순위를 결정할 수 있다. 만약 두 action의 runorder가 같다면, 그건 한 action group에서 병렬로 실행하라는 뜻이다.

### 추가

![Image](https://upload.cafenono.com/image/slashpageHome/20240820/134210_oby0ZU3gP4VQxNxVJE?q=80&s=1280x180&t=outside&f=webp)

# 2. CodeStar

CodeCommit, CodeDeploy, CodePIpeline 등을 모두 통합해 놓고 템플릿을 가져다 개발하는 서비스이다. AWS를 몰라도 할 수 있을 정도로 쉽게 설명되어 있다.

# 3. Jenkins

CodePipeline 전체를 대체 가능한 CI/CD 오픈 소스 툴이다.

- Master / Slave으로 이루어져 multi-AZ에서 관리 가능하다.

- `Jenkinsfile`에 명령들을 넣는다.

- 무수히 많은 플러그인들을 사용할 수 있다.

For the site tree, see the [root Markdown](https://slashpage.com/kaonmir.md).
