🌊 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 사용은 용량과 시간에 제한이 있지만, 공개 레포지토리는 무료로 사용할 수 있다.
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 |