diff --git a/.github/workflows/cd-release.yml b/.github/workflows/cd-release.yml new file mode 100644 index 00000000..62bdf038 --- /dev/null +++ b/.github/workflows/cd-release.yml @@ -0,0 +1,59 @@ +name: Java CI with Gradle + +on: + push: + branches: [ release ] + +permissions: + contents: read + +jobs: + build-release: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Set up JDK 17 + uses: actions/setup-java@v3 + with: + java-version: '17' + distribution: 'temurin' + - name: application.yml + run: | + mkdir -p src/main/resources + touch ./src/main/resources/application.yml + echo "${{ secrets.RELEASE_APPLICATION_YML }}" > ./src/main/resources/application.yml + cat ./src/main/resources/application.yml + - name: Run chmod to make gradlew executable + run: chmod +x ./gradlew + - name: Build with Gradle + uses: gradle/gradle-build-action@bd5760595778326ba7f1441bcf7e88b49de61a25 # v2.6.0 + with: + arguments: build -x test + - name: Upload artifact + uses: actions/upload-artifact@v2 + with: + name: build-file + path: build/libs/*.jar + + deploy: + needs: build-release + runs-on: ubuntu-latest + steps: + - name: Download artifact + uses: actions/download-artifact@v2 + with: + name: build-file + - name: Setup SSH + uses: webfactory/ssh-agent@v0.5.4 + with: + ssh-private-key: ${{ secrets.RELEASE_SSH_PRIVATE_KEY }} + - name: Add remote server to known hosts + run: | + mkdir -p ~/.ssh + ssh-keyscan ${{ secrets.RELEASE_SERVER_IP }} >> ~/.ssh/known_hosts + - name: SCP transfer + run: scp *.jar ${{ secrets.RELEASE_SERVER_USERNAME }}@${{ secrets.RELEASE_SERVER_IP }}:~/cicd + - name: Execute remote commands + run: | + ssh -v ${{ secrets.RELEASE_SERVER_USERNAME }}@${{ secrets.RELEASE_SERVER_IP }} "sudo fuser -k 80/tcp || true" + ssh -v ${{ secrets.RELEASE_SERVER_USERNAME }}@${{ secrets.RELEASE_SERVER_IP }} "sudo nohup /usr/bin/java -jar ~/cicd/*.jar > ~/cicd/nohup.log 2>&1 &" \ No newline at end of file diff --git a/src/main/java/kr/co/fastcampus/yanabada/domain/accommodation/controller/AccommodationController.java b/src/main/java/kr/co/fastcampus/yanabada/domain/accommodation/controller/AccommodationController.java index 150d91be..eea8cad7 100644 --- a/src/main/java/kr/co/fastcampus/yanabada/domain/accommodation/controller/AccommodationController.java +++ b/src/main/java/kr/co/fastcampus/yanabada/domain/accommodation/controller/AccommodationController.java @@ -16,7 +16,7 @@ import org.springframework.web.bind.annotation.RestController; @RestController -@RequestMapping("/accommodations") +@RequestMapping("/v1/accommodations") @RequiredArgsConstructor public class AccommodationController { diff --git a/src/main/java/kr/co/fastcampus/yanabada/domain/chat/controller/ChatController.java b/src/main/java/kr/co/fastcampus/yanabada/domain/chat/controller/ChatController.java index d08580b1..6f5ebe13 100644 --- a/src/main/java/kr/co/fastcampus/yanabada/domain/chat/controller/ChatController.java +++ b/src/main/java/kr/co/fastcampus/yanabada/domain/chat/controller/ChatController.java @@ -29,7 +29,7 @@ import org.springframework.web.bind.annotation.RestController; @RestController -@RequestMapping("/chats") +@RequestMapping("/v1/chats") @RequiredArgsConstructor public class ChatController { diff --git a/src/main/java/kr/co/fastcampus/yanabada/domain/member/controller/MemberController.java b/src/main/java/kr/co/fastcampus/yanabada/domain/member/controller/MemberController.java index 14e28936..59ae0a17 100644 --- a/src/main/java/kr/co/fastcampus/yanabada/domain/member/controller/MemberController.java +++ b/src/main/java/kr/co/fastcampus/yanabada/domain/member/controller/MemberController.java @@ -21,7 +21,7 @@ @Slf4j @RestController @RequiredArgsConstructor -@RequestMapping("/member") +@RequestMapping("/v1/members") public class MemberController { private final MemberService memberService; diff --git a/src/main/java/kr/co/fastcampus/yanabada/domain/notification/controller/NotificationController.java b/src/main/java/kr/co/fastcampus/yanabada/domain/notification/controller/NotificationController.java index 3fc6ca0d..43548622 100644 --- a/src/main/java/kr/co/fastcampus/yanabada/domain/notification/controller/NotificationController.java +++ b/src/main/java/kr/co/fastcampus/yanabada/domain/notification/controller/NotificationController.java @@ -21,7 +21,7 @@ @Slf4j @RestController @RequiredArgsConstructor -@RequestMapping("/notifications") +@RequestMapping("/v1/notifications") public class NotificationController { private final NotificationService notificationService; diff --git a/src/main/java/kr/co/fastcampus/yanabada/domain/order/controller/OrderController.java b/src/main/java/kr/co/fastcampus/yanabada/domain/order/controller/OrderController.java index 0168ed42..54ee40eb 100644 --- a/src/main/java/kr/co/fastcampus/yanabada/domain/order/controller/OrderController.java +++ b/src/main/java/kr/co/fastcampus/yanabada/domain/order/controller/OrderController.java @@ -20,7 +20,7 @@ @Slf4j @RestController @RequiredArgsConstructor -@RequestMapping("/orders") +@RequestMapping("/v1/orders") public class OrderController { private final OrderService orderService; diff --git a/src/main/java/kr/co/fastcampus/yanabada/domain/payment/controller/PaymentController.java b/src/main/java/kr/co/fastcampus/yanabada/domain/payment/controller/PaymentController.java index 3376e941..97139e4f 100644 --- a/src/main/java/kr/co/fastcampus/yanabada/domain/payment/controller/PaymentController.java +++ b/src/main/java/kr/co/fastcampus/yanabada/domain/payment/controller/PaymentController.java @@ -24,7 +24,7 @@ import org.springframework.web.bind.annotation.RestController; @RestController -@RequestMapping("/payments") +@RequestMapping("/v1/payments") @RequiredArgsConstructor public class PaymentController { diff --git a/src/main/java/kr/co/fastcampus/yanabada/domain/payment/controller/TradeController.java b/src/main/java/kr/co/fastcampus/yanabada/domain/payment/controller/TradeController.java index 93ecc433..dfd2438f 100644 --- a/src/main/java/kr/co/fastcampus/yanabada/domain/payment/controller/TradeController.java +++ b/src/main/java/kr/co/fastcampus/yanabada/domain/payment/controller/TradeController.java @@ -28,7 +28,7 @@ @Slf4j @RestController @RequiredArgsConstructor -@RequestMapping("/trades") +@RequestMapping("/v1/trades") public class TradeController { private final TradeService tradeService; diff --git a/src/main/java/kr/co/fastcampus/yanabada/domain/product/controller/ProductController.java b/src/main/java/kr/co/fastcampus/yanabada/domain/product/controller/ProductController.java index 0d640cf4..432d6b05 100644 --- a/src/main/java/kr/co/fastcampus/yanabada/domain/product/controller/ProductController.java +++ b/src/main/java/kr/co/fastcampus/yanabada/domain/product/controller/ProductController.java @@ -32,7 +32,7 @@ @Slf4j @RestController @RequiredArgsConstructor -@RequestMapping("/products") +@RequestMapping("/v1/products") public class ProductController { private final ProductService productService; diff --git a/src/main/java/kr/co/fastcampus/yanabada/domain/product/entity/Product.java b/src/main/java/kr/co/fastcampus/yanabada/domain/product/entity/Product.java index cca4adcb..d89be89a 100644 --- a/src/main/java/kr/co/fastcampus/yanabada/domain/product/entity/Product.java +++ b/src/main/java/kr/co/fastcampus/yanabada/domain/product/entity/Product.java @@ -19,6 +19,7 @@ import jakarta.persistence.Table; import java.time.LocalDate; import java.time.LocalDateTime; +import kr.co.fastcampus.yanabada.common.baseentity.BaseEntity; import kr.co.fastcampus.yanabada.domain.order.entity.Order; import kr.co.fastcampus.yanabada.domain.product.entity.enums.ProductStatus; import lombok.AccessLevel; @@ -29,7 +30,7 @@ @NoArgsConstructor(access = AccessLevel.PROTECTED) @Table(name = "product") @Entity -public class Product { +public class Product extends BaseEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY)