티스토리 뷰

Github Action (깃허브 액션)

Github Action은 특정 이벤트 발생 시, 원하는 일을 자동으로 동작하도록 만들어주는 툴을 말한다.
 
Github Action은 다섯 가지의 단계가 있다. Event, Workflows, Jobs, Actions, Runners가 존재한다.

1. Event

Event은 "on: push". 즉, 푸시하는 이벤트가 발생할 때가 있다. 이렇게 이벤트가 발생하는 경우에 해당한다.

예를 들어서, main branch로 merge를 하거나 commit을 push 하거나 또는 issue를 누군가 생성 혹은 열 때 발생하는 이벤트가 여기에 해당한다.

 

2. Workflows

Workflows은 이벤트가 발생할 때, 작업을 수행하는 장소를 의미한다.

여기에는 하나 혹은 여러 개의 Job이 존재한다. 그리고 Workflows에는 자동화를 하고 싶은 작업을 설정하는 장소이다.

 

3. Jobs

Jobs은 작업을 작업을 수행하는 장소이다.

여기서 할 수 있는 작업은 유닛 테스트를 진행하거나, E2E (하나의 기능을 모두 테스트) 테스트를 진행할 수 있다.또한, npm 명령어를 수행할 수 있으며 Action을 수행한다.여기서는 특정 부분을 수행하거나 순서대로 실행을 가능하게 설정할 수 있다.

 

4. Actions

Actions은 Job에서 설정한 작업 목록에서 직접적으로 해당 작업에 해당한다.

Action은 npm을 사용하는 것처럼 이미 만들어진 것을 사용한다.

여기서는 재사용이 가능한 Action을 사용하거나 check out으로 수행한 것을 확인할 수 있다.

그리고 set up node로 노드 환경을 설치하여 구성하게 만들 수 있다. 

 

5. Runners

Runners은 VM Machine이며 Container이다. 각 Job은 독립적인 Runner에서 실행이 된다.


파일 생성하고 코드 분석해보기

깃허브의 Action가 실행이 되었을 때 실행 코드 예시는 이렇다.우선 파일을 생성할 때는 "github/workflows/workflow.yml"로 생성해서 사용한다.

 

예시 코드는 다음처럼 작성이 된다.

name: learn-github-actions
on: [push]
jobs:
	check-bats-version:
		runs-on: ubunut-latest
		steps:
			- uses: actions/checkout@v3
			- uses: actions/setup-node@v3
			with:
				node-version: '14'
			- run: npm install -g bats
			- run: bats -v

name은 원하는 이름을 작성할 수 있다.on은 특정 이벤트가 발생할 때를 설정한다. 위 코드에서는 Commit이 Push가 될 때마다 수행되도록 설정이 되었다.jobs는 실제로 수행될 내용들이 담겨져 있다.우선 check-bats-version은 어떤 일을 수행하는지 설정한다.runs-on은 어떤 VM Machine을 사용할 것인지 설정한다. 위 코드에서는 우분투 최신 버전을 사용하도록 설정이 되었다.steps은 실행 순서를 설정한다. 우선 checkout을 사용하고 node 설치한다. 그리고 "with" 구문을 사용해서 노드 버전을 설정할 수 있다. 위 코드에서는 특정 버전으로 설정하였지만 여러 개의 버전을 설정할 수 있다.그리고 그 다음으로 글로벌 버전으로 bats를 설치하고 버전을 확인하는 것으로 자동화를 끝낸다.

 

더 자세한 코드는 다음에 확인하며 1차 공부를 마친다.

 

내용 출처 (드림코딩 유튜브 제발 깃허브 액션🔥 모르는 개발자 없게해 주세요 🙏 - YouTube)