name: Deploy (manual) # 배포 대상이 정해지면 아래 단계의 주석을 풀고 시크릿을 등록하세요. # 저장소 Settings > Actions > Secrets 에 등록 필요(예시): # DEPLOY_HOST, DEPLOY_USER, DEPLOY_SSH_KEY, DEPLOY_PATH # (운영 DB/Redis 접속정보는 서버의 .env 또는 환경변수로 관리) on: workflow_dispatch: {} # push: # tags: ['v*'] jobs: deploy: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Setup JDK 17 uses: actions/setup-java@v4 with: distribution: temurin java-version: '17' cache: gradle - name: Build jar (skip tests) run: | chmod +x ./gradlew ./gradlew --no-daemon clean bootJar -x test # ===== 배포 예시 (택1) — 사용 시 주석 해제 ===== # 1) jar 를 원격 서버로 전송 후 서비스 재시작 # - name: Copy jar to server # uses: appleboy/scp-action@v0.1.7 # with: # host: ${{ secrets.DEPLOY_HOST }} # username: ${{ secrets.DEPLOY_USER }} # key: ${{ secrets.DEPLOY_SSH_KEY }} # source: "build/libs/*.jar" # target: ${{ secrets.DEPLOY_PATH }} # strip_components: 2 # - name: Restart service # uses: appleboy/ssh-action@v1.0.3 # with: # host: ${{ secrets.DEPLOY_HOST }} # username: ${{ secrets.DEPLOY_USER }} # key: ${{ secrets.DEPLOY_SSH_KEY }} # script: sudo systemctl restart sb-backend # 2) (대안) Docker 이미지 빌드 후 레지스트리 푸시 # - name: Build & push image # run: | # docker build -t ${{ secrets.REGISTRY }}/sb-backend:${{ github.sha }} . # docker push ${{ secrets.REGISTRY }}/sb-backend:${{ github.sha }} - name: Notice run: echo "jar 빌드 완료. 배포 대상 지정 후 위 단계를 활성화하세요."