본문 바로가기

개발환경관련

[CI/CD] GitHub Actions 시작하기

참고자료: Quickstart for GitHub Actions: https://docs.github.com/en/actions/quickstart

1. 소개

GitHub Action을 생성하고 실행시키기 의해서 GitHub 저장소(repository) 만 필요하다.

GitHub Action이 자동적으로 자동으로 트리거 되는 방법, 실행되는 위치 및 저장소의 코드와 상호 작용하는 방법에 대해서 설명한다.

2. 첫 워크플로우 생성

(1) GitHub내 위크플로우를 적용시킬 저장소에 .github/workflows 폴더가 없다면 생성한다.

(2) .github/workflows 폴더 내에 github-actions-demo.yml 이라는 파일을 생성한다.

.github/workflows/github-actions-demo.yml 파일 생성

(3) 다음의 YAML 형식을 적상된 내용을 github-actions-demo.yml 파일에 복사한다.

name: GitHub Actions Demo
on: [push]
jobs:
  Explore-GitHub-Actions:
    runs-on: ubuntu-latest
    steps:
      - run: echo "🎉 The job was automatically triggered by a ${{ github.event_name }} event."
      - run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by GitHub!"
      - run: echo "🔎 The name of your branch is ${{ github.ref }} and your repository is ${{ github.repository }}."
      - name: Check out repository code
        uses: actions/checkout@v2
      - run: echo "💡 The ${{ github.repository }} repository has been cloned to the runner."
      - run: echo "🖥️ The workflow is now ready to test your code on the runner."
      - name: List files in the repository
        run: |
          ls ${{ github.workspace }}
      - run: echo "🍏 This job's status is ${{ job.status }}."

.github/workflows/github-action-demo.yml  파일 편집 화면 

(4) 페이지의 아래로 이동한 후 Create a new branch for this commit and start a pull request 메뉴를 선택한 후 새로운 branch를 생성하고 Propose new file을 클릭한다.

.github/workflows/github-actions-demo.yml 편집 후 commit 하는 화면 

워크플로우 파일을 저장소의 브랜치로 커밋을 하면 github-actions-demo.yml 파일의 2번 째 줄의

on: [push] 다음의 선언들이 push 이벤트로 트리거되어 워크플로우를 실행한다.

3. 워크플로우 결과 확인

(1) GitHub.com 에서 저장소의 메인 페이지로 옮겨간다.

(2) 저장소 이름에서 Actions 메뉴를 클릭한다.

  • github-actions-demo.yml 파일 생성 후 commit(push) 하기 전에 Actions 메뉴를 클릭했을 때 결과는 다음과 같다.

github-actions-demo.yml 파일을 push하기 전의 Action 화면

  • github-actions-demo.yml 파일 생성 후 commit(push) 한 후 결과 화면과 Actions 메뉴를 클릭했을 때 결과는 다음과 같다.

새로운 branch로 push가 이루어진 결과 화면
github-actions-demo.yml 파일을 push 한 후 Action 화면 (워크플로우 목록 표시)

(3) 왼쪽 사이드바에서 확인하고자 하는 워크플로우를 클릭한다.

  • 현재의 화면에는 GitHub Actions Demo 워크플로우만 존재하고 있는 상태이다.

(4) 워크플로우 실행 목록에서 확인하려는 실행 이름을 클릭하면 github-actions-demo.yml 파일을 실행한 결과를 확인할 수 있다.

(5) Creat-github-actions-demo.yml 을 클릭하면 아래의 화면과 같이 github-actions-demo.yml의 결과를 확인할 수 있는 화면이 나타난다.

Create github-action-demo.yml 링크를 클릭하여 얻은 화면

(6) Explore-GitHub-Actions 작업의 각 절차 의 목록의 에서 작업을 클릭하면 로그를 확인할 수 있따. 로그는 워크플로우의 각 절차(step)가 어떻게 처리되었는지 보여준다.

Explores-GitHub-Actions을 클릭하여 얻은 로그 화면

(7) 상세한 정보를 보기 위해서 각 절차(step)를 확장할 수 있다.

  • Run actions/checkout@v2 를 클릭하면 아래와 같이 상세 실행 내용을 볼 수 있다.

예로, 저장소에서 파일의 목록을 볼 수 있다.

4. 워크플로우 템플릿

GitHub는 독자적인 CI 워크플로우를 생성하기 위해서 사전에 구성된 워크플로우 템플릿을 사용하여 맞춤화할 수 있다. GitHub는 코드를 분석하고 저장소에 활용할 수 있는 CI 템플릿을 보여준다. 예로 저장소에 Node.js 코드가 포함되어 있는 경우 Node.js 프로젝트에 대한 제안 내용을 확인할 수 있다. 워크플로우 템플릿을 바탕으로 사용자 맞춤형 워크플로우를 작성하거나 템플릿 그대로 사용할 수 있다.

워크플로우의 템플릿의 목록은 actions/starter-workflows 저장소에서 찾을 수 있다.

5. 새로운 변경 내용에 대한 적용 예

(1) 저장소에 text.txt파일을 생성하고 브렌치를 commit 한다.

text.txt 파일 생성

(2) Actions페이지에 새로운 워크플로우가 만들어졌음을 확인할 수 있다.

text.txt 파일이 새롭게 추가되어 새롭게 생성된 워크플로우 

(3) 저장소에 새로운 text.txt 파일 목록을 확인할 수 있다.

저장소 내의 파일 목록에서 새롭게 추가된 text.txt 파일을 확인

6. 다음 절차

예로 추가된 워크플로우는 브렌치(branch)에 코드가 추가될 때 마다 실행된다. GitHub Actions가 저장소의 내용과 함께 작동하는 방법을 보여준다.

  • 저장소에는 서로 다른 이벤트를 기반으로 서로 다른 작업을 트리거하는 여러 워크플로우가 포함될 수 있다.
  • 워크플로우를 사용하여 소프트웨어 테스트 앱을 설치하고 GitHub의 runner에서 코드를 자동으로 테스틀 할 수 있다.

GitHub Action은 애플리케이션 개발 프록세스의 거의 모든 것을 자동화할 수 있다.

상세한 내용은 Learn GitHub Actions에서 얻을 수 있다.