Skip to content

Commit 7627080

Browse files
committed
Revert "setting: workflow 수정"
This reverts commit 1b4e442.
1 parent 5946933 commit 7627080

File tree

2 files changed

+153
-75
lines changed

2 files changed

+153
-75
lines changed

.github/workflows/Dev-CI-CD.yml

Lines changed: 77 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
name: Build Image & Deploy (DEV)
1+
name: Build Image & Push of Dev server
22

33
on:
44
push:
55
branches:
6-
- main
6+
[ "dev" ]
77
workflow_dispatch:
88

99
permissions:
@@ -12,21 +12,16 @@ permissions:
1212
jobs:
1313
CI-CD:
1414
runs-on: [ self-hosted, dev ]
15-
1615
steps:
17-
# 1. 소스 체크아웃
18-
- name: Checkout source
19-
uses: actions/checkout@v4
16+
- uses: actions/checkout@v4
2017

21-
# 2. JDK 설정
22-
- name: Set up JDK 21
18+
- name: set up JDK 21
2319
uses: actions/setup-java@v3
2420
with:
25-
distribution: temurin
26-
java-version: 21
21+
distribution: 'temurin'
22+
java-version: '21'
2723

28-
# 3. Gradle 캐시
29-
- name: Cache Gradle
24+
- name: cache gradle
3025
uses: actions/cache@v3
3126
with:
3227
path: |
@@ -36,43 +31,87 @@ jobs:
3631
restore-keys: |
3732
${{ runner.os }}-gradle-
3833
39-
# 4. application.yml 생성
40-
- name: Create application.yml
34+
- name: overwrite application.yml
35+
if: |
36+
contains(github.ref, 'dev')
4137
run: |
42-
mkdir -p src/main/resources
38+
mkdir -p ./src/main/resources
4339
echo "${{ secrets.YML }}" > src/main/resources/application.yml
40+
shell: bash
41+
42+
- name: set up redis
43+
uses: supercharge/redis-github-action@1.7.0
44+
with:
45+
redis-version: 6
4446

45-
# 5. Firebase key 생성
46-
- name: Create firebase-key.json
47+
- name: create-json
48+
id: create-json
4749
uses: jsdaniell/create-json@1.1.2
4850
with:
49-
name: firebase-key.json
51+
name: "firebase-key.json"
5052
json: ${{ secrets.FIREBASE_KEY }}
5153

52-
- name: Move firebase key
54+
- name: move firebase-key.json to src/main/resources
5355
run: |
54-
mkdir -p src/main/resources
55-
mv firebase-key.json src/main/resources/firebase-key.json
56+
mkdir -p ./src/main/resources
57+
cp firebase-key.json ./src/main/resources/firebase-key.json
58+
shell: bash
5659

57-
# 6. Gradle 빌드
58-
- name: Build with Gradle
60+
- name: build with gradle
5961
run: |
60-
./gradlew bootJar
62+
./gradlew bootjar
6163
62-
# 7. DockerHub 로그인
63-
- name: Docker login
64-
run: |
65-
docker login -u ${{ secrets.DOCKERHUB_USERNAME }} -p ${{ secrets.DOCKERHUB_PASSWORD }}
64+
- name: login into docker
65+
uses: docker/login-action@v2
66+
with:
67+
username: ${{ secrets.DOCKERHUB_USERNAME }}
68+
password: ${{ secrets.DOCKERHUB_PASSWORD }}
6669

