Skip to content

Commit dfd1418

Browse files
committed
[FIX] cicd submodule 해결
1 parent 67b60aa commit dfd1418

File tree

5 files changed

+31
-73
lines changed

5 files changed

+31
-73
lines changed

.github/workflows/cicd.yml

Lines changed: 18 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
name: CI/CD using github actions & docker
1+
name: CI/CD using GitHub Actions & Docker
22

3-
# event trigger
43
on:
54
push:
65
branches:
@@ -11,19 +10,22 @@ permissions:
1110

1211
jobs:
1312
build:
14-
1513
runs-on: ubuntu-latest
14+
1615
steps:
17-
# open jdk 17 버전 환경을 세팅
18-
- uses: actions/checkout@v3
16+
- name: Checkout repository with submodules
17+
uses: actions/checkout@v4
18+
with:
19+
token: ${{ secrets.CONFIG_TOKEN }}
20+
submodules: true
21+
1922
- name: Set up JDK 17
2023
uses: actions/setup-java@v3
2124
with:
2225
java-version: "17"
2326
distribution: "temurin"
2427

25-
# gradle caching - 빌드 시간 향상
26-
- name: Gradle Caching
28+
- name: Gradle caching
2729
uses: actions/cache@v3
2830
with:
2931
path: |
@@ -33,85 +35,41 @@ jobs:
3335
restore-keys: |
3436
${{ runner.os }}-gradle-
3537
36-
#Set up Gradle
3738
- name: Setup Gradle
3839
uses: gradle/gradle-build-action@v2
3940

40-
# Github Submodule에서 환경변수 가져오기
41-
- name: Checkout repo
42-
uses: actions/checkout@v4
43-
with:
44-
token: ${{secrets.CONFIG_TOKEN}}
45-
submodules: true
46-
47-
# 서브모듈 업데이트 (초기화)
48-
- name: Update Git Submodules
49-
run: |
50-
git submodule update --init --recursive
51-
ls -al Server-v2.0-Config/yml
52-
53-
# Gradle 빌드 전에, application.yml 존재 여부 확인
54-
- name: Check application.yml exists
55-
run: |
56-
if [ -f "Server-v2.0-Config/yml/application.yml" ]; then
57-
echo "application.yml exists"
58-
else
59-
echo "application.yml NOT FOUND"
60-
exit 1
61-
fi
62-
63-
# 프로젝트 메타정보 추출해서 Docker image에 태그 생성
64-
- name: Extract metadata (tags, labels) for Docker
65-
id: meta
66-
uses: docker/metadata-action@v5
67-
with:
68-
images: ${{secrets.DOCKER_USERNAME}}/daily-pay
69-
# 가장 최신 image 에 latest tag 달기
70-
flavor: |
71-
latest=true
72-
# Git short commit, use git version tag
73-
tags: |
74-
type=semver,pattern={{version}}
75-
76-
# gradle build
7741
- name: Build with Gradle
7842
run: |
7943
chmod +x ./gradlew
8044
./gradlew clean build -x test
8145
82-
# DockerHub 로그인
8346
- name: Login to Docker Hub
8447
uses: docker/login-action@v3
8548
with:
86-
username: ${{secrets.DOCKER_USERNAME}}
87-
password: ${{secrets.DOCKER_PASSWORD}}
49+
username: ${{ secrets.DOCKER_USERNAME }}
50+
password: ${{ secrets.DOCKER_PASSWORD }}
8851

89-
# Docker image Build해서 DockerHub에 Push
9052
- name: Docker build and push
9153
run: |
9254
docker build -t ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_REPO }} .
9355
docker push ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_REPO }}
9456
95-
# EC2 서버에 배포
96-
- name: Deploy to prod
57+
- name: Deploy to EC2
9758
uses: appleboy/ssh-action@master
98-
id: deploy-prod
9959
with:
100-
host: ${{ secrets.SSH_KNOWN_HOSTS }}
60+
host: ${{ secrets.SSH_HOST }}
10161
username: ${{ secrets.SSH_USER }}
102-
key: ${{ secrets.SSH_PEM_KEY }}
62+
key: ${{ secrets.SSH_PRIVATE_KEY }}
10363
script: |
104-
echo "Stopping and removing existing Docker containers..."
105-
sudo docker stop $(sudo docker ps -aq) || echo "No running containers"
106-
sudo docker rm -f $(sudo docker ps -aq) || echo "No containers to remove"
64+
echo "Stopping existing container..."
65+
sudo docker stop ai-tutor-app || echo "No running container to stop"
66+
sudo docker rm ai-tutor-app || echo "No container to remove"
10767
108-
echo "Pulling the latest Docker image..."
68+
echo "Pulling latest Docker image..."
10969
sudo docker pull ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_REPO }}:latest
11070
11171
echo "Starting new Docker container..."
11272
sudo docker run -d -p 80:8080 --restart always --name ai-tutor-app ${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_REPO }}:latest
11373
11474
echo "Cleaning up unused Docker images..."
11575
sudo docker image prune -f || echo "No images to prune"
116-
117-

build.gradle

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,19 @@ jar {
1515
enabled = false
1616
}
1717

18+
sourceSets {
19+
main {
20+
resources {
21+
srcDir 'Server-v2.0-Config/yml'
22+
include 'application.yml'
23+
}
24+
}
25+
}
26+
27+
tasks.named('processResources') {
28+
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
29+
}
30+
1831
configurations {
1932
compileOnly {
2033
extendsFrom annotationProcessor

src/main/resources/application-dev.yml

Lines changed: 0 additions & 5 deletions
This file was deleted.

src/main/resources/application-prod.yml

Lines changed: 0 additions & 5 deletions
This file was deleted.

src/main/resources/application.yml

Lines changed: 0 additions & 3 deletions
This file was deleted.

0 commit comments

Comments
 (0)