From 917cd69f177d3afc51d15a53862206422f8a7674 Mon Sep 17 00:00:00 2001 From: henry yo Date: Sun, 15 Mar 2026 02:06:48 +0800 Subject: [PATCH] change gitea yaml --- .gitea/workflows/deploy.yaml | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/.gitea/workflows/deploy.yaml b/.gitea/workflows/deploy.yaml index a12b7d1..7fb5d0a 100644 --- a/.gitea/workflows/deploy.yaml +++ b/.gitea/workflows/deploy.yaml @@ -7,24 +7,28 @@ on: jobs: redeploy: runs-on: self-hosted + # 不使用 steps 的 uses,全部改用 run steps: - # 1. 讓 Runner 抓取最新程式碼到當前工作目錄 - - name: Checkout Code - uses: actions/checkout@v3 - - # 2. 直接在主機環境同步檔案並啟動 - name: Deploy run: | - echo "Current Path: $(pwd)" + # 1. 由於 Runner 容器裡沒有 sudo,我們假設它有權限訪問掛載的路徑 + # 我們直接嘗試在「主機」路徑執行指令 - # 將 Runner 抓下來的檔案同步到你的運行目錄 - # 注意:因為 Runner 權限可能與主機不同,我們用 rsync 或 cp 覆蓋 - cp -rf . /home/ubuntu/apps/linebot_finance/ + echo "Starting Direct Host Deployment..." + + # 2. 這是最關鍵的一步: + # 如果你的 Runner 是 1Panel 裝的,它通常會把主機的目錄掛載進來 + # 我們直接對準主機上的 linebot_finance 資料夾操作 - # 切換到目標目錄 - cd /home/ubuntu/apps/linebot_finance + # 3. 執行同步與部署 + # 我們假設路徑已經在之前的步驟設定好 safe.directory 了 + cd /home/ubuntu/apps/linebot_finance || exit 1 - # 執行 Docker 重啟 - docker compose up -d --build + # 使用絕對路徑執行 git,避免 PATH 問題 + /usr/bin/git fetch --all + /usr/bin/git reset --hard origin/main - echo "Deployment successful!" \ No newline at end of file + # 4. 重啟 Docker + /usr/bin/docker compose up -d --build + + echo "Deployment finished!" \ No newline at end of file