GitHub - YunHwa0905/demo-deploy: [2025 SK Shieldus Rookies CI/CD Deploy] GitHub Actions · Gradle 빌드 → AWS EC2 자동 배포 실습 · GitHub
Skip to content

About

[2025 SK Shieldus Rookies CI/CD Deploy] GitHub Actions · Gradle 빌드 → AWS EC2 자동 배포 실습

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Repository files navigation

CI/CD Deploy

GitHub Actions · Gradle 빌드 → AWS EC2 자동 배포 파이프라인을 단계별로 학습한 실습 저장소입니다.


기술 스택

Java Spring Boot Thymeleaf Gradle GitHub Actions AWS EC2


프로젝트 구조

demo-deploy/
├── .github/
│   └── workflows/
│       └── deploy.yml          # GitHub Actions CI/CD 워크플로우
│
├── src/
│   └── main/
│       ├── java/com/example/demodeploy/
│       │   ├── DemoDeployApplication.java   # 애플리케이션 진입점
│       │   └── HomeController.java          # "/" 라우트 컨트롤러
│       └── resources/
│           ├── application.properties
│           └── templates/
│               └── home.html               # Thymeleaf 홈 템플릿
│
├── build.gradle
└── gradlew

실행 방법

로컬 실행

# 1. IntelliJ → File > Open → demo-deploy 선택
# 2. build.gradle 인식 후 의존성 다운로드 대기
# 3. DemoDeployApplication.java 실행
# 4. http://localhost:8080 접속

CI/CD 파이프라인 (GitHub Actions)

main 브랜치에 push
  → GitHub Actions 트리거
  → JDK 17 설치
  → ./gradlew clean build
  → JAR 파일 이름 변경 (run.jar)
  → appleboy/scp-action 으로 EC2 업로드
     (/home/ubuntu/server/demo/run.jar)

EC2 배포에는 GitHub Repository Secrets에 EC2_HOST, EC2_USER, EC2_KEY 설정이 필요합니다.


학습 내용

항목 주요 학습 내용
GitHub Actions 워크플로우 on.push 트리거, jobs / steps 구조, uses / run 구분
Gradle 빌드 자동화 gradlew 실행 권한(chmod +x) 설정, clean build, 빌드 산출물 확인
JAR 배포 준비 mv로 SNAPSHOT JAR → run.jar 이름 변경, plain JAR 제외
EC2 파일 전송 appleboy/scp-action SSH 업로드, 원격 경로 자동 생성
GitHub Secrets 민감 정보(호스트·계정·키) 시크릿 등록 및 워크플로우 참조
Spring Boot 기초 @Controller, Thymeleaf 템플릿 반환 구조

개발 환경

  • JDK 17 이상 — 다운로드
  • IntelliJ IDEA Ultimate (추천) / Community
  • GitHub Actions — main 브랜치 push 시 자동 실행
  • AWS EC2 — Ubuntu 인스턴스, SSH(22) 및 HTTP(8080) 포트 허용
# EC2에서 애플리케이션 실행 예시
nohup java -jar /home/ubuntu/server/demo/run.jar > app.log 2>&1 &

About

[2025 SK Shieldus Rookies CI/CD Deploy] GitHub Actions · Gradle 빌드 → AWS EC2 자동 배포 실습

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages