드림오구
article thumbnail

🌊  CI/CD,Github Action, YAML

 

CI/CD

지속적 통합 (Continuous Integration, CI)

개발자를 위한 자동화 프로세스. 

  • Code : 개발자가 코드를 원격 저장소에 push 하는 단계
  • Build : 원격 코드 저장소로부터 코드를 가져와 유닛 테스트 후 빌드하는 단계
  • Test : 코드 빌드의 결과물이 다른 컴포넌트와 잘 통합되는 지 확인 하는 과정

CI의 장점

  •  CI 과정에서 개발자는 코드를 잦게 원격 코드 저장소에 push 하여 테스트 및 빌드를 하며 빌드 성공/.실패 여부를 확인할 수 있다.
  •  통합 테스트 결과를 통해 개선 방안을 찾을 수 있다.
  •  지속적인 통합 과정을 통해 개발자는 버그를 일찍 발견할 수 있다.
  • 테스트가 완료된 코드를 빠르게 전달이 가능하며, 지속적인 배포가 가능하다.
  • 모든 개발팀이 코드의 변화를 확인할 수 있기 때문에 투명하게 문제점을 파악할 수 있다.
  • 지속적인 통합을 통해 개발팀은 각자 개발한 코드를 이른 시점에 자주 합치고 테스트 해볼 수 있다.
  • 보안 이슈, 에러 등을 쉽게 파악할 수 있어 해당 이슈를 빠르게 개선할 수 있다. 

 

지속적 배포 (Continuous Delivery/Deployment, CD)

지속적인 서비스 제공 및 지속적인 배포를 의미하며 이 두 용어는 상호 교환적으로 사용된다. 

  • Release : 배포 가능한 소프트웨어 패키지 작성
  • Depoly : 프로비저닝을 실행하고 서비스를 사용자에게 노출. 실질적인 배포 부분.
  • Operate : 서비스 현황을 파악하고 생길 수 있는 문제를 감지

CD의 장점

  • 프로덕션 준비가 완료된 빌드를 코드 repository에 자동으로 배포할 수 있어 운영팀이 보다 빠르고 손쉽게 애플리케이션을 프로덕션으로 배포할 수 있다.

 

 

GitHub Actions으로 클라이언트 CI/CD 구축

GitHub Actions

GitHub Actions는 GitHub가 제공하는 CI/CD 플랫폼으로, 빌드, 테스트, 배포 파이프라인을 자동화한다. 이 시스템은 Pull Request나 push와 같은 이벤트를 통해 작동하며, 각 과정은 가상 머신 또는 컨테이너에서 독립적으로 실행된다. 워크플로우는 .yml 또는 .yaml 파일로 구성되며, 각각의 워크플로우는 특정 기능(예: 테스트, 배포 등)에 따라 다르게 설정될 수 있다.
이러한 워크플로우 파일들은 .github/workflows 디렉토리에 위치한다.


GitHub Actions 공식문서

 

GitHub Actions Documentation - GitHub Docs

Automate, customize, and execute your software development workflows right in your repository with GitHub Actions. You can discover, create, and share actions to perform any job you'd like, including CI/CD, and combine actions in a completely customized wo

docs.github.com

 

비공개 레포지토리에 대한 GitHub Actions 사용은 용량과 시간에 제한이 있지만, 공개 레포지토리는 무료로 사용할 수 있다.

 

 

YAML (Yet Another Markup Language)

YAML ain’t markup language로 생각하기도 한다. 사람이 읽을 수 있는 데이터 직렬화 언어를 의미한다. 

확장자는 .yaml 혹은 .yml을 가진다

name: Bare Minimum Requirements
on: [push, pull_request]
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Bare Minimum Requirements
        uses: actions/setup-node@v1
        with:
          node-version: '16'
      - run: npm install
      - run: npm test

'🐹 TIL > Blogging' 카테고리의 다른 글

티스토리 피드가 터졌다..  (0) 2023.06.13
🌱 [Web] CORS 에러 해결하는 방법  (0) 2023.06.07
멘토님의 조언 💕  (2) 2023.06.04
코드스테이츠 5월 그로잉데이  (1) 2023.05.28
[Code States] Section3 회고  (4) 2023.05.09
profile

드림오구

@드림오구