67-
# 8. Docker 이미지 빌드 & 푸시
68-
- name: Build & Push Docker image
70+
- name: build docker image & push to docker hub
71+
if: contains(github.ref, 'dev')
6972
run: |
70-
docker build -f Dockerfile.prod -t ${{ secrets.DOCKERHUB_USERNAME }}/feelin-api:latest .
71-
docker push ${{ secrets.DOCKERHUB_USERNAME }}/feelin-api:latest
73+
pwd
74+
docker build -f Dockerfile.dev --platform linux/amd64 -t ${{ secrets.DOCKERHUB_USERNAME }}/feelin-dev:latest .
75+
docker push ${{ secrets.DOCKERHUB_USERNAME }}/feelin-dev:latest
7276
73-
# 9. 배포 (서버 내부 실행)
74-
- name: Deploy on prod server
75-
run: |
76-
docker pull ${{ secrets.DOCKERHUB_USERNAME }}/feelin-api:latest
77-
docker compose up -d
78-
docker image prune -f
77+
- name: send deploy file to dev server
78+
uses: appleboy/scp-action@master
79+
with:
80+
host: ${{ secrets.HOST_DEV }}
81+
username: ubuntu
82+
key: ${{ secrets.NEW_DEV_KEY }}
83+
source: ./scripts/deploy-dev.sh
84+
target: /home/ubuntu/
85+
86+
- name: send docker compose file to dev server
87+
uses: appleboy/scp-action@master
88+
with:
89+
host: ${{ secrets.HOST_DEV }}
90+
username: ubuntu
91+
key: ${{ secrets.NEW_DEV_KEY }}
92+
source: ./docker-compose-dev.yml
93+
target: /home/ubuntu/
94+
95+
- name: send firebase key file to dev server
96+
uses: appleboy/scp-action@master
97+
with:
98+
host: ${{ secrets.HOST_DEV }}
99+
username: ubuntu
100+
key: ${{ secrets.NEW_DEV_KEY }}
101+
source: firebase-key.json
102+
target: /home/ubuntu/
103+
104+
- name: deploy to dev server
105+
uses: appleboy/ssh-action@master
106+
id: deploy-dev
107+
if: contains(github.ref, 'dev')
108+
with:
109+
host: ${{ secrets.HOST_DEV }}
110+
username: ubuntu
111+
key: ${{ secrets.NEW_DEV_KEY }}
112+
envs: GITHUB_SHA
113+
script: |
114+
docker login -u ${{ secrets.DOCKERHUB_USERNAME }} -p ${{ secrets.DOCKERHUB_PASSWORD }}
115+
chmod 777 /home/ubuntu/scripts/deploy-dev.sh
116+
/home/ubuntu/scripts/deploy-dev.sh
117+
docker image prune -f

.github/workflows/Prod-CI-CD.yaml

Lines changed: 76 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
name: Build Image & Deploy (PROD)
1+
name: Build Image & Push
22

33
on:
44
push:
55
branches:
6-
- main
6+
[ "main" ]
77
workflow_dispatch:
88

99
permissions:
@@ -12,21 +12,16 @@ permissions:
1212
jobs:
1313
CI-CD:
1414
runs-on: [ self-hosted, prod ]
15-
1615
steps:
17-
# 1. 소스 체크아웃
18-
- name: Checkout source
19-
uses: actions/checkout@v4
16+
- uses: actions/checkout@v4
2017

21-
# 2. JDK 설정
22-
- name: Set up JDK 21
18+
- name: set up JDK 21
2319
uses: actions/setup-java@v3
2420
with:
25-
distribution: temurin
26-
java-version: 21
21+
distribution: 'temurin'
22+
java-version: '21'
2723

28-
# 3. Gradle 캐시
29-
- name: Cache Gradle
24+
- name: cache gradle
3025
uses: actions/cache@v3
3126
with:
3227
path: |
@@ -36,43 +31,87 @@ jobs:
3631
restore-keys: |
3732
${{ runner.os }}-gradle-
3833
39-
# 4. application.yml 생성
40-
- name: Create application.yml
34+
- name: overwrite application.yml
35+
if: |
36+
contains(github.ref, 'main')
4137
run: |
42-
mkdir -p src/main/resources
38+
mkdir -p ./src/main/resources
4339
echo "${{ secrets.YML }}" > src/main/resources/application.yml
40+
shell: bash
41+
42+
- name: set up redis
43+
uses: supercharge/redis-github-action@1.7.0
44+
with:
45+
redis-version: 6
4446

