GitHub News

GitHub의 CI/CD 및 자동화 초보자 가이드 제1장

GitHubKorea 2022. 6. 22. 17:36

CI/CD 및 워크플로우 자동화는 GitHub 플랫폼의 기본 기능입니다. 사용을 시작하고 워크플로우를 가속화하는 방법은 다음과 같습니다.

안녕하세요 GitHub 한국 총판 단군소프트입니다.
오늘은 '​GitHub의 CI/CD 및 자동화 초보자 가이드 제1장​'에 대해서 알아보겠습니다.

저자

CI/CD 파이프라인이 동작하는 걸 처음 본 순간 눈이 뜨였습니다. 저는 GitHub Actions를 사용하여 릴리스 시간을 5분으로 단축한 회사에서 일하고 있었습니다. 그리고 문제가 발생한 경우에는 버튼을 누르는 것만으로 릴리스를 롤백 할 수 있습니다.

그 당시, 이제 막 스타트업에서 근무를 마쳤을 때였습니다. 거기서는 릴리스 프로세스가 훨씬 수동적이었습니다. 저희는 소규모 팀이었고, CI/CD 파이프라인이나 블루-그린 배포 방식에 대한 이점이 없었다면 사용자가 앱을 사용할 가능성이 낮은 심야에만 업데이트를 출시할 수 있었습니다. 이는 어떠한 인적 오류가 발생하더라도 빌드를 배포하는데 걸리는 시간이 늘어나게 되는 매우 지루한 프로세스였습니다.

그럼에도 CI/CD의 첫 번째 경험은 GitHub Actions에서 실행되는 자동화된 워크플로우에 힘입어 단순히 말뿐이 아닌 보다 구체적이고 인상적인 것으로 바꾸었습니다. 아이러니하게도, 저는 지금 GitHub Actions를 개인적으로 집중해야 하는 GitHub에서 일하고 있습니다.

그래서 오늘은, GitHub에서 CI/CD와 워크플로우 자동화를 막 시작한 사람들을 위해 GitHub Actions를 소개했던 경험을 리소스로 바꾸고자 합니다.

그럼 본격적으로 시작해보겠습니다.


GitHub Actions라고 하는 것은 구체적으로 어떤 것일까?

상급자를 위한 힌트: 다양한 CI/CD 툴과 DevOps 툴 중 하나를 결정하고자 하는 경우 GitHub이 다른 플랫폼과 어떤 차이점이 있는지 확인해 보세요.

 

GitHub Actions는 GitHub에서 코드와 함께 실행되는 기본 CI/CD 툴입니다. 실제로 GitHub 저장소(힌트: GitHub Actions가 있는 곳)에 "Actions"라고 표시된 탭이 있습니다.

저장소의 GitHub 액션 탭을 나타내는 스크린샷입니다.

이 탭을 처음 열면 GitHub Actions가 무엇인지와 저장소에 권장되는 워크플로우에 대한 간단한 설명이 나타납니다. 바로 여기서부터 즐거움이 시작됩니다. GitHub Actions는 GitHub Marketplace에 13,000개 이상의 사전 작성 및 테스트된 CI/CD 워크플로우와 미리 구축된 자동화 및 사용이 간편한 YAML로 자체 워크플로우를 작성하는(또는 기존 워크플로우를 맞춤화하는) 기능이 포함되어 나와있는 것입니다.

나중에 독자적인 GitHub Actions 워크플로우를 구축하는 방법에 대해서 설명을 드리겠지만 여기서는 일단 여러분들에게 남겨두도록 하겠습니다.

GitHub Actions 워크플로우는 GitHub 상의 임의의 Webhook 이벤트에 응답하도록 설계할 수 있습니다. 다시 말해 GitHub 위의 임의의 Webhook을 CI/CD 파이프라인 내의 자동화 트리거로 바꿀 수가 있습니다. 여기에는 서드파티의 Webhook 이벤트도 포함됩니다.

 

 

GitHub Actions 워크플로우 뒤에 있는 개념

지금까지 GitHub Actions 워크플로우에 대해 조금 설명 드리긴 했지만, 실제 워크플로우를 확인하는 것이 가장 쉬운 경우도 있습니다. 

GitHub Actions 워크플로우 예의 스크린샷입니다.

위의 워크플로우는 몇 가지 다른 것으로 구성되어 있습니다.

이것들은 다음과 같이 포함됩니다:
● 러너(Runners): GitHub Actions 서버입니다. 각 러너는 GitHub에서 호스트할 수도, 현지화 된 서버에서 셀프 호스트할 수도 있습니다. GitHub에서 호스트 되는 러너는 워크플로우에서 지정할 수 있는 Ubuntu Linux, Windows 및 macOS를 기반으로 합니다.
이벤트(Events): 워크플로우를 시작하는 정의된 트리거입니다.
● 작업(Jobs): 같은 주자로 실행되는 일련의 단계입니다.
● 단계(Steps): 작업에서 명령을 실행하는 각각의 작업입니다. 이것들은 액션 또는 쉘 명령으로 할 수 있습니다.
● 액션(Actions): 러너에서 실행되는 명령어이며, 그에 따라 이름 붙여진 GitHub Actions의 핵심 요소이기도 합니다.

이러한 개념을 모두 정리하면 다음과 같은 워크플로우를 얻을 수 있습니다.

on:
  issues:
    types: [opened]

jobs:
  comment:
    runs-on: ubuntu-latest
    steps:
     - name: Rick Roll
      uses: TejasvOnly/random-rickroll@v1.0
      with:
        percentage: 100

(참고로 이것은 이론적으로 CI/CD 파이프라인의 일부로 만들 수 있는 즐거운 GitHub Actions 워크플로우입니다. 해당 저장소에서 새로운 이슈 생성될 때마다 RickAstley의 GIF가 코멘트로 게시될 것입니다. (단언컨대, 여러분의 생산성을 지지해는 과학적으로 증명된 방법이자 즐거움 역시 줄 것입니다.))


다음 시간은 'GitHub의 CI/CD 및 자동화 초보자 가이드_제2장'으로 돌아오겠습니다.

감사합니다.

 

이 글은 A beginner’s guide to CI/CD and automation on GitHub | The GitHub Blog를 번역한 글입니다.