소개
GitHub Actions 는 빌드, 테스트 및 배포 파이프라인을 자동화할 수 있는 지속적 통합/지속적 제공 (CI/CD) 플랫폼입니다. 리포지토리에 대한 모든 풀 리퀘스트 (pull request) 를 빌드하고 테스트하거나, 병합된 풀 리퀘스트를 프로덕션 환경에 배포하는 워크플로 (workflow) 를 생성할 수 있습니다.
워크플로는 하나 이상의 작업을 실행하는 구성 가능한 자동화된 프로세스입니다. 워크플로는 리포지토리에 체크인된 YAML 파일로 정의되며, 리포지토리 내의 이벤트에 의해 트리거될 때 실행되거나, 수동으로 또는 정의된 스케줄에 따라 트리거될 수 있습니다.
본 랩에서는 GitHub Actions 워크플로의 기본 구성 요소를 학습합니다.
- 작업 (job) 정의하기.
- 러너 환경 (예: Ubuntu) 지정하기.
- 명령을 실행하기 위한 단계 (step) 추가하기.
콘솔에 "Hello, World!"를 출력하는 간단한 워크플로를 생성할 것입니다. 이 랩은 이전 랩에서 생성한 리포지토리를 기반으로 합니다. github-actions-demo 리포지토리를 클론하고 기존 워크플로 파일을 업데이트할 것입니다.
build 작업에 ubuntu-latest 를 사용하여 runs-on 키 추가하기
이 단계에서는 리포지토리를 복제하고 기존 워크플로 파일을 업데이트하여 작업을 정의하고 해당 작업이 실행될 운영 체제를 지정합니다.
github-actions-demo의 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
- 복제된 리포지토리로 이동합니다.
cd ~/project/github-actions-demo
.github/workflows디렉터리에simple-commands.yml이라는 새 워크플로 파일을 생성합니다.
touch .github/workflows/simple-commands.yml
WebIDE 에서 파일
.github/workflows/simple-commands.yml을 엽니다. 왼쪽 파일 탐색기에서 찾을 수 있습니다.파일에 다음 내용을 추가하여 워크플로 이름, 트리거, 작업 및 러너를 정의합니다.
name: Simple Commands
on: [push]
jobs:
build:
runs-on: ubuntu-latest
runs-on 키워드를 사용하면 작업을 실행할 머신 유형을 지정할 수 있습니다. GitHub 는 Linux, Windows 및 macOS 용 호스팅 러너를 제공합니다. ubuntu-latest는 표준 Ubuntu 환경을 제공하는 일반적으로 사용되는 러너입니다.
build 작업 아래에 steps 섹션 추가하기
이제 작업 환경 (job environment) 을 정의했으므로, 해당 작업이 실제로 무엇을 수행할지 정의해야 합니다. 이는 steps 키워드를 사용하여 수행됩니다.
작업 (job) 은 steps라고 불리는 일련의 태스크 (task) 들을 포함합니다. 단계 (steps) 는 명령어를 실행하거나, 설정 태스크를 실행하거나, 리포지토리 내의 액션 (action) 을 실행할 수 있습니다.
지침
- WebIDE 에서
.github/workflows/simple-commands.yml파일을 엽니다. build작업 아래에steps키워드를 추가합니다.
파일을 다음과 같이 업데이트합니다:
name: Simple Commands
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
steps:가 runs-on:과 동일한 들여쓰기 수준에 있는지 확인하십시오.
'Echo Hello' 이름과 'echo "Hello, World!"' 실행 명령을 가진 단계 추가하기
이 단계에서는 다양한 셸 명령을 실행하기 위해 steps 섹션에 여러 작업을 추가합니다. 이를 통해 러너 (runner) 에서 표준 Linux 명령을 실행할 수 있음을 보여줍니다.
지침
- WebIDE 에서
.github/workflows/simple-commands.yml파일을 엽니다. steps:키 아래에 다음 단계를 추가합니다:
steps:
- name: Echo Hello
run: echo "Hello, World!"
- name: Show Date
run: date
- name: List Files
run: ls -la
완성된 파일은 다음과 같아야 합니다:
name: Simple Commands
on: [push]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Echo Hello
run: echo "Hello, World!"
- name: Show Date
run: date
- name: List Files
run: ls -la
설명
echo "Hello, World!": 콘솔에 텍스트를 출력합니다.date: 러너의 현재 날짜와 시간을 표시합니다.ls -la: 현재 디렉터리의 파일을 나열합니다. 아직 코드를 체크아웃하지 않았기 때문에 디렉터리가 대부분 비어 있는 것을 알 수 있습니다 (다음 실습에서 수행할 예정입니다).
업데이트된 워크플로우 파일 커밋 및 푸시
GitHub Actions 워크플로우는 리포지토리 코드의 일부입니다. 워크플로우를 활성화하려면 변경 사항을 커밋하고 GitHub 에 푸시해야 합니다.
- 리포지토리 디렉토리에 있는지 확인합니다:
cd ~/project/github-actions-demo
- 새 워크플로우 파일을 스테이징합니다:
git add .github/workflows/simple-commands.yml
- 설명적인 메시지와 함께 변경 사항을 커밋합니다:
git commit -m "Add simple commands workflow"
예시 출력:
[main ... ] Add simple commands workflow
1 file changed, 14 insertions(+)
create mode 100644 .github/workflows/simple-commands.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% (4/4), done.
Writing objects: 100% (4/4), 447 bytes | 447.00 KiB/s, done.
Total 4 (delta 1), reused 0 (delta 0), pack-reused 0
To https://github.com/your-username/github-actions-demo.git
abcdef1..1234567 main -> main
GitHub Actions 탭에서 워크플로우 실행 로그 보기
코드를 푸시하면 GitHub 에서 워크플로우가 자동으로 트리거됩니다. 워크플로우 실행 로그를 확인하여 어떤 일이 발생했는지 볼 수 있습니다.
- 웹 브라우저에서 GitHub 의 저장소로 이동합니다:
https://github.com/your-username/github-actions-demo - 저장소 페이지 상단의 Actions 탭을 클릭합니다.
- "Simple Commands" 또는 "Add simple commands workflow"로 이름 붙여진 워크플로우 실행 목록이 표시되어야 합니다.
참고: 코드를 푸시할 때 저장소에 여러 워크플로우 파일이 있는 경우 여러 Actions 가 트리거될 수 있습니다. 왼쪽 사이드바에서 워크플로우 이름을 확인하거나 오른쪽의 워크플로우 실행 목록을 사용하여 올바른 워크플로우 실행을 식별하십시오.
- 워크플로우 실행 제목을 클릭한 다음 build 작업을 클릭합니다.
- Echo Hello, Show Date, List Files 단계를 확장하여 해당 출력을 확인합니다.
List Files 단계에서 숨겨진 파일 (. 및 ..) 을 제외하고 빈 디렉토리가 표시되는 것을 확인할 수 있으며, 이는 러너 (runner) 가 깨끗한 상태에서 시작됨을 보여줍니다.


요약
본 랩 (lab) 에서는 여러 셸 명령어 (shell command) 를 실행하는 GitHub Actions 워크플로를 성공적으로 생성했습니다. 다음 사항들을 배웠습니다.
- Job 정의:
build작업을 생성했습니다. - Runner 선택:
runs-on: ubuntu-latest를 사용했습니다. - 다중 명령어 실행:
echo,date,ls를 실행하는 단계를 추가했습니다. - Runner 환경 관찰: 러너가 빈 디렉터리에서 시작하는 것을 확인했습니다.
다음 랩에서는 Checkout Action 을 사용하여 러너 내에서 리포지토리 파일에 접근하는 방법을 배울 것입니다.



