diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml index b027c48..43f727e 100644 --- a/.gitea/workflows/deploy.yaml +++ b/.gitea/workflows/deploy.yaml @@ -6,18 +6,31 @@ on: jobs: redeploy: - # 這裡必須跟剛才在 config.yaml 填的一模一樣 - runs-on: self-hosted + runs-on: self-hosted # 請確認 Gitea Runner 標籤包含 self-hosted steps: - - name: Create .env file + - name: Checkout Code + # 如果是第一次運行,這步會自動處理目錄 run: | - echo "${{ secrets.ENV_FILE }}" > /home/ubuntu/apps/linebot_finance/.env - - name: Sync and Deploy + mkdir -p /home/ubuntu/apps/linebot_finance + cd /home/ubuntu/apps/linebot_finance + + - name: Create .env file from Secrets run: | - cd /home/ubuntu/apps/linebot_finance || exit 1 + # 這裡使用單引號包裹變數,防止特殊字元導致語法出錯 + echo '${{ secrets.ENV_FILE }}' > /home/ubuntu/apps/linebot_finance/.env + chmod 600 /home/ubuntu/apps/linebot_finance/.env + echo ".env 檔案已由 Secrets 產生 🚀" + + - name: Pull and Restart Service + run: | + cd /home/ubuntu/apps/linebot_finance + # 如果目錄還沒初始化過 Git,先進行初始化 + if [ ! -d ".git" ]; then + git clone http://127.0.0.1:3000/henry4682/linebot_finance.git . + fi git fetch origin main git reset --hard origin/main - # 宿主機模式下,這裡就能直接用到 docker 了 + # 啟動 Line Bot docker compose up -d --build --remove-orphans docker image prune -f \ No newline at end of file