CI/CD 전략

림행크·2023년 5월 4일
0
  • CI : Continuous Intergration
    빌드 / 테스트 자동화 (지속적인 통합)

    커밋할 때마다 빌드와 일련의 자동 테스트가 이루어져 동작을 확인하고 변경으로 인해 문제가 생기는 부분이 없도록 보장

  • CD : Continuous Delivery, Deployment (지속적 전달, 지속적 배포)

    지속적 배포 : 자동화 된 빌드 / 테스트 이후 수동적인 동작 없이 자동으로 배포, 지속적 배포를 통해 사용자에게 빠르게 새로운 기능을 제공
    자동화 배포 파이프 라인에 의해 지속적인 배포 가능

대표 CI/CD

  • Jenkins
  • CircleCI
  • TravisCI
  • Github Actions

이 중 Github Actions는 Github 에서 제공하는 CI/CD 플랫폼이며, Github과 통합되어 코드 변경사항에 대한 이벤트를 자동으로 감지하여 자동화된 빌드 / 테스트, 배포작업을 수행 가능.

YAML 구성파일을 사용하여 작업을 정의
프로그래밍 언어 뿐 아니라 Docker, Kubernetes, AWS 와 같은 클라우드 서비스 역시 지원.

name: Kotlin CI

on:
  push:
    branches:
      - main
  pull_request:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2
    - name: Set up JDK 11
      uses: actions/setup-java@v1
      with:
        java-version: 11
    - name: Grant execute permission for gradlew
      run: chmod +x gradlew
    - name: Build with Gradle
      run: ./gradlew build
    - name: Test with Gradle
      run: ./gradlew test
  • name : 작업 이름
  • on : 수행할 이벤트
    -> push, pull_request 이벤트 수행, branch 는 'main' 브랜치
  • jobs : 작업 목록
    -> build 작업 정의
    : runs-on은 작업을 실행할 호스트 운영 체제를 지정합니다. 이 예시에서는 ubuntu-latest를 사용
    : steps는 작업을 구성하는 단계를 정의
    • actions/checkout : 작업을 수행할 리포지토리를 체크아웃합니다.
    • actions/setup-java : JDK 11을 설치합니다.
    • chmod +x gradlew : Gradle 빌드 스크립트의 실행 권한을 부여합니다.
    • ./gradlew build : Kotlin 애플리케이션을 빌드합니다.
    • ./gradlew test : Kotlin 애플리케이션을 테스트합니다.

0개의 댓글