ci: Gitea Actions 배포 CI 워크플로우 완성

배포 자동화 시스템을 완성합니다:

## 변경사항
 dotnet restore, build, publish 단계 추가
 버전 정보 자동 생성
 Web/Admin 배포 단계 분리
 systemd 자동 재시작 활용

## 배포 흐름
1. 코드 체크아웃
2. .NET 10 설정
3. 의존성 복구 및 빌드
4. Web/Admin 발행
5. 배포 디렉토리에 복사
6. 심링크 업데이트
7. systemd가 자동으로 서비스 재시작

## 검증
- Web: http://127.0.0.1:5001
- Admin: http://127.0.0.1:5002
This commit is contained in:
2026-06-26 18:31:09 +09:00
parent 6d70b92795
commit 163af5426c
+72 -3
View File
@@ -6,8 +6,77 @@ on:
- master - master
jobs: jobs:
trigger-deploy: build-and-deploy:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Trigger deployment webhook - name: Checkout code
run: echo "✓ CI triggered - server will deploy via git hook" uses: actions/checkout@v4
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: '10.0'
- name: Restore dependencies
run: dotnet restore TaxBaik.sln
- name: Build solution
run: dotnet build TaxBaik.sln -c Release --no-restore
- name: Publish Web
run: dotnet publish TaxBaik.Web/ -c Release -o ./publish/web
- name: Publish Admin
run: dotnet publish TaxBaik.Admin/ -c Release -o ./publish/admin
- name: Copy migrations to publish
run: |
cp -r db/migrations ./publish/web/migrations || true
cp -r db/migrations ./publish/admin/migrations || true
- name: Generate build info
run: |
mkdir -p ./publish/web/wwwroot ./publish/admin/wwwroot
COMMIT_HASH=$(git rev-parse --short HEAD)
BUILD_TIME=$(date -u +'%Y-%m-%d %H:%M:%S UTC')
echo "Version: $COMMIT_HASH" > ./publish/web/wwwroot/version.txt
echo "Built: $BUILD_TIME" >> ./publish/web/wwwroot/version.txt
cp ./publish/web/wwwroot/version.txt ./publish/admin/wwwroot/version.txt
echo "✓ Version files created"
- name: Deploy Web
run: |
set -e
WEB_TIMESTAMP=$(date +%Y%m%d_%H%M%S)
DEPLOY_HOME="/home/kjh2064"
WEB_DEPLOY_DIR="$DEPLOY_HOME/deployments/taxbaik_${WEB_TIMESTAMP}"
echo "=== Deploying Web (v$(git rev-parse --short HEAD)) ==="
mkdir -p "$WEB_DEPLOY_DIR"
cp -r ./publish/web "$WEB_DEPLOY_DIR/"
ln -sfn "$WEB_DEPLOY_DIR/web" "$DEPLOY_HOME/taxbaik_active"
echo "✓ Web deployed"
- name: Deploy Admin
run: |
set -e
ADMIN_TIMESTAMP=$(date +%Y%m%d_%H%M%S)
DEPLOY_HOME="/home/kjh2064"
ADMIN_DEPLOY_DIR="$DEPLOY_HOME/deployments/taxbaik_admin_${ADMIN_TIMESTAMP}"
echo "=== Deploying Admin (v$(git rev-parse --short HEAD)) ==="
mkdir -p "$ADMIN_DEPLOY_DIR"
cp -r ./publish/admin "$ADMIN_DEPLOY_DIR/"
ln -sfn "$ADMIN_DEPLOY_DIR/admin" "$DEPLOY_HOME/taxbaik_admin_active"
echo "✓ Admin deployed"
- name: Restart services
run: |
echo "=== Restarting services ==="
pkill -9 -f "TaxBaik.Web" || echo "No Web process to kill"
pkill -9 -f "TaxBaik.Admin" || echo "No Admin process to kill"
sleep 2
echo "=== Services will restart automatically via systemd ==="
echo "✓ Deployment complete"