Git & Github Action과 친해지기 #2 강의를 보고 작성한 글입니다.

Github Action 및 제작 방법 소개
- 개발자 work flow를 위한 플랫폼으로 오케스트레이션, 즉 github에서
제공되어지는 컴퓨터 시스템 및 소프트웨어의 자동화를 제공하는 도구
(쉽게 말해 github에서 제공하는 컴퓨터)
- 2019년에 github에서 CI/CD 기능을 추가해서
빌드/테스트/커버리지/배포까지 진행 가능
CI/CD 란?
CI
는 지속적인 통합
으로 개발하면서 코드 통합을 지속적으로 진행하면서
품질을 확인
- 모든 프로젝트가 끝난 후에 코드의 품질을 관리하는 다점을 해소하기 위해
나타난 개념
- 여러 명의 개발자가 한 프로젝트를 진행 할 떄 수시로 각자의 작업들을
확인하며 협업
CD
는 지속적인 배포
로 소프트웨어가 항상 신뢰 가능한 수준에서 배포될 수
있도록 지속적으로 관리
- 즉, CI 과정을 통해 개발 중에 지속적으로 코딩 빌드와 테스트를 하고 이를
거친 코드는 CD과정으로 배포에 반영
YML 이란?
- 2개의 확장자 ->
yaml
, yml
- Yet Another Markup Language의 약자로, 사람이 읽을 수 있는 데이터 직렬화 언어
- key-Value 구성으로 작성된 파일
- 가독성이 좋아 가벼운 마크업 언어로 사용됨
- YAML/YML 파일은 Json 파일과 상위 호환되기 때문에, Json 시퀀스와 맵을
사용할 수 있음

workflow
- 최상위 개념
- 여러 Job으로 구성되고, Event에 의해 트리거될 수 있는 자동화된 프로세스
- Workflow 파일은 YAML으로 작성되고, Github Repository의 .github/workflows 폴더 아래에 저장됨
Event
- Workflow를 Trigger(실행)하는 특정 활동이나 규칙
✓ 특정 브랜치로 Push하거나
✓ 특정 브랜치로 Pull Request하거나
✓ 특정 시간대에 반복(Cron)
✓ Webhook을 사용해 외부 이벤트를 통해 실행
Job
- Job은 여러 Step으로 구성되고, 가상 환경의 인스턴스에서 실행됨
- 다른 Job에 의존 관계를 가질 수 있고, 독립적으로 병렬 실행도 가능함
Action
- Workflow의 가장 작은 블럭(smallest portable building block)
- Job을 만들기 위해 Step들을 연결할 수 있음
- 재사용이 가능한 컴포넌트
- 개인적으로 만든 Action을 사용할 수도 있고, Marketplace에 있는 공용 Action을
사용할 수도 있음
[참고] https://github.com/marketplace?type=actions
Step
- Task들의 집합으로, 커맨드를 날리거나 action을 실행할 수 있음