-
Git - Github Actions 5가지 개념형상 관리 도구/Git 2023. 1. 3. 16:34
Github Actions는 특정한 event가 일어 났을때 내가 원하는 일을 자동으로 수행할 수 있도록 해주는 tool이다.
Evnet
어떤 일이 일어났는지 지정할 수 있는 Event를 잘 이해해야 한다. Event는 Github에서 일어날 수 있는 대부분의 Event를 지정할 수있다. main 브랜치로 merge, commit push, 이슈를 누군가 열면 등등의 event를 지정할 수 있다.
Workflow
Workflow에는 특정한 Event가 발생 했을 때 어떤 일을 수행하고 싶은지 명시할 수 있다. 만약 push라는 Event가 발생하면 Workflow에 지정된 것들이 수행이된다.
Workflow는 한마디로 요리책 같은 것이다. 만약 나한테 파스타가 먹고 싶다는 Event가 발생하면 파스타를 할 수있는 요리책을 보게 되 듯이 Workflow는 한마디로 요리책 같은 것이다. 예를 들어나한테 파스타가 먹고 싶다는 Event가 발생하면 파스타를 할 수있는 요리책을 거 처럼 Workflow를 이용해 볼 수 있다.
Jobs
Workflow안에는 또 Job이 있다. 하나 또는 다수의 Job을 가지고 있을 수 있는데 Workflow의 Job은 병렬적, 동시다발 적으로 수행이 된다. 만약에 특정 Job이 끝난다음에 실행되야 되는 Job이 있다면 순차적, 직렬적으로 수행하도록 만들 수 도 있다.
그리고 각각 Job안에는 어떤 순서로 해당 Job이 실행되야하는지 순서가 명시된 step이 있다. Shell script를 사용해서 어떤 step을 수행해야하는지 명시할 수도 있고, Github Action에서 매우 유용한 Action을 이용할 수도 있다.
Actions
Github Action에는 재사용이 가능한 공개적으로 오픈된 Action들이 많이 있다. 그래서 흔히 사용하는 다양한 명령들이 위 그림에서 같이 action으로 정의되어 있기 때문에
action check out
repository를 check out한뒤에 원하는 명령어를 수행할 수 있다.
action setup node
action check out한 다음에 action setup node를 사용하면 자동적으로 node 환경을 setup 할 수 있는 코드들이 setup이 된다.
따라서 Github action에는 npm에서 라이브러리를 가져다 쓰는 것처럼 이미 만들이어진 필수적인 action들이 공개적의 정의 되어 있다.
중간정리
1. 특정한 Event가 발생했을 때 실행하고 싶은 자동화 하고 싶은 script를 Workflow안에 작성해 둘 수 있다
2. Workfolw 안에는 하나의 Job이나 다수의 Job을 정의할 수 있다.
3.각각의 Job안에는 어떤 순서로 일들이 실행되어야 하는지를 step을 나눠서 script형태로 작성가거나 유용한 Github Action을 사용할 수 있다.
Runners
각각의 Job들은 병렬적으로 실행이 되는데, 이 Job을 실행하는 것이 바로 Runner이다. Runner는 VM(Virtual Machine)
이라고도 볼 수 있다. Docker Container와 유사한 개념으로 생각하면 좋다.
그래서 각각의 Job들은 개별적, 독립적인 각각 Runner라는 Container에서 실행된다고 보면 된다.
[출처 - https://www.youtube.com/watch?v=iLqGzEkusIw&t=21s]