Jae-Kyung Cho LLM Developers who was a Robotics engineer

MLOps study - Raviraja Week 6: CI/CD - GitHub Actions

Week 6는 CI/CD, 그 중에서도 GitHub Action에 대한 내용입니다.




CI/CD란?

연구만 해왔던 비개발자 입장에서는 조금 생소한 단어이지만, 코드를 통해 서비스를 제공하기 위해서 Continuous Integration (CI)과 Continuous Deployment (CD)는 반드시 필요한 것들입니다.

특정 이벤트가 발생했을 때 문제없이 코드를 통합하고 배포하는 작업을 수작업으로 하기는 비효율적이기 때문에, 자동화툴들을 많이 이용하고 있습니다. image

그 중에서도 GitHub Actions은 무료이면서, GitHub의 어마어마한 사용자들을 끌어들이고 있는 강력한 CI/CD 툴입니다. (몰랐는데 Microsoft에게 인수되었더라고요. OpenAI도 그렇고 GitHub도 그렇고 Microsoft가 정말 Silence killer였네요…) 대부분의 코드가 GitHub을 통해 버전관리가 되는 만큼 Action이 얼마나 큰 역할을 할 수 있을지 가늠이 됩니다.

Basics of GitHub Actions

GitHub Action은 간단하게 yaml 파일을 통해 관리됩니다.
우선 .git이 있는 root directory에 .github/workflows 폴더를 만들어 주겠습니다.

mkdir .github
mkdir .github/workflows

예시 파일을 하나 만들어볼까요? example.yaml 파일을 하나 만들고 아래 내용을 작성해 보겠습니다.

on:
  push:
    branches:
      - master
jobs:
  Basic-workflow:
    runs-on: ubuntu-latest
    steps:
      - name: Basic Information
        run: |
          echo "🎬 The job was automatically triggered by a $ event."
          echo "💻 This job is now running on a $ server hosted by GitHub!"
          echo "🎋 Workflow is running on the branch $"
      - name: Checking out the repository
        uses: actions/checkout@v3
      - name: List files in the repository
        run: |
          ls $
      - run: echo "🍏 This job's status is $."

테스트를 해볼까요? GitHub repository에 접속하여 Action 탭을 클릭해보면, 이런 그림을 볼 수 있습니다. image

Yaml 파일 자체가 굉장히 직관적으로 되어 있어서 이해가 쉽습니다. 조금 궁금한 부분은 uses: actions/checkout@v3 부분인데요. 이건 Github에서 제공하는 기본 checkout action입니다. checkout을 할 때 가장 선행되어야 하는 부분은 repository에서 local로 코드를 내려받는 일인데요, 이것에 대한 자동화를 제공하고 있는 것이죠.
일반적으로 action은 {소유지}/{저장소명}@{참조} 로 이루어집니다. checkout@v3의 경우에는 5가지 명령어가 포함되어 있습니다.

  • git init
  • git config
  • git fetch
  • git checkout
  • git log




TBC…

references:

Comments