45-
# 5. Firebase key 생성
46-
- name: Create firebase-key.json
47+
- name: create-json
48+
id: create-json
4749
uses: jsdaniell/create-json@1.1.2
4850
with:
49-
name: firebase-key.json
51+
name: "firebase-key.json"
5052
json: ${{ secrets.FIREBASE_KEY }}
5153

52-
- name: Move firebase key
54+
- name: Move firebase-key.json to src/main/resources
5355
run: |
54-
mkdir -p src/main/resources
55-
mv firebase-key.json src/main/resources/firebase-key.json
56+
mkdir -p ./src/main/resources
57+
cp firebase-key.json ./src/main/resources/firebase-key.json
58+
shell: bash
5659

57-
# 6. Gradle 빌드
58-
- name: Build with Gradle
60+
- name: build with gradle
5961
run: |
60-
./gradlew bootJar
62+
./gradlew bootjar
6163
62-
# 7. DockerHub 로그인
63-
- name: Docker login
64-
run: |
65-
docker login -u ${{ secrets.DOCKERHUB_USERNAME }} -p ${{ secrets.DOCKERHUB_PASSWORD }}
64+
- name: login into docker
65+
uses: docker/login-action@v2
66+
with:
67+
username: ${{ secrets.DOCKERHUB_USERNAME }}
68+
password: ${{ secrets.DOCKERHUB_PASSWORD }}
6669

67-
# 8. Docker 이미지 빌드 & 푸시
68-
- name: Build & Push Docker image
70+
- name: build docker image & push to docker hub
71+
if: contains(github.ref, 'main')
6972
run: |
70-
docker build -f Dockerfile.prod -t ${{ secrets.DOCKERHUB_USERNAME }}/feelin-api:latest .
73+
pwd
74+
docker build -f Dockerfile.prod --platform linux/amd64 -t ${{ secrets.DOCKERHUB_USERNAME }}/feelin-api:latest .
7175
docker push ${{ secrets.DOCKERHUB_USERNAME }}/feelin-api:latest
7276
73-
# 9. 배포 (서버 내부 실행)
74-
- name: Deploy on prod server
75-
run: |
76-
docker pull ${{ secrets.DOCKERHUB_USERNAME }}/feelin-api:latest
77-
docker compose up -d
78-
docker image prune -f
77+
- name: send deploy file to main server
78+
uses: appleboy/scp-action@master
79+
with:
80+
host: ${{ secrets.HOST_PROD }}
81+
username: ubuntu
82+
key: ${{ secrets.NEW_KEY }}
83+
source: ./scripts/deploy-prod.sh
84+
target: /home/ubuntu/
85+
86+
- name: send docker compose file to main server
87+
uses: appleboy/scp-action@master
88+
with:
89+
host: ${{ secrets.HOST_PROD }}
90+
username: ubuntu
91+
key: ${{ secrets.NEW_KEY }}
92+
source: ./docker-compose.yml
93+
target: /home/ubuntu/
94+
95+
- name: send firebase key file to main server
96+
uses: appleboy/scp-action@master
97+
with:
98+
host: ${{ secrets.HOST_PROD }}
99+
username: ubuntu
100+
key: ${{ secrets.NEW_KEY }}
101+
source: firebase-key.json
102+
target: /home/ubuntu/
103+
104+
- name: deploy to main server
105+
uses: appleboy/ssh-action@master
106+
id: deploy-main
107+
if: contains(github.ref, 'main')
108+
with:
109+
host: ${{ secrets.HOST_PROD }}
110+
username: ubuntu
111+
key: ${{ secrets.NEW_KEY }}
112+
envs: GITHUB_SHA
113+
script: |
114+
docker login -u ${{ secrets.DOCKERHUB_USERNAME }} -p ${{ secrets.DOCKERHUB_PASSWORD }}
115+
chmod 777 /home/ubuntu/scripts/deploy-prod.sh
116+
/home/ubuntu/scripts/deploy-prod.sh
117+
docker image prune -f

0 commit comments

Comments
 (0)