GitHub Actions · Gradle 빌드 → 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설정이 필요합니다.
- 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 &