Github Action 사용해보기
Github Actions 이란?
Github Actions를 사용하여 리포지토리에서 바로 소프트웨어 개발 워크플로를 자동화, 사용자 지정 및 실행합니다. CI/CD를 포함하여 원하는 작업을 수행하기 위한 작업을 검색, 생성 및 공유하고 완전히 사용자 정의된 워크플로에서 작업을 결합할 수 있습니다.
- Github Docs -
GitHub Actions는 DevOps를 넘어 리포지토리에서 다른 이벤트가 발생할 때 수행하기를 원하는 workflow 실행할 수 있습니다.
예를 들어 누군가 저장소에 새 문제를 생성할 때마다 적절한 레이블을 자동으로 추가하는 workflow를 실행할 수 있습니다.
Github Action 구성요소
1. Events
2. Workflows
3. Jobs
4. Actions
5. Runners

- Events 란 깃 리포지토리에 발생 할 수 있는 이벤트를 지정하는 것이다. ex) main 브랜치로 머지, 커밋을 푸쉬, 이슈를 누군가 열었을때
- Events에 지정된 이벤트가 발생했을때 해당되는 Workflow가 작동 된다.
- Workflow 안에는 Job이 존재 한다. Job은 하나 또는 여러개가 존재 할 수있다. 또한 Job들은 병렬적으로 실행된다. 물론 원한다면 순서를 지정해 줄 수 있다.
- Job 안에는 Step들이 존재한다. Step에는 명령어를 작성해도 되지만 Github이나 유저가 만들어둔 Action 사용 가능하다.
- Job들은 Runner에서 실행 된다.
Github Actions 실제 사용
1. Repository 생성
일단 내 깃에 존재하는 플젝 중 하나를 선택했다. 해당 플젝은 Spring boot 플젝이다. 테스트 코드도 존재한다.
2. Repository의 Actions에서 yml 파일 생성

GitHub Actions는 yml 구문을 사용하여 워크플로를 정의한다.
특정 Repository의 Actions 메뉴에 들어가면 기본적으로 내 플젝에 맞춰 추천해준 yml 파일 템플릿이 존재한다.
"Java with Gradle" 을 선택해준다.

이렇게 간편하게 yml 파일을 생성 할 수 있게 해주는데 위치가 레포지토리의 github/workflows. 에 만들어준다.
왜냐하면 각 워크플로우 파일은 리포지토리의 github/workflows. 디렉터리에 무조건 저장해줘야하기 때문이다.
3. yml 파일 내용 확인
일단 파일 명과 코드 상 name은 원하는 대로 수정이 가능하다.

- master branch로 push가 되거나 pull request가 요청될 때 Workflow를 실행한다.

- build 라는 이름의 작업(Job)을 정의 한다.
- 최신 버전의 Ubuntu Linux 실행기(Runner)에서 실행되도록 작업을 구성한다.
이것은 작업이 GitHub에서 호스팅하는 새로운 가상 머신에서 실행됨을 의미한다.

- step 들을 그룹화한다.

이렇게 작성된 yml 파일을 저장하면 이제는 push 하거나 pull request 를 할때 해당 workflow가 실행 된다.

TODO LIST
1. github action으로 docker에 배포하기
2. github action으로 pull request할때 디스코드 알림 오게 하기
참고 : https://docs.github.com/ko/actions
GitHub Actions 설명서 - GitHub Docs
GitHub Actions를 사용하여 리포지토리에서 바로 소프트웨어 개발 워크플로를 자동화, 사용자 지정 및 실행합니다. CI/CD를 포함하여 원하는 작업을 수행하기 위한 작업을 검색, 생성 및 공유하고 완
docs.github.com
참고 : https://www.youtube.com/watch?v=iLqGzEkusIw&t=240s