도라에몽주머니

[GitHub] GitHub Actions 란? 본문

Study

[GitHub] GitHub Actions 란?

에몽쓰 2024. 5. 29. 12:01

나는 회사에 입사해서 처음으로 GitHub Actions를 만져봤다.

그 당시에는 웹애플리케이션 연수를 하고 있었는데 백엔드 deploy(배포) 를 자동화하기 위해서 GitHub Actions를 사용했던 것 같다.

 

지금은 사내 테스트코드 작성 대회에 참여하게 되어서 다시 GitHub Actions를 만져보게 되었는데 정확히 어떤 툴인지 모르고 사용하게 되는 것 같아 이번기회에 정리해보려고 한다.

 

GitHub Actions란?

 

GitHub Actions란 소프트웨어 개발 워크플로우를 자동화하는 플랫폼이다. 즉, 소프트웨어의 빌드, 테스트 및 배포 파이프라인을 자동화 할 수 있는 CI/CD 플랫폼이다.

내 리포지토리에서 발생하는 모든 pull request에 대해 빌드와 테스트를 진행할 수도 있고, 병합된 pull request를 프로덕션에 배포하는 것도 가능하다.

(처음 웹 애플리케이션 연수에서 사용했던 기능은 병합된 pull request를 프로덕션에 배포하는 것이었고 이번 테스트코드 작성에 사용되는 기능은 pull request에 대해 테스트를 진행하는 기능인 것 같다...!)

 

CI/CD 란?

CI/CD가 뭔지 잘 모르겠다면 지난번에 작성한 아래 글을 참고하면 좋을 것 같다.

https://geniemon0104.tistory.com/93

 

[CI/CD] CI/CD 란 무엇일까?

GitHub Actions에 대해 공부하던 중, CI/CD 라는 용어가 자주 나오는 것을 보고 용어를 한번 정리해야겠다는 생각이 들어 글을 작성하게 되었다.  CI/CD 란?: 애플리케이션 개발부터 배포까지 모든 단

geniemon0104.tistory.com

 

GitHub Actions 구성 요소

Workflows

: 하나 이상의 작업을 실행하는 자동화된 프로세스

  • .github/workflows 저장소의 디렉토리에 정의
  • 여러 workflow 작성 가능
  • workflow 재사용 가능
  • YAML 형식

Events

: Workflow를 실행(trigger) 하게 하는 저장소의 특정한 활동

 

Events that trigger workflows - GitHub Docs

You can configure your workflows to run when specific activity on GitHub happens, at a scheduled time, or when an event outside of GitHub occurs.

docs.github.com

Jobs

: 동일한 runner에서 실행되는 workflow의 단계

  • 앞으로 실행될 actions에 대한 내용이 포함됨
  • 순서대로 실행

Actions

: 복잡하지만 자주 반복되는 작업을 수행하는 애플리케이션

 

Creating actions - GitHub Docs

You can create your own actions, use and customize actions shared by the GitHub community, or write and share the actions you build.

docs.github.com

Runners

: Workflows가 trigger 될 때 실행되는 서버

  • 가상 서버
  • Ubuntu Linux, Microsoft Windows, macOS 를 지원

 

GitHub Actions Process

GitHub Actions는 Pull Request 등과 같은 이벤트(event) 가 발생하면 작동한다. 하나의 Workflow 안에는 여러개의 Job이 존재할 수 있으며 각각의 가상 머신인 runner 나 컨테이너 내부에서 실행된다.

출처 : https://hyperskill.org/learn/step/20403

 

자세한 소스 코드 예제나 작성 방법에 대한 이해는 아래 링크를 참조하자.

https://docs.github.com/ko/actions/learn-github-actions/understanding-github-actions

 

GitHub Actions 이해 - GitHub Docs

GitHub Actions is a continuous integration and continuous delivery (CI/CD) platform that allows you to automate your build, test, and deployment pipeline. You can create workflows that build and test every pull request to your repository, or deploy merged

docs.github.com