8639ca3d04
CI / build (push) Failing after 16m32s
- ci.yaml: JDK17 + MariaDB/Redis 서비스 컨테이너 → gradlew clean build → jar 아티팩트 - deploy.yaml: 수동 실행(workflow_dispatch) 배포 템플릿(SSH/scp·Docker 예시) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
58 lines
1.9 KiB
YAML
58 lines
1.9 KiB
YAML
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 빌드 완료. 배포 대상 지정 후 위 단계를 활성화하세요."
|