🐋 목차
🩵 학습 목표
- Github Actions를 이해합니다.
- 간단한 CI/CD 파이프라인을 구성합니다.
1. Github Actions
GitHub Actions
- GitHub에서 제공하는 CI/CD 자동화 도구
- 코드 변경(pull request, push 등)에 반응하여 자동으로 테스트, 빌드, 배포 등의 작업을 수행할 수 있다.
- GitHub 저장소 내부에서 실행되며, 외부 서비스 연동 없이 GitHub 환경에서 직접 워크플로우를 구성할 수 있는 점이 특징이다.
주요 구성 요소

- Workflow
- 자동화하고 싶은 전체 작업 정의
- .github/workflows/main.yml 등의 형식으로 저장
- Job
- 워크플로우 안에서 병렬 혹은 순차적으로 실행되는 작업 단위
- 예: build, test, deploy
- Step
- 각 Job 안에서 순차적으로 실행되는 세부 작업
- 예: 코드 체크아웃, 패키지 설치, 테스트 실행
- Action
- Step 안에서 재사용 가능한 명령 집합 (GitHub 커뮤니티나 직접 만든 것도 사용 가능)
- 예: actions/checkout, actions/setup-java
트리거 종류
| 트리거 | 설명 |
| push | 특정 브랜치로 푸시될 때 실행 |
| pull_request | PR이 열리거나 업데이트될 때 실행 |
| schedule | 크론 표현식을 사용해 주기적으로 실행 |
| workflow_dispatch | 수동 실행 트리거 (버튼 클릭) |
2. Github Actions CI
GitHub Actions에서 CI
- test를 통과한 코드만 develop 브랜치와 main 브랜치에 merge되도록 하여 오류를 방지하고 안정적인 코드가 배포되고 버그를 빠르게 발견
Github Actions로 CI 구성하기
- develop, feature/* 브랜치 푸시나 PR 발생 시 실행
- Java 17 설치 후 ./gradlew test로 테스트 자동 수행
name: Run Test
on:
push:
branches: [ develop, feature/* ]
pull_request:
branches: [ develop ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v4
- name: setup java
uses: actions/setup-java@v2
with:
distribution: 'adopt'
java-version: '17'
- name: run test
run: |
chmod +x ./gradlew
./gradlew clean test
실습
https://github.com/gajicoding/ci-sample
GitHub - gajicoding/ci-sample
Contribute to gajicoding/ci-sample development by creating an account on GitHub.
github.com
3. Github Actions CD
GitHub Actions에서 CD
- 배포를 자동화하는 작업을 기술해서 빠르고 간편하게 배포
전체 흐름
- feature/* → PR 생성 → gradle test 수행
- test 성공 시 → 리뷰 → merge
- main 브랜치로 merge → 자동 배포

실습
https://github.com/gajicoding/cicd-sample
GitHub - gajicoding/cicd-sample
Contribute to gajicoding/cicd-sample development by creating an account on GitHub.
github.com
'Backend > 강의' 카테고리의 다른 글
| [🐋 Docker + CI/CD] 4. AWS 연동 (1) | 2025.07.03 |
|---|---|
| [🐋 Docker + CI/CD] 3-2. Docker 모니터링과 로깅 (0) | 2025.07.02 |
| [🐋 Docker + CI/CD] 3-1. Dockerfile 과 Docker Compose (0) | 2025.07.02 |
| [🐋 Docker + CI/CD] 1. CICD와 Docker 이해 (5) | 2025.07.01 |