CI/CD 란?
- CI (Continuous Integration) : 지속적 통합
- CD (Continuous Delivery/Deployment) : 지속적 배포
협업을 통해 애플리케이션을 개발할 때, 새로운 코드 변경 사항을 정기적으로 빌드 및 테스트 하여 퍼블릭 레포지토리에 통합되어야 함께 개발하는 개발자들이 동시에 애플리케이션 개발과 관련된 코드 작업을 할 때 발생할 수 있는 충돌 문제를 해결할 수 있다.
또한 애플리케이션에 적용한 변경 사항이 버그 테스트를 거쳐 자동으로 깃 레포지토리에 업로드 되도록하여 해당 레포지토리에서 애플리케이션을 실시간으로 프로덕션 환경으로 배포할 수 있게 하여 지속적 서비스 제공이 가능하게 한다. 즉, CD를 통해 지속적 제공 및 배포 과정을 자동화여 최소한의 노력으로 새로운 코드를 사용자에게 전달하는 것이 목표이다.
GitHub Actions 공식 문서
GitHub Actions 기본 개념
- 워크플로우
- 자동화된 하나의 전체 프로세스를 의미함
- 하나 이상의 job으로 구성됨
- YAML 파일로 작성됨
- git 레포지토리의 .github/workflows 폴더 아래에 저장됨
- 이벤트
- 워크플로우를 실행하게 되는 특정 활동 및 규칙
- ex) push, pull request 등
- 잡
- 여러 스텝으로 구성됨
- 단일 가상 환경에서 실행됨
- 스텝
- 잡 안에서 순차적으로 실행되는 프로세스 단위
- 액션
- 잡을 구성하기 위한 스탭들의 조합으로 구성된 독립적인 명령
- 워크 플로우의 가장 작은 빌드 단위
- 액션이 스탭을 포함해야 함
- 사용자가 직접 커스터마이징 또는 마켓플레이스에 있는 것 사용
- 러너
- 워크플로우가 실행된 인스턴스
9008ㅜ8852ㅜ 1552
간단한 문법
- name : 워크플로우의 이름 (파일 마다 하나씩 설정 가능)
- on (필수값) : 워크플로우아 어떤 이벤트에 대해서 실행될지 지정
- example push했을 때 마스터 브랜치에 대한 설정이라는 것을 의미
on: push: branches: [ master ] pull_request: branches: [ master ]
- jobs : 워크플로우에서 수행할 여러 개의 잡을 설정할 수 있음
- runs-on : 잡 실행할 운영체제 지정 (직접 운영하는 경우에는 self-hosted 로 지정)
- strategy : 여러 버전의 환경에서 실행하고 싶을 경우, 행렬로 값을 줌
- example
strategy: matrix: node-version: [10.x, 12.x, 14.x]
- example
- steps : jobs.<job_id>.steps에서 잡의 실제 동작을 정의
- uses : 각 스텝에서 사용할 액션 지정 -> 마켓플레이스에서 이미 만들어진 액션을 가져다 설정만 해서 사용할 수 있음
- example
steps: - uses: actions/checkout@v2 - name: Use Node.js ${{ matrix.node-version }} uses: actions/setup-node@v1 with: node-version: ${{ matrix.node-version }} - run: npm ci - run: npm run build --if-present - run: npm test
- run : shell에 명령어를 실행하는 부분
References
'기술 > 개발 도구' 카테고리의 다른 글
Git) git push 실패 - remote: Invalid username or password.fatal: Authentication failed for <private repository> 해결 (0) | 2022.07.21 |
---|---|
VSCode) VSCode 업데이트 후 JAVA/Spring Boot 실행 오류 (0) | 2022.04.26 |
Git) Git-flow 알아보기 (0) | 2022.01.07 |
Git) 특정 파일이 gitignore 적용되지 않을 때 (0) | 2021.12.23 |
VSCode) VSCode에서 JAVA System.out.println 단축키 사용하기 (0) | 2021.07.19 |