Skip to content

Commit 126b65c

Browse files
committed
CLAP-338 chore : develop cd 및 release cd 분리
<footer> - #433
1 parent f1d3557 commit 126b65c

2 files changed

Lines changed: 91 additions & 23 deletions

File tree

.github/workflows/dev-cd.yml

Lines changed: 19 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,27 @@
11
# github repository actions 페이지에 나타날 이름
2-
name: CD for Release
2+
name: CD to dev using github actions
33

44
# event trigger
5+
# develop 브랜치에 pull_request가 닫혔을 때 실행
56
on:
6-
release:
7-
types: [created]
7+
pull_request:
8+
types: [ closed ]
9+
branches: [ "develop" ]
810

911
permissions:
1012
contents: read
1113

1214
jobs:
13-
Release-CD:
15+
DEV-CD:
16+
if: github.event.pull_request.merged == true
1417
runs-on: ubuntu-latest
1518
steps:
1619
- uses: actions/checkout@v4
17-
18-
- name: 'Set up JDK'
20+
- name: 'Set up jdk'
1921
uses: actions/setup-java@v3
2022
with:
2123
java-version: '17'
22-
distribution: 'temurin'
23-
24-
- name: Extract release version
25-
id: version
26-
run: echo "VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
24+
distribution: 'temurin' # https://github.com/actions/setup-java
2725

2826
- run: touch ./Dockerfile
2927
- run: echo "${{ secrets.DEV_DOCKERFILE }}" > ./Dockerfile
@@ -39,22 +37,21 @@ jobs:
3937
restore-keys: |
4038
${{ runner.os }}-gradle-
4139
42-
# gradle build
40+
## gradle build
4341
- name: Build with Gradle
4442
run: |
4543
chmod +x ./gradlew
4644
./gradlew build -x test
4745
48-
# docker build & push
49-
- name: Docker build & push
46+
## docker build & push to production
47+
- name: Docker build & push to dev
5048
run: |
5149
docker login clap.kr-central-2.kcr.dev -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }}
52-
docker build -t ${{ secrets.DOCKER_REPO }}:${{ steps.version.outputs.VERSION }} -t ${{ secrets.DOCKER_REPO }}:latest .
53-
docker push ${{ secrets.DOCKER_REPO }}:${{ steps.version.outputs.VERSION }}
54-
docker push ${{ secrets.DOCKER_REPO }}:latest
50+
docker build -t ${{ secrets.DOCKER_REPO }} .
51+
docker push ${{ secrets.DOCKER_REPO }}
5552
56-
# deploy
57-
- name: Deploy
53+
## deploy to dev
54+
- name: Deploy to prod
5855
uses: appleboy/ssh-action@master
5956
id: deploy
6057
with:
@@ -64,9 +61,8 @@ jobs:
6461
port: ${{ secrets.DEV_HOST_PORT }}
6562
script: |
6663
docker rm -f taskflow
67-
docker image rm ${{ secrets.DOCKER_REPO }}:${{ steps.version.outputs.VERSION }} -f
64+
docker image rm ${{ secrets.DOCKER_REPO }} -f
6865
docker run --name taskflow -d -p 9090:9090 \
6966
--env-file /home/ubuntu/.env \
70-
${{ secrets.DOCKER_REPO }}:${{ steps.version.outputs.VERSION }} \
71-
--restart on-failure
72-
67+
${{ secrets.DOCKER_REPO }} \
68+
--restart on-failure

.github/workflows/release-cd.yml

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
# github repository actions 페이지에 나타날 이름
2+
name: CD for Release
3+
4+
# event trigger
5+
on:
6+
release:
7+
types: [created]
8+
9+
permissions:
10+
contents: read
11+
12+
jobs:
13+
Release-CD:
14+
runs-on: ubuntu-latest
15+
steps:
16+
- uses: actions/checkout@v4
17+
18+
- name: 'Set up JDK'
19+
uses: actions/setup-java@v3
20+
with:
21+
java-version: '17'
22+
distribution: 'temurin'
23+
24+
- name: Extract release version
25+
id: version
26+
run: echo "VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
27+
28+
- run: touch ./Dockerfile
29+
- run: echo "${{ secrets.DEV_DOCKERFILE }}" > ./Dockerfile
30+
31+
# gradle caching - 빌드 시간 향상
32+
- name: Gradle Caching
33+
uses: actions/cache@v4
34+
with:
35+
path: |
36+
~/.gradle/caches
37+
~/.gradle/wrapper
38+
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
39+
restore-keys: |
40+
${{ runner.os }}-gradle-
41+
42+
# gradle build
43+
- name: Build with Gradle
44+
run: |
45+
chmod +x ./gradlew
46+
./gradlew build -x test
47+
48+
# docker build & push
49+
- name: Docker build & push
50+
run: |
51+
docker login clap.kr-central-2.kcr.dev -u ${{ secrets.DOCKER_USERNAME }} -p ${{ secrets.DOCKER_PASSWORD }}
52+
docker build -t ${{ secrets.DOCKER_REPO }}:${{ steps.version.outputs.VERSION }} -t ${{ secrets.DOCKER_REPO }}:latest .
53+
docker push ${{ secrets.DOCKER_REPO }}:${{ steps.version.outputs.VERSION }}
54+
docker push ${{ secrets.DOCKER_REPO }}:latest
55+
56+
# deploy
57+
- name: Deploy
58+
uses: appleboy/ssh-action@master
59+
id: deploy
60+
with:
61+
host: ${{ secrets.DEV_HOST }}
62+
username: ${{ secrets.DEV_HOST_USERNAME }}
63+
key: ${{ secrets.DEV_HOST_KEY }}
64+
port: ${{ secrets.DEV_HOST_PORT }}
65+
script: |
66+
docker rm -f taskflow
67+
docker image rm ${{ secrets.DOCKER_REPO }}:${{ steps.version.outputs.VERSION }} -f
68+
docker run --name taskflow -d -p 9090:9090 \
69+
--env-file /home/ubuntu/.env \
70+
${{ secrets.DOCKER_REPO }}:${{ steps.version.outputs.VERSION }} \
71+
--restart on-failure
72+

0 commit comments

Comments
 (0)