Skip to content

Commit ad0a77b

Browse files
author
coli-geonwoo
committed
chore: 인프라 이전을 위한 cd 스크립트 작성
1 parent 7f9f9ea commit ad0a77b

File tree

1 file changed

+83
-0
lines changed

1 file changed

+83
-0
lines changed
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
name: backend-cd-dev
2+
3+
on:
4+
push:
5+
branches:
6+
- hotfix/infra
7+
paths:
8+
- backend/**
9+
10+
env:
11+
DOCKERHUB_REPOSITORY: ody-official
12+
13+
jobs:
14+
build-and-push:
15+
runs-on: ubuntu-latest
16+
defaults:
17+
run:
18+
working-directory: backend
19+
steps:
20+
- uses: actions/checkout@v4
21+
22+
- name: Set up JDK 17
23+
uses: actions/setup-java@v4
24+
with:
25+
java-version: '17'
26+
distribution: 'temurin'
27+
28+
- name: Setup Gradle
29+
uses: gradle/actions/setup-gradle@v3
30+
31+
- name: Clean Build With Gradle Wrapper
32+
run: ./gradlew clean build
33+
34+
- name: Publish Test Results
35+
uses: EnricoMi/publish-unit-test-result-action@v2
36+
if: always()
37+
with:
38+
files: ${{ github.workspace }}/backend/build/test-results/**/*.xml
39+
40+
- name: JUnit Report Action
41+
uses: mikepenz/action-junit-report@v4
42+
if: always()
43+
with:
44+
report_paths: ${{ github.workspace }}/backend/build/test-results/**/*.xml
45+
46+
- name: Setup Docker Buildx
47+
uses: docker/setup-buildx-action@v3
48+
49+
- name: Login to Docker Hub
50+
uses: docker/login-action@v3
51+
with:
52+
username: ${{ secrets.DOCKERHUB_USERNAME }}
53+
password: ${{ secrets.DOCKERHUB_PASSWORD }}
54+
55+
- name: Docker Image Build And Push
56+
run: docker build --platform linux/arm64 -t ${{ secrets.DOCKERHUB_USERNAME }}/$DOCKERHUB_REPOSITORY:${{ github.sha }}-dev -f Dockerfile . --push
57+
58+
pull-and-deploy:
59+
needs: build-and-push
60+
runs-on: prod
61+
steps:
62+
- name: Login to Docker Hub
63+
uses: docker/login-action@v3
64+
with:
65+
username: ${{ secrets.DOCKERHUB_USERNAME }}
66+
password: ${{ secrets.DOCKERHUB_PASSWORD }}
67+
68+
- name: Clean Up Legacy Image
69+
run: |
70+
docker compose down || true
71+
docker rmi $(docker images -q) -f || true
72+
73+
- name: Docker Compose up
74+
run: |
75+
export DOCKERHUB_USERNAME=${{ secrets.DOCKERHUB_USERNAME }}
76+
export DOCKERHUB_REPOSITORY=$DOCKERHUB_REPOSITORY
77+
export DEV_MYSQL_PASSWORD=${{ secrets.DEV_MYSQL_PASSWORD }}
78+
export JASYPT_ENCRYPTOR_PASSWORD=${{ secrets.JASYPT_PASSWORD }}
79+
export GIT_SHA=${{ github.sha }}
80+
docker compose up -d
81+
82+
- name: Check Docker Process
83+
run: docker ps

0 commit comments

Comments
 (0)