[BASIC #2] 워크플로우 생성 및 실행 실습

2025. 6. 24. 08:51·CI&CD/GitHub Actions

0. 들어가며

[BASIC #1]에서는 CI/CD 개념과 GitHub Actions의 이론을 알아보았다. 이번 포스팅에서는 실제로 GitHub 저장소를 만들고, 첫 번째 워크플로우를 작성하여 실행해보겠다. 이론만 공부하면 지루하니까, 직접 손으로 작성해보면서 GitHub Actions의 기본 동작 방식을 체험해보자.


1. 실습 준비: GitHub Repository 생성

1.1. 새 저장소 만들기

  1. GitHub에 로그인한다.
  2. 우측 상단 + 버튼 → New repository 클릭
  3. 저장소 정보 입력:
    • Repository name: github-actions-practice
    • Description: (선택) "GitHub Actions 연습용 저장소"
    • Public 또는 Private 선택 (Public 권장)
    • "Add a README file" 체크
  4. Create repository 버튼 클릭

2. 워크플로우 파일 생성

2.1. .github/workflows 디렉토리 생성

GitHub Actions는 반드시 다음과 같은 경로에 YAML 파일을 위치시켜야 인식한다.

.github/workflows/*.yml

주의할 점:

  • .github 디렉토리 이름 앞에 점(.) 이 있어야 한다.
  • workflows 디렉토리 이름은 복수형이다.
  • 오타가 나면 GitHub Actions가 인식하지 못한다.

2.2. 첫 번째 워크플로우 파일 작성

  1. 저장소의 Add file → Create new file 클릭
  2. 파일 이름 입력: .github/workflows/first-workflow.yml
  3. 다음 내용을 복사하여 붙여넣는다.
name: My First Workflow

on:
  push:
    branches: [ main ]
  workflow_dispatch:

jobs:
  say-hello:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Print a message
        run: echo "Hello, GitHub Actions!"

      - name: List files
        run: ls -la

      - name: Print current date
        run: |
          echo "Current time: $(date)"
          echo "Repository: ${{ github.repository }}"
  1. 페이지 하단 Commit new file 버튼 클릭

3. 워크플로우 파일 분석

3.1. name

name: My First Workflow
  • 워크플로우의 식별 이름이다.
  • GitHub Actions 탭에서 이 이름으로 표시된다.
  • 필수는 아니지만, 여러 워크플로우가 있을 때 구분을 위해 작성하는 것이 좋다.

3.2. on

on:
  push:
    branches: [ main ]
  workflow_dispatch:
  • 워크플로우를 실행할 트리거(이벤트) 를 정의한다.
  • push: main 브랜치에 코드가 push될 때 실행된다.
  • workflow_dispatch: GitHub 웹 UI에서 수동으로 실행할 수 있게 한다.

3.3. jobs

jobs:
  say-hello:
    runs-on: ubuntu-latest
    steps:
      - ...
  • 실행할 Job을 정의한다.
  • say-hello: Job의 ID다. (식별자 역할)
  • runs-on: 이 Job을 실행할 환경을 지정한다. (ubuntu-latest, windows-latest, macos-latest 등)

3.4. steps

steps:
  - name: Checkout code
    uses: actions/checkout@v4

  - name: Print a message
    run: echo "Hello, GitHub Actions!"
  • Job 내에서 순차적으로 실행될 작업들이다.
  • uses: 미리 만들어진 Action을 사용한다.
    • actions/checkout@v4: 저장소 코드를 Runner로 가져오는 공식 Action
  • run: 직접 쉘 명령어를 실행한다.
  • name: 각 Step의 이름으로, 로그에서 표시된다.

4. 워크플로우 실행 확인

4.1. 자동 실행 확인 (push 트리거)

방금 first-workflow.yml 파일을 commit했으므로, 이 자체가 push 이벤트를 발생시킨다.

  1. 저장소 상단의 Actions 탭 클릭
  2. 왼쪽 사이드바에 "My First Workflow"가 보인다.
  3. 현재 실행 중인 워크플로우 목록에서 가장 최근 항목 클릭

4.2. 실행 로그 확인

  1. 실행 중인 워크플로우를 클릭하면 Job 목록이 보인다.
  2. say-hello Job 클릭
  3. 각 Step별 실행 로그를 확인할 수 있다.

로그에서 확인할 내용:

  • Checkout code: 저장소 코드를 가져오는 과정
  • Print a message: "Hello, GitHub Actions!" 출력
  • List files: 저장소 파일 목록
  • Print current date: 현재 시간과 저장소 이름 출력

4.3. 수동 실행 (workflow_dispatch)

  1. Actions 탭으로 이동
  2. 왼쪽 사이드바에서 "My First Workflow" 선택
  3. Run workflow 버튼 클릭
  4. 브랜치 선택 후 Run workflow 클릭

이렇게 하면 코드 변경 없이도 수동으로 워크플로우를 실행할 수 있다.


5. 실습: 다양한 트리거 실험

5.1. 다른 브랜치에 push하기

새 브랜치를 만들고 push해보자.

# 새 브랜치 생성
git checkout -b feature/test

# 파일 수정 (README.md 등)
echo "Test" >> README.md

# commit 및 push
git add .
git commit -m "Test commit on feature branch"
git push origin feature/test

결과: main 브랜치가 아니므로 워크플로우가 실행되지 않는다.

5.2. PR 생성하기

  1. GitHub 저장소에서 Pull requests 탭 → New pull request
  2. feature/test 브랜치를 main으로 병합하는 PR 생성
  3. 결과: pull_request 이벤트는 정의하지 않았으므로 실행되지 않는다.

5.3. 트리거 추가하기

파일을 수정하여 pull_request도 실행되도록 해보자.

name: My First Workflow

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]
  workflow_dispatch:

jobs:
  say-hello:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: echo "Triggered by ${{ github.event_name }}"

이제 PR을 생성하면 워크플로우가 실행되고, 이벤트 이름이 출력된다.


6. 워크플로우 상태와 아이콘 이해하기

GitHub Actions에서는 각 실행 상태를 아이콘으로 표시한다.

아이콘  상태  설명
✅ 성공 모든 Step이 정상 완료
❌ 실패 하나 이상의 Step에서 오류 발생
⏺️ 대기 중 실행 대기 중
🔄 진행 중 현재 실행 중
⏸️ 취소됨 사용자가 취소

7. 워크플로우 비활성화/삭제

7.1. 워크플로우 비활성화

  1. 저장소 Actions 탭
  2. 왼쪽 사이드바에서 해당 워크플로우 선택
  3. 우측 상단 ⋮ 메뉴 → Disable workflow

7.2. 워크플로우 파일 삭제

  1. 저장소에서 .github/workflows/first-workflow.yml 파일 삭제
  2. commit
  3. 더 이상 Actions 탭에 표시되지 않음

8. 정리

이번 포스팅에서는 실제로 GitHub Actions를 사용해보았다.

단계  내용
저장소 생성 GitHub에 연습용 저장소 만들기
워크플로우 파일 생성 .github/workflows/first-workflow.yml 작성
트리거 설정 push, workflow_dispatch 이벤트 정의
Job과 Step 정의 checkout Action 사용, echo 명령어 실행
실행 확인 Actions 탭에서 로그 확인
수동 실행 workflow_dispatch로 직접 실행

'CI&CD > GitHub Actions' 카테고리의 다른 글

[ADVANED #1] GitHub Actions에서 Docker 고급 빌드 전략 (Buildx, 캐싱, 보안)  (0) 2026.02.24
[BASIC #5] 실전 프로젝트: Spring Boot 앱 CI/CD 파이프라인 구축하기  (0) 2026.02.24
[BASIC #4] GitHub Actions 변수와 컨텍스트 마스터하기  (0) 2026.02.24
[BASIC #3] GitHub Actions 핵심 문법 완벽 가이드  (0) 2025.09.23
[BASIC #1] CI/CD 개념부터 GitHub Actions 이해하기 - 이론편  (0) 2025.06.17
'CI&CD/GitHub Actions' 카테고리의 다른 글
  • [BASIC #5] 실전 프로젝트: Spring Boot 앱 CI/CD 파이프라인 구축하기
  • [BASIC #4] GitHub Actions 변수와 컨텍스트 마스터하기
  • [BASIC #3] GitHub Actions 핵심 문법 완벽 가이드
  • [BASIC #1] CI/CD 개념부터 GitHub Actions 이해하기 - 이론편
h6bro
h6bro
백엔드 개발자의 기술 블로그
  • h6bro
    Jun's Tech Blog
    h6bro
  • 전체
    오늘
    어제
    • 분류 전체보기 (250) N
      • Java (18)
        • Core (9)
        • Design Pattern (9)
      • Spring (80)
        • Core (24)
        • MVC (6)
        • DB (10)
        • JPA (26)
        • Monitoring (3)
        • Security (11)
        • WebSocket (0)
      • Database (33)
        • Redis (15)
        • MySQL (18)
      • MSA (25) N
        • MSA 기본 (11)
        • MSA 아키텍처 (14) N
      • Kafka (30)
        • Core (18)
        • Connect (12)
      • ElasticSearch (11)
        • Search (11)
        • Logging (0)
      • Test (4)
        • k6 (4)
      • Docker (9)
      • CI&CD (10)
        • GitHub Actions (6)
        • ArgoCD (4)
      • Kubernetes (18)
        • Core (12)
        • Ops (6)
      • Cloud Engineering (4)
        • AWS Infrastructure (3)
        • AWS EKS (1)
        • Terraform (0)
      • Project (8)
        • LinkFolio (1)
        • Secondhand Market (7)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

    • Cloud Engineering 포스팅 정리
  • 인기 글

  • 태그

    ㅈ
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
h6bro
[BASIC #2] 워크플로우 생성 및 실행 실습
상단으로

티스토리툴바