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

이제 원격 리포지토리가 생성되었습니다. 다음 단계에서는 이 리포지토리를 로컬 환경으로 가져올 것입니다.
git clone 명령어를 사용하여 Ubuntu VM 으로 저장소 클론
이 단계에서는 방금 생성한 리포지토리를 로컬 LabEx 환경으로 복제 (clone) 합니다. 이를 통해 로컬에서 파일을 편집하고 워크플로우를 생성할 수 있습니다.
- GitHub 리포지토리 페이지에서 녹색 Code 버튼을 클릭합니다.
- HTTPS 탭이 선택되었는지 확인하고 URL 을 복사합니다. URL 은
https://github.com/your-username/github-actions-demo.git과 유사해야 합니다. - LabEx 환경에서 터미널을 엽니다. 기본 경로는
~/project입니다. 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.
- 디렉토리가 생성되었는지 확인합니다:
ls -F
github-actions-demo/가 목록에 표시되어야 합니다.
저장소 내에 .github/workflows 디렉터리 생성
GitHub Actions 는 리포지토리 내의 특정 디렉터리인 .github/workflows에서 워크플로 구성 파일을 찾습니다. 이 단계에서는 이 디렉터리 구조를 생성합니다.
- 리포지토리 디렉터리 내에 있는지 확인합니다:
cd ~/project/github-actions-demo
-p(parents) 플래그와 함께mkdir명령을 사용하여.github디렉터리와 그 안에workflows하위 디렉터리를 생성합니다:
mkdir -p .github/workflows
- Git 은 빈 디렉터리를 추적하지 않습니다. 다음 단계에서 이 구조를 커밋할 수 있도록, 이 디렉터리 안에
main.yml이라는 간단한 빈 워크플로 파일을 생성합니다.
touch .github/workflows/main.yml
- 구조를 확인합니다:
ls -R .github
예시 출력:
.github:
workflows
.github/workflows:
main.yml
이 구조는 필수적입니다. GitHub 는 .github/workflows에 배치된 YAML 파일만 Action 워크플로로 인식합니다.
git add, git commit, git push 를 사용하여 디렉터리 변경 사항 커밋 및 푸시
이 단계에서는 새로운 디렉터리 구조를 커밋하고 GitHub 에 푸시합니다.
- 커밋할 새 파일을 스테이징합니다:
git add .
- 설명적인 메시지와 함께 변경 사항을 커밋합니다:
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
- 변경 사항을 GitHub 의 원격 저장소로 푸시합니다:
git push
인증 참고 사항:
git push를 실행하면 WebIDE 가 자동으로 인증을 요청하는 팝업을 표시합니다. 다음 세부 단계를 따르십시오:
- "The extension 'GitHub' wants to sign in using GitHub." 라는 메시지가 포함된 팝업이 나타납니다. Allow를 클릭합니다.
- 새 알림이 나타납니다. **"Copy&Continue to GitHub"**를 클릭한 다음, 다음 프롬프트에서 **"Open"**을 클릭합니다.
- 열리는 브라우저 창에서 GitHub 계정에 로그인하고 복사된 인증 코드를 입력합니다. 인증을 확인하면 페이지가 자동으로 닫힙니다.
- 몇 초 기다리면 터미널에서 푸시 작업이 성공적으로 완료되는 것을 볼 수 있습니다.

개인 정보 보호 참고 사항: 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
- 웹 브라우저에서 GitHub 의 저장소를 방문하여
.github/workflows디렉터리와main.yml파일이 이제 저장소 구조에 표시되는지 확인합니다.
요약
본 랩 (Lab) 에서 여러분은 GitHub Actions 사용을 위한 기반을 성공적으로 설정했습니다. 다음을 수행했습니다:
- GitHub 에서 새 저장소를 생성했습니다.
- 저장소를 로컬 환경으로 클론 (Clone) 했습니다.
- 필수적인
.github/workflows디렉터리 구조를 생성했습니다. - 이러한 변경 사항을 커밋하고 GitHub 로 다시 푸시 (Push) 했습니다.
이 구조가 마련되었으므로, 이제 workflows 디렉터리 내의 YAML 파일을 편집하여 CI/CD 워크플로우를 정의할 준비가 되었습니다.



