GitHub Actions 소개 및 설정

GitBeginner
지금 연습하기

소개

GitHub Actions 는 빌드, 테스트 및 배포 파이프라인을 자동화할 수 있는 지속적 통합 (CI) 및 지속적 배포 (CD) 플랫폼입니다. 리포지토리에 대한 모든 풀 리퀘스트 (pull request) 를 빌드하고 테스트하거나, 병합된 풀 리퀘스트를 프로덕션 환경에 배포하는 워크플로우를 생성할 수 있습니다.

본 랩 (lab) 에서는 GitHub Actions 사용을 시작하는 데 필요한 초기 설정 방법을 학습합니다. GitHub 리포지토리를 생성하고, 로컬 개발 환경으로 클론 (clone) 하고, GitHub Actions 가 워크플로우를 인식하는 데 필요한 특정 디렉터리 구조를 설정하는 과정을 진행하게 됩니다.

전제 조건

  • GitHub 계정 (https://github.com). GitHub 계정이 없는 경우, 먼저 https://github.com/signup에서 무료 계정을 등록해야 합니다. 이는 본 랩을 완료하기 위한 필수 조건입니다.
  • 명령줄 (command line) 에 대한 기본적인 숙지.

GitHub 웹사이트에서 새 저장소 생성

이 단계에서는 GitHub 웹사이트에 새 리포지토리를 생성합니다. 이 리포지토리는 프로젝트의 원격 저장소 역할을 하며 GitHub Actions 워크플로우가 실행될 장소가 됩니다.

  1. 웹 브라우저를 열고 https://github.com으로 이동합니다.
  2. GitHub 계정에 로그인합니다.
  3. 아무 페이지의 오른쪽 상단 모서리에 있는 + 드롭다운 메뉴를 사용하여 New repository를 선택합니다.
  4. Repository name 상자에 github-actions-demo를 입력합니다.
  5. Public을 선택합니다 (GitHub Actions 는 공개 리포지토리의 경우 무료입니다).
  6. Add a README file 확인란을 선택합니다. 이렇게 하면 리포지토리가 초기화되고 복제할 준비가 됩니다.
  7. Create repository를 클릭합니다.

Create a new repository on GitHub website

이제 원격 리포지토리가 생성되었습니다. 다음 단계에서는 이 리포지토리를 로컬 환경으로 가져올 것입니다.

git clone 명령어를 사용하여 Ubuntu VM 으로 저장소 클론

이 단계에서는 방금 생성한 리포지토리를 로컬 LabEx 환경으로 복제 (clone) 합니다. 이를 통해 로컬에서 파일을 편집하고 워크플로우를 생성할 수 있습니다.

  1. GitHub 리포지토리 페이지에서 녹색 Code 버튼을 클릭합니다.
  2. HTTPS 탭이 선택되었는지 확인하고 URL 을 복사합니다. URL 은 https://github.com/your-username/github-actions-demo.git과 유사해야 합니다.
  3. LabEx 환경에서 터미널을 엽니다. 기본 경로는 ~/project입니다.
  4. git clone 명령어를 사용하여 리포지토리를 다운로드합니다. your-username을 실제 GitHub 사용자 이름으로 바꾸십시오.
cd ~/project
git clone https://github.com/your-username/github-actions-demo.git

예시 출력:

Cloning into 'github-actions-demo'...
remote: Enumerating objects: 3, done.
remote: Counting objects: 100% (3/3), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0
Receiving objects: 100% (3/3), done.
  1. 디렉토리가 생성되었는지 확인합니다:
ls -F

github-actions-demo/가 목록에 표시되어야 합니다.

저장소 내에 .github/workflows 디렉터리 생성

GitHub Actions 는 리포지토리 내의 특정 디렉터리인 .github/workflows에서 워크플로 구성 파일을 찾습니다. 이 단계에서는 이 디렉터리 구조를 생성합니다.

  1. 리포지토리 디렉터리 내에 있는지 확인합니다:
cd ~/project/github-actions-demo
  1. -p (parents) 플래그와 함께 mkdir 명령을 사용하여 .github 디렉터리와 그 안에 workflows 하위 디렉터리를 생성합니다:
mkdir -p .github/workflows
  1. Git 은 빈 디렉터리를 추적하지 않습니다. 다음 단계에서 이 구조를 커밋할 수 있도록, 이 디렉터리 안에 main.yml이라는 간단한 빈 워크플로 파일을 생성합니다.
touch .github/workflows/main.yml
  1. 구조를 확인합니다:
ls -R .github

예시 출력:

.github:
workflows

.github/workflows:
main.yml

이 구조는 필수적입니다. GitHub 는 .github/workflows에 배치된 YAML 파일만 Action 워크플로로 인식합니다.

git add, git commit, git push 를 사용하여 디렉터리 변경 사항 커밋 및 푸시

이 단계에서는 새로운 디렉터리 구조를 커밋하고 GitHub 에 푸시합니다.

  1. 커밋할 새 파일을 스테이징합니다:
git add .
  1. 설명적인 메시지와 함께 변경 사항을 커밋합니다:
git commit -m "Setup GitHub Actions workflow directory"

예시 출력:

[main ... ] Setup GitHub Actions workflow directory
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 .github/workflows/main.yml
  1. 변경 사항을 GitHub 의 원격 저장소로 푸시합니다:
git push

인증 참고 사항: git push를 실행하면 WebIDE 가 자동으로 인증을 요청하는 팝업을 표시합니다. 다음 세부 단계를 따르십시오:

  1. "The extension 'GitHub' wants to sign in using GitHub." 라는 메시지가 포함된 팝업이 나타납니다. Allow를 클릭합니다.
  2. 새 알림이 나타납니다. **"Copy&Continue to GitHub"**를 클릭한 다음, 다음 프롬프트에서 **"Open"**을 클릭합니다.
  3. 열리는 브라우저 창에서 GitHub 계정에 로그인하고 복사된 인증 코드를 입력합니다. 인증을 확인하면 페이지가 자동으로 닫힙니다.
  4. 몇 초 기다리면 터미널에서 푸시 작업이 성공적으로 완료되는 것을 볼 수 있습니다.

GitHub Authentication

개인 정보 보호 참고 사항: WebIDE 는 인증 목적으로 GitHub 계정에 대한 전체 액세스를 요청합니다. 개인 정보 보호에 대해 걱정할 필요가 없습니다. LabEx VM 은 현재 랩을 완료하는 즉시 파기되며, 자격 증명 및 인증 정보는 유지되지 않습니다.

이 인증 프로세스는 사용자 이름이나 Personal Access Token(개인 액세스 토큰) 의 수동 구성이 필요하지 않습니다.

인증 단계를 따른 후 다음과 유사한 출력을 보게 됩니다:

예시 출력:

Enumerating objects: 6, done.
Counting objects: 100% (6/6), done.
Delta compression using up to 4 threads
Compressing objects: 100% (2/2), done.
Writing objects: 100% (5/5), 388 bytes | 388.00 KiB/s, done.
Total 5 (delta 0), reused 0 (delta 0), pack-reused 0
To https://github.com/your-username/github-actions-demo.git
   2e0917f..a191a97  master -> master
  1. 웹 브라우저에서 GitHub 의 저장소를 방문하여 .github/workflows 디렉터리와 main.yml 파일이 이제 저장소 구조에 표시되는지 확인합니다.

요약

본 랩 (Lab) 에서 여러분은 GitHub Actions 사용을 위한 기반을 성공적으로 설정했습니다. 다음을 수행했습니다:

  1. GitHub 에서 새 저장소를 생성했습니다.
  2. 저장소를 로컬 환경으로 클론 (Clone) 했습니다.
  3. 필수적인 .github/workflows 디렉터리 구조를 생성했습니다.
  4. 이러한 변경 사항을 커밋하고 GitHub 로 다시 푸시 (Push) 했습니다.

이 구조가 마련되었으므로, 이제 workflows 디렉터리 내의 YAML 파일을 편집하여 CI/CD 워크플로우를 정의할 준비가 되었습니다.