diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 00000000..67db93f9 --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,79 @@ +name: Deploy + +on: + push: + branches: [ "main" ] + +jobs: + build: + + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + token: ${{secrets.PRIVATE_TOKEN}} + submodules: true + - name: Set up JDK 17 + uses: actions/setup-java@v3 + with: + java-version: '17' + distribution: 'temurin' + + - name: Grant execute permission for gradlew + run: chmod +x gradlew + + - name: Make directory for deliver + run: mkdir deploy + + - name: Build with Gradle + run: ./gradlew clean build + + - name: Deploy Prod use SCP + uses: appleboy/scp-action@master + with: + username: ubuntu + host: ${{ secrets.TICKETING_HOST }} + key: ${{ secrets.PRIVATE_KEY }} + source: "./build/libs/*.jar" + target: "/home/ubuntu/deploy" + strip_components: 2 + + - name: Run jar on EC2 using SSH + uses: appleboy/ssh-action@master + with: + host: ${{ secrets.TICKETING_HOST }} + username: ubuntu + key: ${{ secrets.PRIVATE_KEY }} + script: | + PID=$(pgrep -f 'java -jar /home/ubuntu/deploy/*.jar') + if [ -n "$PID" ]; then + echo "Stopping existing application with PID $PID" + kill -9 $PID + fi + nohup java -jar /home/ubuntu/deploy/*.jar & + + - name: Deploy Prod use SCP + uses: appleboy/scp-action@master + with: + username: ubuntu + host: ${{ secrets.WAITING_HOST }} + key: ${{ secrets.PRIVATE_KEY }} + source: "./build/libs/*.jar" + target: "/home/ubuntu/deploy" + strip_components: 2 + + - name: Run jar on EC2 using SSH + uses: appleboy/ssh-action@master + with: + host: ${{ secrets.WAITING_HOST }} + username: ubuntu + key: ${{ secrets.PRIVATE_KEY }} + script: | + PID=$(pgrep -f 'java -jar /home/ubuntu/deploy/*.jar') + if [ -n "$PID" ]; then + echo "Stopping existing application with PID $PID" + kill -9 $PID + fi + nohup java -jar /home/ubuntu/deploy/*.jar & \ No newline at end of file diff --git a/build.gradle b/build.gradle index 455af41a..670f6115 100644 --- a/build.gradle +++ b/build.gradle @@ -15,6 +15,10 @@ java { } } +jar { + enabled = false +} + configurations { asciidoctorExt compileOnly { diff --git a/src/main/java/com/thirdparty/ticketing/global/infra/ALBHealthCheckController.java b/src/main/java/com/thirdparty/ticketing/global/infra/ALBHealthCheckController.java new file mode 100644 index 00000000..7f9dd002 --- /dev/null +++ b/src/main/java/com/thirdparty/ticketing/global/infra/ALBHealthCheckController.java @@ -0,0 +1,13 @@ +package com.thirdparty.ticketing.global.infra; + +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +public class ALBHealthCheckController { + @GetMapping("/health-check") + public ResponseEntity healthCheck() { + return ResponseEntity.ok().build(); + } +}