#!/bin/bash set -e GITEA_URL="http://localhost:3000" REPO_NAME="momentry_studio" echo "=========================================" echo " 設定 Gitea CI/CD" echo "=========================================" # 檢查 Token if [ -z "$LOCAL_GITEA_TOKEN" ]; then echo "❌ 請先設定 LOCAL_GITEA_TOKEN" echo " export LOCAL_GITEA_TOKEN=\"your-token\"" exit 1 fi echo "✅ Token 已設定" # 1. 建立倉庫 echo "" echo "📁 Step 1: 建立 Gitea 倉庫..." REPO_EXISTS=$(curl -s -H "Authorization: token $LOCAL_GITEA_TOKEN" "$GITEA_URL/api/v1/repos/admin/$REPO_NAME" 2>/dev/null | python3 -c "import sys,json; d=json.load(sys.stdin); print(d.get('id',''))" 2>/dev/null || echo "") if [ -z "$REPO_EXISTS" ]; then curl -s -X POST "$GITEA_URL/api/v1/user/repos" \ -H "Authorization: token $LOCAL_GITEA_TOKEN" \ -H "Content-Type: application/json" \ -d "{\"name\":\"$REPO_NAME\",\"private\":false,\"auto_init\":false}" echo "✅ 倉庫已建立" else echo "倉庫已存在" fi # 2. 設定 Git 遠端 echo "" echo "🔗 Step 2: 設定 Git 遠端..." git remote remove gitea 2>/dev/null || true git remote add gitea "$GITEA_URL/admin/$REPO_NAME.git" echo "✅ 遠端已設定" # 3. 推送程式碼 echo "" echo "📤 Step 3: 推送程式碼..." git push -u gitea main -f 2>&1 | tail -3 echo "✅ 程式碼已推送" # 4. 建立 Webhook echo "" echo "🔔 Step 4: 建立 Webhook..." curl -s -X POST "$GITEA_URL/api/v1/repos/admin/$REPO_NAME/hooks" \ -H "Authorization: token $LOCAL_GITEA_TOKEN" \ -H "Content-Type: application/json" \ -d "{ \"type\": \"gitea\", \"active\": true, \"config\": { \"content_type\": \"json\", \"url\": \"http://localhost:8080/webhook\", \"is_insecure_ssl\": false }, \"events\": [\"push\"] }" 2>/dev/null | python3 -c "import sys,json; d=json.load(sys.stdin); print(f'Webhook ID: {d.get(\"id\",\"?\")}' 2>/dev/null || echo 'Webhook 建立失敗')" || echo "Webhook 需要 CI Server" echo "" echo "=========================================" echo " ✅ Gitea CI/CD 設定完成" echo "=========================================" echo "" echo "倉庫網址: $GITEA_URL/admin/$REPO_NAME" echo "" echo "手動觸發 CI/CD:" echo " ./ci-cd.sh"