|
1 | | -name: CI/CD |
| 1 | +# name: CI/CD |
2 | 2 |
|
3 | | -# 트리거: release/** 브랜치에 PR이 생성되거나 merge될 때 실행 |
4 | | -on: |
5 | | - pull_request: |
6 | | - branches: |
7 | | - - 'release/**' # release/DODREAM-0.1.0 등 |
8 | | - types: [opened, synchronize, reopened] |
9 | | - push: |
10 | | - branches: |
11 | | - - 'release/**' # PR merge 시 자동으로 push 이벤트 발생 |
| 3 | +# # 트리거: release/** 브랜치에 PR이 생성되거나 merge될 때 실행 |
| 4 | +# on: |
| 5 | +# pull_request: |
| 6 | +# branches: |
| 7 | +# - 'release/**' # release/DODREAM-0.1.0 등 |
| 8 | +# types: [opened, synchronize, reopened] |
| 9 | +# push: |
| 10 | +# branches: |
| 11 | +# - 'release/**' # PR merge 시 자동으로 push 이벤트 발생 |
12 | 12 |
|
13 | | -jobs: |
14 | | - # Job 1: 빌드 및 테스트 |
15 | | - build-and-test: |
16 | | - runs-on: ubuntu-latest |
| 13 | +# jobs: |
| 14 | +# # Job 1: 빌드 및 테스트 |
| 15 | +# build-and-test: |
| 16 | +# runs-on: ubuntu-latest |
17 | 17 |
|
18 | | - steps: |
19 | | - - name: 코드 체크아웃 |
20 | | - uses: actions/checkout@v4 |
| 18 | +# steps: |
| 19 | +# - name: 코드 체크아웃 |
| 20 | +# uses: actions/checkout@v4 |
21 | 21 |
|
22 | | - - name: JDK 21 설정 |
23 | | - uses: actions/setup-java@v4 |
24 | | - with: |
25 | | - java-version: '21' |
26 | | - distribution: 'temurin' |
27 | | - cache: gradle |
| 22 | +# - name: JDK 21 설정 |
| 23 | +# uses: actions/setup-java@v4 |
| 24 | +# with: |
| 25 | +# java-version: '21' |
| 26 | +# distribution: 'temurin' |
| 27 | +# cache: gradle |
28 | 28 |
|
29 | | - - name: Gradle 실행 권한 부여 |
30 | | - run: chmod +x gradlew |
| 29 | +# - name: Gradle 실행 권한 부여 |
| 30 | +# run: chmod +x gradlew |
31 | 31 |
|
32 | | - - name: Gradle 빌드 (테스트 제외) |
33 | | - run: ./gradlew clean build -x test |
| 32 | +# - name: Gradle 빌드 (테스트 제외) |
| 33 | +# run: ./gradlew clean build -x test |
34 | 34 |
|
35 | | - - name: 테스트 실행 |
36 | | - run: ./gradlew test |
| 35 | +# - name: 테스트 실행 |
| 36 | +# run: ./gradlew test |
37 | 37 |
|
38 | | - # Job 2: Docker 이미지 빌드 및 푸시 |
39 | | - build-and-push-docker: |
40 | | - needs: build-and-test # build-and-test가 성공해야 실행됨 |
41 | | - runs-on: ubuntu-latest |
42 | | - # release 브랜치에 push된 경우에만 실행 (PR은 제외) |
43 | | - if: github.event_name == 'push' && startsWith(github.ref, 'refs/heads/release/') |
| 38 | +# # Job 2: Docker 이미지 빌드 및 푸시 |
| 39 | +# build-and-push-docker: |
| 40 | +# needs: build-and-test # build-and-test가 성공해야 실행됨 |
| 41 | +# runs-on: ubuntu-latest |
| 42 | +# # release 브랜치에 push된 경우에만 실행 (PR은 제외) |
| 43 | +# if: github.event_name == 'push' && startsWith(github.ref, 'refs/heads/release/') |
44 | 44 |
|
45 | | - steps: |
46 | | - - name: 코드 체크아웃 |
47 | | - uses: actions/checkout@v4 |
| 45 | +# steps: |
| 46 | +# - name: 코드 체크아웃 |
| 47 | +# uses: actions/checkout@v4 |
48 | 48 |
|
49 | | - - name: Docker Buildx 설정 |
50 | | - uses: docker/setup-buildx-action@v3 |
| 49 | +# - name: Docker Buildx 설정 |
| 50 | +# uses: docker/setup-buildx-action@v3 |
51 | 51 |
|
52 | | - - name: Docker Hub 로그인 |
53 | | - uses: docker/login-action@v3 |
54 | | - with: |
55 | | - username: ${{ secrets.DOCKER_USERNAME }} |
56 | | - password: ${{ secrets.DOCKER_PASSWORD }} |
| 52 | +# - name: Docker Hub 로그인 |
| 53 | +# uses: docker/login-action@v3 |
| 54 | +# with: |
| 55 | +# username: ${{ secrets.DOCKER_USERNAME }} |
| 56 | +# password: ${{ secrets.DOCKER_PASSWORD }} |
57 | 57 |
|
58 | | - - name: 브랜치명에서 버전 추출 |
59 | | - id: extract_version |
60 | | - run: | |
61 | | - # release/DODREAM-0.1.0 → DODREAM-0.1.0 |
62 | | - VERSION=${GITHUB_REF#refs/heads/release/} |
63 | | - echo "VERSION=$VERSION" >> $GITHUB_OUTPUT |
64 | | - echo "Extracted version: $VERSION" |
| 58 | +# - name: 브랜치명에서 버전 추출 |
| 59 | +# id: extract_version |
| 60 | +# run: | |
| 61 | +# # release/DODREAM-0.1.0 → DODREAM-0.1.0 |
| 62 | +# VERSION=${GITHUB_REF#refs/heads/release/} |
| 63 | +# echo "VERSION=$VERSION" >> $GITHUB_OUTPUT |
| 64 | +# echo "Extracted version: $VERSION" |
65 | 65 |
|
66 | | - - name: Docker 이미지 빌드 및 푸시 |
67 | | - uses: docker/build-push-action@v5 |
68 | | - with: |
69 | | - context: . |
70 | | - push: true |
71 | | - tags: | |
72 | | - ${{ secrets.DOCKER_USERNAME }}/dodream-backend:latest |
73 | | - ${{ secrets.DOCKER_USERNAME }}/dodream-backend:${{ steps.extract_version.outputs.VERSION }} |
74 | | - cache-from: type=gha |
75 | | - cache-to: type=gha,mode=max |
| 66 | +# - name: Docker 이미지 빌드 및 푸시 |
| 67 | +# uses: docker/build-push-action@v5 |
| 68 | +# with: |
| 69 | +# context: . |
| 70 | +# push: true |
| 71 | +# tags: | |
| 72 | +# ${{ secrets.DOCKER_USERNAME }}/dodream-backend:latest |
| 73 | +# ${{ secrets.DOCKER_USERNAME }}/dodream-backend:${{ steps.extract_version.outputs.VERSION }} |
| 74 | +# cache-from: type=gha |
| 75 | +# cache-to: type=gha,mode=max |
76 | 76 |
|
77 | | - # Job 3: NCP 서버에 배포 |
78 | | - deploy: |
79 | | - needs: build-and-push-docker # Docker 이미지가 푸시된 후 실행 |
80 | | - runs-on: ubuntu-latest |
| 77 | +# # Job 3: NCP 서버에 배포 |
| 78 | +# deploy: |
| 79 | +# needs: build-and-push-docker # Docker 이미지가 푸시된 후 실행 |
| 80 | +# runs-on: ubuntu-latest |
81 | 81 |
|
82 | | - steps: |
83 | | - - name: 코드 체크아웃 |
84 | | - uses: actions/checkout@v4 |
| 82 | +# steps: |
| 83 | +# - name: 코드 체크아웃 |
| 84 | +# uses: actions/checkout@v4 |
85 | 85 |
|
86 | | - - name: NCP 서버에 SSH 접속하여 배포 |
87 | | - uses: appleboy/ssh-action@master |
88 | | - with: |
89 | | - host: ${{ secrets.NCP_HOST }} |
90 | | - username: ${{ secrets.NCP_USERNAME }} |
91 | | - key: ${{ secrets.NCP_SSH_KEY }} |
92 | | - port: 22 |
93 | | - script: | |
94 | | - # 배포 디렉토리 생성 |
95 | | - mkdir -p ~/dodream |
96 | | - cd ~/dodream |
| 86 | +# - name: NCP 서버에 SSH 접속하여 배포 |
| 87 | +# uses: appleboy/ssh-action@master |
| 88 | +# with: |
| 89 | +# host: ${{ secrets.NCP_HOST }} |
| 90 | +# username: ${{ secrets.NCP_USERNAME }} |
| 91 | +# key: ${{ secrets.NCP_SSH_KEY }} |
| 92 | +# port: 22 |
| 93 | +# script: | |
| 94 | +# # 배포 디렉토리 생성 |
| 95 | +# mkdir -p ~/dodream |
| 96 | +# cd ~/dodream |
97 | 97 |
|
98 | | - # .env 파일 생성 (환경변수 설정) |
99 | | - # docker-compose에서 이 값들을 읽어 컨테이너에 주입 |
100 | | - cat > .env << EOF |
101 | | - DOCKER_USERNAME=${{ secrets.DOCKER_USERNAME }} |
102 | | - MYSQL_DATABASE=${{ secrets.MYSQL_DATABASE }} |
103 | | - MYSQL_USER=${{ secrets.MYSQL_USER }} |
104 | | - MYSQL_PASSWORD=${{ secrets.MYSQL_PASSWORD }} |
105 | | - MYSQL_ROOT_PASSWORD=${{ secrets.MYSQL_ROOT_PASSWORD }} |
106 | | - GOOGLE_CLIENT_ID=${{ secrets.GOOGLE_CLIENT_ID }} |
107 | | - GOOGLE_CLIENT_SECRET=${{ secrets.GOOGLE_CLIENT_SECRET }} |
108 | | - JWT_SECRET=${{ secrets.JWT_SECRET }} |
109 | | - EOF |
| 98 | +# # .env 파일 생성 (환경변수 설정) |
| 99 | +# # docker-compose에서 이 값들을 읽어 컨테이너에 주입 |
| 100 | +# cat > .env << EOF |
| 101 | +# DOCKER_USERNAME=${{ secrets.DOCKER_USERNAME }} |
| 102 | +# MYSQL_DATABASE=${{ secrets.MYSQL_DATABASE }} |
| 103 | +# MYSQL_USER=${{ secrets.MYSQL_USER }} |
| 104 | +# MYSQL_PASSWORD=${{ secrets.MYSQL_PASSWORD }} |
| 105 | +# MYSQL_ROOT_PASSWORD=${{ secrets.MYSQL_ROOT_PASSWORD }} |
| 106 | +# GOOGLE_CLIENT_ID=${{ secrets.GOOGLE_CLIENT_ID }} |
| 107 | +# GOOGLE_CLIENT_SECRET=${{ secrets.GOOGLE_CLIENT_SECRET }} |
| 108 | +# JWT_SECRET=${{ secrets.JWT_SECRET }} |
| 109 | +# EOF |
110 | 110 |
|
111 | | - # GitHub에서 docker-compose.yml 다운로드 |
112 | | - curl -o docker-compose.yml https://raw.githubusercontent.com/${{ github.repository }}/${{ github.ref_name }}/docker-compose.yml |
| 111 | +# # GitHub에서 docker-compose.yml 다운로드 |
| 112 | +# curl -o docker-compose.yml https://raw.githubusercontent.com/${{ github.repository }}/${{ github.ref_name }}/docker-compose.yml |
113 | 113 |
|
114 | | - # Docker Hub 로그인 (Private Repository 접근용) |
115 | | - echo "${{ secrets.DOCKER_PASSWORD }}" | docker login -u "${{ secrets.DOCKER_USERNAME }}" --password-stdin |
| 114 | +# # Docker Hub 로그인 (Private Repository 접근용) |
| 115 | +# echo "${{ secrets.DOCKER_PASSWORD }}" | docker login -u "${{ secrets.DOCKER_USERNAME }}" --password-stdin |
116 | 116 |
|
117 | | - # 최신 Docker 이미지 pull |
118 | | - docker compose pull || docker-compose pull |
| 117 | +# # 최신 Docker 이미지 pull |
| 118 | +# docker compose pull || docker-compose pull |
119 | 119 |
|
120 | | - # 기존 컨테이너 중지 및 제거 |
121 | | - docker compose down || docker-compose down |
| 120 | +# # 기존 컨테이너 중지 및 제거 |
| 121 | +# docker compose down || docker-compose down |
122 | 122 |
|
123 | | - # 새 컨테이너 실행 (백그라운드) |
124 | | - docker compose up -d || docker-compose up -d |
| 123 | +# # 새 컨테이너 실행 (백그라운드) |
| 124 | +# docker compose up -d || docker-compose up -d |
125 | 125 |
|
126 | | - # 사용하지 않는 이미지 정리 (디스크 공간 확보) |
127 | | - docker image prune -af |
| 126 | +# # 사용하지 않는 이미지 정리 (디스크 공간 확보) |
| 127 | +# docker image prune -af |
128 | 128 |
|
129 | | - echo "✅ 배포 완료!" |
| 129 | +# echo "✅ 배포 완료!" |
0 commit comments