티스토리 뷰

반응형

Events, Workflows, Jobs, Action, Runners의 개념이 존재.

 

Github Actions은 어떤 이벤트가 발생했을 때 자동으로 수행하게 만들어준다.

Events

on : push

main 브랜치로 push하거나 이런 방식

 

Workflow

Work flow는 어떤 행동을 할지 결정한다.

안에 어떤 다수의 Job을 넣을 수 있고, 이 Job은 Step을 가진다.

Job : run unit tests

 

Job 안에는 step이 있는데, npm test 같은 명령어나,

action 등의 (다양한 명령어)를 사용할 수 있다.

 

사용하려면

프로젝트 경로 안에 .github/workflows/workflow.yml 이런 식으로 만든다.

yml 이름은 딴 것이어도 가능

name : learning-github-actions
on: [push] # push가 발생하면
jobs:
	check-bats-version: #어떤 job인지
		runs-on : ubuntu-latest #runner가 어떤 vm을 사용할 것인지
		steps: #어떤 순서대로 job들을 실행할 것인지
        	-uses : actions/checkout@v3 #action을 사용하는데 checkoout action을 사용할 것
			-uses: actions/setup-node@v3 #node를 셋업해주는 action
				with:
					node-version: '14' #with을 통해서 node 버전을 명시
			-run : npm install -g bats #원하는 명령어(shell script)
			-run : bats -v

 

 

github repository의 actions 메뉴

템플릿을 자동으로 추천해주고, configure 누르면 기본적으로 template이 실행된다.

 

해당 workflows를 선택할 수 있는 단어 이름을 만든다.

 

job의 이름을 test

문서에 가면 어떤 머신이 runs-on에 쓸 수 있는지 볼 수 있다.

 

https://docs.github.com/en/actions/about-github-actions/understanding-github-actions#workflows

 

strategy에서는 각각 다른 환경에서 여러번 동작해야 하는 경우 사용할 수 있다.

동일한 job을 각각 다른 node-version에서 실행하는 것으로 만들 수 있다.

 

오른쪽 상단의 markeplace에서 checkout이라는 명령어를 검색하면 어떻게 사용하는지 알 수 있다.

이렇게 만든 다음에 커밋을 해주면 되고, action에 다시 들어가보면 방금 푸시한 커밋에 문제가 없는 걸 확인해 볼 수 있다.

 

새로운 브랜치를 만들고, 

git checkout -b break-test

 

더한다.

git add -u

git commit -m "break-test"

git push --set-upstream origin break-test

 

main에 pull request를 하면 해당하는 action도 자동으로 실행된다.

 

create status badge를 readme에 붙여서 이용하면, 현재의 workflow가 정상이라는 배지도 만들 수 있다.

 

 

 

반응형