반응형
해당 글에서는 CI/CD 중 하나인 Github Actions에 대해서 이해하고 각각의 용어에 대해 이해하는 글을 다루고 있습니다.
1) Github Actions란?
💡 GitHub의 기능 중 하나로 특정 '이벤트에 따라 자동으로 작동하는 작업을 구성할 수 있도록 도와줍니다. 이를 통해 CI/CD를 구성하여 배포 자동화를 구성하여 버그를 빠르게 해결하여 배포시간을 단축 시킬 수 있습니다.
💡 예를 들어, 코드가 커밋되면 코드 빌드 및 테스트를 자동으로 실행하거나 새 코드가 병합되면 새로운 버전을 릴리스하도록 자동으로 설정할 수 있습니다.
[참고] Github Actions 공식 사이트
[더 알아보기]
💡 CI/CD(Continuous Integration / Continuous Delivery) 란?
- 지속적인 통합 (CI) 및 지속적인 배포 (CD)의 약자입니다. 이것은 애플리케이션 개발 및 배포를 자동화하여 개발자가 코드 변경 사항을 빠르게 테스트하고 릴리스할 수 있도록 도와줍니다. CI/CD는 품질 제어를 향상시키고 버그를 빠르게 해결하여 배포 시간을 단축시킵니다.
2) Github Actions의 주요 용어
1. Events
💡 Github에서 지정한 '어떠한 일'이 발생했을 때 해당 Github workflow가 수행될 지에 대해 정의합니다.
[ 어떠한 일 ]
- 메인 브런치(Default Branch)로 머지(Merge)를 했을 경우 발생
- 특정 브런치에서 커밋(Commit) 내용을 푸시(Push) 했을 경우 발생
- 이슈를 누군가 생성했을 경우 발생
💡 Events 적용 예시
- 아래의 Events의 예시에서는 ‘develop-main’라는 메인 브런치에 'push' 혹은 'pull request'가 발생 시 해당 workflow가 수행된다는 것을 의미하는 예시입니다.
2. Workflows
💡 'Events'내에서 지정한 '어떠한 일'이 발생했을 때 '무엇을 수행하겠다'에 대해 정의합니다.
💡 Workflows 적용 예시
- 아래의 예시에서는 Events 부분을 제외한 하단 영역이 workflow로 수행이 되는 영역입니다.
3. Jobs
💡 workflow안에 있으며, '수행이 되는 작업'에 대해서 정의합니다.
💡 Jobs는 하나 혹은 여러 개의 Jobs를 가질 수가 있습니다.
💡 Jobs는 병렬적으로 동시 다발적으로 수행이 되며, Job을 순차적으로 수행되도록 구성할 수도 있습니다.
💡 Job 적용 예시
- 아래의 예시에서는 하나의 Job이 빌드가 되고 'strategy'에서는 각각 지정한 Node 버전(12.x, 14.x, 16.x)에 대해서 수행을 하겠다고 하는 것을 정의 한 부분입니다. (기본적으로 템플릿을 만들 때 추가가 되었으나 잘 사용하지 않는다고 합니다.)
4. Actions
💡 Job안에서 '수행이 되는 행동'들을 의미합니다. 이 Action은 워크 플로우의 가장 작은 요소로 직접 만들어 사용할 수도 있고 마켓에 등록된 이미 만들어진 것을 가져와 사용할 수도 있습니다.
💡 Actions 적용 예시
- 아래의 예시에서는 Steps안에 actions/checkout@v3로 수행이 됩니다. 해당 부분은 소스코드를 checkout 받습니다.
그리고 다음으로 checkout을 받은 것에 대해서 지정한 노드 16.x 버전을 설치하는 과정이 설명되어 있습니다.
5. Runners
💡 Job을 실행시켜주는 애플리케이션을 의미한다. VM 혹은 Docker라고 생각하면 되고, 독립적인 Container로 실행이 됩니다.
[ 더 알아보기 ]
💡 VM(Virtual Machine) 이란?
- 컴퓨터 안에서 또 다른 컴퓨터를 실행시키는 가상의 공간이다. 물리적으로 해당 공간은 컴퓨터는 아니지만 컴퓨터와 동일하게 동작하며 해당 환경에서는 프로그램 및 운영체제를 실행하고, 데이터를 저장하고, 네트워크에 연결하고, 기타 컴퓨팅 기능을 수행할 수 있습니다.
💡Runners 적용 예시
- 아래의 예시에서는 Shell Command로 지정한 값이 수행이 됩니다.
해당 값은 소스코드를 체크아웃받고 package.json내에 지정한 값을 수행합니다.
💡 결론적으로는 Github에서 특정 Event가 발생하였을 경우 workflow가 수행이 되며, workflow안에는 하나 혹은 다수의 Jobs를 지정할 수 있다. Jobs안에는 순차적으로 어떤 일들이 수행이 돼야 하는지 Shell Script 형태로 작성할 수 있고, Github에서 제공해주는 action을 수행할 수도 있다.
💡 [참고] Github에 더 궁금하시면 아래의 링크를 참고하시면 도움이 됩니다.
주제 | 링크 |
Github 주요 용어 -1: 기본 구조 | https://adjh54.tistory.com/22 |
Github 주요 용어-2 : 기본 동작 | https://adjh54.tistory.com/363 |
Github - JIRA 연동 방법 | https://adjh54.tistory.com/366 |
Git Tag 및 Release 구성 방법 | https://adjh54.tistory.com/13 |
Github Actions-1: 정의, 주요용어 | https://adjh54.tistory.com/50 |
Github Actions-2: 환경설정, 적용예시 | https://adjh54.tistory.com/51 |
Git 브랜치 전략의 종류 | https://adjh54.tistory.com/364 |
Git 브랜치 전략 : Git-flow | https://adjh54.tistory.com/367 |
Git 브랜치 전략 : Git-flow 변형 | https://adjh54.tistory.com/368 |
오늘도 감사합니다😀
반응형
'Github > 이해하기' 카테고리의 다른 글
[Github] 주요 용어 이해하기-2 : 기본 동작을 SourceTree로 이해 (0) | 2023.12.25 |
---|---|
[Github] Github Actions 이해하기-2 (환경설정, 적용 예시) (0) | 2022.07.10 |
[Github] 주요 용어 이해하기-1 : 기본 구조(Branch, Repository, clone) (0) | 2022.02.03 |
[Github] Git CLI 명령어 모음집 (0) | 2022.01.31 |
[Github] .gitignore 이해 및 구성 방법 (0) | 2022.01.29 |