Skip to content

Commit c23aa85

Browse files
chore/#243 운영 배포를 위한 스테이징 환경 구축 및 스크립트 구성 (#244)
* refactor: admin api 엔드포인트 admin 프리픽스 추가 * chore: 프로덕션 스웨거 false * chore: 스테이징 도커 환경 세팅 * chore: Staing 배포 스크립트 구성 * chore: 애플리케이션에 태그 추가 * Update .github/workflows/staging-build-deploy.yml Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update .github/workflows/staging-build-deploy.yml Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * chore: 코드래빗 리뷰 적용 --------- Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
1 parent b3606e5 commit c23aa85

File tree

22 files changed

+258
-12
lines changed

22 files changed

+258
-12
lines changed
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
name: Build and Deploy to Staging Server
2+
3+
on:
4+
workflow_dispatch:
5+
6+
jobs:
7+
build-and-deploy:
8+
runs-on: ubuntu-latest
9+
environment: staging
10+
11+
steps:
12+
- name: Checkout repository
13+
uses: actions/checkout@v4
14+
15+
- name: Set up JDK 17
16+
uses: actions/setup-java@v4
17+
with:
18+
java-version: '17'
19+
distribution: 'temurin'
20+
21+
- name: Grant execute permission for gradlew
22+
run: chmod +x gradlew
23+
24+
- name: Build all modules
25+
run: |
26+
./gradlew clean build -p aics-admin -x test
27+
./gradlew clean build -p aics-api -x test
28+
./gradlew clean build -p aics-auth -x test
29+
30+
- name: Build Docker images
31+
run: |
32+
docker build -t aics-admin:${GITHUB_SHA} -f aics-admin/Dockerfile aics-admin
33+
docker build -t aics-api:${GITHUB_SHA} -f aics-api/Dockerfile aics-api
34+
docker build -t aics-auth:${GITHUB_SHA} -f aics-auth/Dockerfile aics-auth
35+
36+
- name: Save Docker images as tar
37+
run: |
38+
mkdir -p deploy
39+
docker save aics-admin:${GITHUB_SHA} -o deploy/aics-admin.tar
40+
docker save aics-api:${GITHUB_SHA} -o deploy/aics-api.tar
41+
docker save aics-auth:${GITHUB_SHA} -o deploy/aics-auth.tar
42+
43+
- name: Upload Docker images to server
44+
uses: appleboy/scp-action@v1.0.0
45+
with:
46+
host: ${{ secrets.STAGING_SERVER_HOST }}
47+
username: ${{ secrets.STAGING_SERVER_USERNAME }}
48+
password: ${{ secrets.STAGING_SERVER_PASSWORD }}
49+
port: ${{ secrets.STAGING_SERVER_PORT }}
50+
source: "deploy/*"
51+
target: ${{ secrets.STAGING_DEPLOY_PATH }}
52+
53+
- name: Deploy on server
54+
uses: appleboy/ssh-action@v1.1.0
55+
with:
56+
host: ${{ secrets.STAGING_SERVER_HOST }}
57+
username: ${{ secrets.STAGING_SERVER_USERNAME }}
58+
password: ${{ secrets.STAGING_SERVER_PASSWORD }}
59+
port: ${{ secrets.STAGING_SERVER_PORT }}
60+
script: |
61+
cd ${{ secrets.STAGING_DEPLOY_PATH }}
62+
chmod +x backend/deploy.sh
63+
./backend/deploy.sh

aics-admin/src/main/java/kgu/developers/admin/about/presentation/AboutAdminControllerImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222

