name: Oracle-Deploy on: push: branches: - main jobs: redeploy: runs-on: self-hosted # 你的 Runner 已經有這個標籤了,沒問題 steps: - name: Preparation and Git Sync run: | # 建立目錄並進入 mkdir -p /home/ubuntu/apps/linebot_finance cd /home/ubuntu/apps/linebot_finance # 檢查是否已經有 .git,沒有就 clone,有就 reset if [ ! -d ".git" ]; then echo "🚚 正在初始化儲存庫..." # 使用 http://localhost:3000 是因為你的 Runner 跟 Gitea 在同一台主機且用了 network host git clone http://localhost:3000/henry4682/linebot_finance.git . else echo "🔄 正在更新現有儲存庫..." git fetch origin main git reset --hard origin/main fi - name: Create .env file from Secrets run: | # 直接指定絕對路徑寫入,最保險 echo '${{ secrets.ENV_FILE }}' > /home/ubuntu/apps/linebot_finance/.env chmod 600 /home/ubuntu/apps/linebot_finance/.env echo ".env 檔案已由 Secrets 產生 🚀" - name: Docker Build and Deploy run: | cd /home/ubuntu/apps/linebot_finance # 執行 Docker Compose docker compose up -d --build --remove-orphans # 清理過期鏡像節省 Oracle 空間 docker image prune -f echo "✅ 部署完成!"