젤리(예경) - 작성 중
CI/CD
- Continuous Integration(지속적 통합) / Continuous Delivery(지속적 전달)의 줄임말
- 애플리케이션 개발단계를 자동화하여 애플리케이션을 보다 짧은 주기로 고객에게 제공하는 방법이다
- CI - 테스트, 빌드, Dockerizing, 저장소에 전달 까지 프로덕션 환경으로 서비스를 배포할 수 있도록 준비하는 프로세스
- CD - 저장소로 전달된 프로덕션 서비스를 실제 사용자들에게 배포하는 프로세스
Workflow
- CI / CD 같은 자동화된 프로세스를 만들기 위한 yaml 파일
- workflow > job > step > action 순으로 명시를 해서 파일을 작성해야 한다
- workflow : 레파지토리에 정의한 자동화된 프로세스 절차이다
- job : job은 하나 이상의 steps로 구성되고 workflow에 있는 job 끼리는 병렬적으로 실행된다
- step : 하나의 step은 하나의 task이다
- runner : Github에 의해 호스팅 되고있는 서버이다. runner를 통해서 job을 실행시킨다
예시
- 예시 1
name: learn-github-actions # workflow 이름 on: push: branches: [ master ] pull_request: branches: [ master ] jobs: check-bats-version: # job 이름 runs-on: ubuntu-latest # Job이 돌아갈 환경을 명시한다. 여기서는 ubuntu 최신 버전을 입력한 것 steps: - uses: actions/checkout@v2 # 누군가가 만들어 놓은 것을 가져와 사용하는 것 - uses: actions/setup-node@v1 - run: npm install -g bats - run: bats -v
- 예시 2
name: Java CI with Maven on: push: branches: [ master ] pull_request: branches: [ master ] jobs: package: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Set up openjdk-15 uses: actions/setup-java@v1 # 여기서는 자바 버전으로 15.0.1을 입력 with: java-version: 15.0.1 - name: Build with Maven run: mvn -B package --file pom.xml # maven을 이용한 package 명령
주의할 점(Main branch)
- 빌드가 안되는 코드는 애초에 PR(Pull Request) 리뷰로 가지 않도록 한다.
- 브런치 정책에 따라서 PR 리뷰를 하고 이를 통해서 merge를 하도록 한다