2323
@RestController
2424
@RequiredArgsConstructor
25-
@RequestMapping("/api/v1/abouts")
25+
@RequestMapping("/api/v1/admin/abouts")
2626
@PreAuthorize("hasRole('ROLE_ADMIN')")
2727
public class AboutAdminControllerImpl implements AboutAdminController {
2828
private final AboutAdminFacade aboutAdminFacade;

aics-admin/src/main/java/kgu/developers/admin/carousel/presentation/CarouselAdminControllerImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121

2222
@RestController
2323
@RequiredArgsConstructor
24-
@RequestMapping("/api/v1/carousels")
24+
@RequestMapping("/api/v1/admin/carousels")
2525
@PreAuthorize("hasRole('ROLE_ADMIN')")
2626
public class CarouselAdminControllerImpl implements CarouselAdminController {
2727
private final CarouselAdminFacade carouselAdminFacade;

aics-admin/src/main/java/kgu/developers/admin/club/presentation/ClubAdminControllerImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323

2424
@RestController
2525
@RequiredArgsConstructor
26-
@RequestMapping("/api/v1/clubs")
26+
@RequestMapping("/api/v1/admin/clubs")
2727
@PreAuthorize("hasRole('ROLE_ADMIN')")
2828
public class ClubAdminControllerImpl implements ClubAdminController {
2929
private final ClubAdminFacade clubAdminFacade;

aics-admin/src/main/java/kgu/developers/admin/comment/presentation/CommentAdminControllerImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
@RestController
1111
@RequiredArgsConstructor
12-
@RequestMapping("/api/v1/comments")
12+
@RequestMapping("/api/v1/admin/comments")
1313
@PreAuthorize("hasRole('ROLE_ADMIN')")
1414
public class CommentAdminControllerImpl implements CommentAdminController {
1515
private final CommentAdminFacade commentAdminFacade;

aics-admin/src/main/java/kgu/developers/admin/file/presentation/FileAdminControllerImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222

2323
@RestController
2424
@RequiredArgsConstructor
25-
@RequestMapping("/api/v1/files")
25+
@RequestMapping("/api/v1/admin/files")
2626
@PreAuthorize("hasRole('ROLE_ADMIN')")
2727
public class FileAdminControllerImpl implements FileAdminController {
2828
private final FileAdminFacade fileAdminFacade;

aics-admin/src/main/java/kgu/developers/admin/lab/presentation/LabAdminControllerImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323

2424
@RestController
2525
@RequiredArgsConstructor
26-
@RequestMapping("/api/v1/labs")
26+
@RequestMapping("/api/v1/admin/labs")
2727
@PreAuthorize("hasRole('ROLE_ADMIN')")
2828
public class LabAdminControllerImpl implements LabAdminController{
2929
private final LabAdminFacade labAdminFacade;

aics-admin/src/main/java/kgu/developers/admin/post/presentation/PostAdminControllerImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323

2424
@RestController
2525
@RequiredArgsConstructor
26-
@RequestMapping("/api/v1/posts")
26+
@RequestMapping("/api/v1/admin/posts")
2727
@PreAuthorize("hasRole('ROLE_ADMIN')")
2828
public class PostAdminControllerImpl implements PostAdminController {
2929
private final PostAdminFacade postAdminFacade;

aics-admin/src/main/java/kgu/developers/admin/professor/presentation/ProfessorAdminControllerImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121

2222
@RestController
2323
@RequiredArgsConstructor
24-
@RequestMapping("/api/v1/professors")
24+
@RequestMapping("/api/v1/admin/professors")
2525
@PreAuthorize("hasRole('ROLE_ADMIN')")
2626
public class ProfessorAdminControllerImpl implements ProfessorAdminController {
2727
private final ProfessorAdminFacade professorAdminFacade;

aics-admin/src/main/java/kgu/developers/admin/user/presentation/UserAdminControllerImpl.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020

2121
@RestController
2222
@RequiredArgsConstructor
23-
@RequestMapping("/api/v1/users")
23+
@RequestMapping("/api/v1/admin/users")
2424
@PreAuthorize("hasRole('ROLE_ADMIN')")
2525
public class UserAdminControllerImpl implements UserAdminController {
2626
private final UserAdminFacade userAdminFacade;

0 commit comments

Comments
 (0)