포스트

CI

CI

CI

Code Commit -> Github repo -> Github Action -> ACR -> Manifest

  • 지속적 통합
  • 새로운 코드의 변경 사항이 빌드 및 테스트되어 공유 레포지토리에 통합 된다.
  • 여러 개발자들이 기존의 코드를 지속적으로 통합
  • 외국인 샵은 Github Action을 통해 진행

Github Action

  • CI/CD 플랫폼 중 하나
  • 저장소의 어떤 event에 대해 특정 workflow가 일어나게 하거나, 반복 실행 가능

Github Action이란

특징

  • 도커 기반 동작
  • workflow를 통해 다양한 이벤트 실행 가능
  • 일반적으로 Runner라 불리는 인스턴스에서 실행됨 (OS 지정 가능)
  • YAML로 작성

장점

  • 다른 CI/CD 툴(Jenkins)처럼 별도의 서버가 필요하진 않음 -> Azure에서 제공
  • Github와 연동이 되어 관리의 용이성

단점

  • 캐싱이 필요한 경우 자체 캐싱 로직 적용

Github Action의 핵심 요소

Workflows

  • 자동화된 프로세스가 정의된 하나의 파일
  • YAML 파일로 작성되며, 주로 .github/workflows 폴더에 작성

Events

  • workflow 실행을 트리거 하는 특정 활동이나 규칙
    • pr 생성, issue open, push 등을 트리거로 사용

Job

  • workflow의 독립적인 단위로, 여러 단계 포함 가능
  • workflow내에서 병렬 또는 순차적으로 실행

Step

  • 각 작업(job)이 하나 이상의 단계(Step)으로 모델링
    • 커맨드나 스크립트 실행에는 -> run
    • 액션을 사용할 때는 -> uses ``` steps:
      • name: 이름입니다 uses: actions/setup-node@v2 with: node-version: ‘14’
      • name: node 설치 run: npm install ```

Action

  • step내의 재사용 가능한 명령어 또는 스크립트
  • market에서 가져오는 경우
    • {owner}/{repo}@{ref|version}
  • 예시
    • ` uses: actions/checkout@v2: GitHub:` GitHub에서 제공하는 공식 액션으로, 리포지토리를 체크아웃합니다.
    • ` uses: docker/setup-buildx-action@v1:` Docker Buildx를 설정하는 액션입니다.
    • uses: actions/setup-java@v3: JDK를 설정하는 액션입니다.

Ruunner

  • Workflow 및 job을 실행하는 환경
    1
    2
    3
    
    jobs:
      build:
          runs-on: ubuntu-latest
    
  • Github에서 제공하는 최신 버전의 우분투 환경에서 잡이 실행
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.