Update test.html #89907
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: 抓取並上傳 RSS | |
| on: | |
| workflow_dispatch: | |
| push: | |
| branches: | |
| - main | |
| paths: | |
| - '.github/workflows/*' | |
| - 'code/*' | |
| - '*' | |
| - '**' | |
| # schedule: | |
| # - cron: '*/5 * * * *' # 每隔 5 分鐘運行一次 | |
| # - cron: '0,5,10,15,20,25,30,35,40,45,50,55 * * * *' # 每 5 分鐘 | |
| # - cron: '*/10 * * * *' # 每隔 10 分鐘運行一次 | |
| jobs: | |
| deploy: | |
| timeout-minutes: 5 | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Step 1 - 檢出代碼 | |
| timeout-minutes: 2 | |
| uses: actions/checkout@v4 | |
| - name: Step 2 - 檢查並取消較新的運行 | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| run: | | |
| echo "2.1 - 開始檢查取消動作" | |
| echo "獲取當前運行 ID..." | |
| CURRENT_RUN_ID=${{ github.run_id }} | |
| echo "當前運行 ID: $CURRENT_RUN_ID" | |
| echo "列出同一分支、同一工作流程的所有運行(排除當前自己)..." | |
| gh run list \ | |
| --workflow "${{ github.workflow }}" \ | |
| --branch "${{ github.ref_name }}" \ | |
| --json databaseId,status \ | |
| --jq ".[] | select(.status == \"queued\" or .status == \"in_progress\") | select(.databaseId != $CURRENT_RUN_ID)" \ | |
| | while read -r run_id; do | |
| echo "2.2 - 取消運行 $run_id..." | |
| gh run cancel $run_id | |
| done | |
| - name: Step 3 - 如果沒有較新的運行則繼續 | |
| run: | | |
| echo "3 - 繼續當前運行..." | |
| - name: Step 4 - 檢出代碼 2 | |
| timeout-minutes: 2 | |
| run: | | |
| echo "4.1 - 開始檢出代碼 2" | |
| counter=0 | |
| while true; do | |
| counter=$((counter+1)) | |
| echo "4.2 - 嘗試拉取代碼次數: $counter" | |
| if git pull; then | |
| echo "4.3 - 成功拉取代碼!" | |
| break | |
| fi | |
| sleep 1 | |
| done | |
| echo "4.4 - 完成檢出代碼 2" | |
| - name: Step 5 - Install and configure Cloudflare WARP | |
| timeout-minutes: 2 | |
| run: | | |
| echo "5.1 - 開始 Install and configure Cloudflare WARP" | |
| counter=0 | |
| while true; do | |
| counter=$((counter+1)) | |
| echo "5.2 - 嘗試 curl trace 次數: $counter" | |
| if curl -v https://1.1.1.1/cdn-cgi/trace; then | |
| break | |
| fi | |
| sleep 1 | |
| done | |
| echo "5.3 - 下一步" | |
| counter=0 | |
| while true; do | |
| counter=$((counter+1)) | |
| echo "5.4 - 嘗試 curl pubkey 次數: $counter" | |
| if curl https://pkg.cloudflareclient.com/pubkey.gpg | sudo gpg --dearmor -o /usr/share/keyrings/cloudflare-warp-archive-keyring.gpg; then | |
| break | |
| fi | |
| sleep 1 | |
| done | |
| echo "5.5 - 下一步" | |
| counter=0 | |
| while true; do | |
| counter=$((counter+1)) | |
| echo "5.6 - 嘗試寫入 apt source 次數: $counter" | |
| if echo "deb [arch=amd64 signed-by=/usr/share/keyrings/cloudflare-warp-archive-keyring.gpg] https://pkg.cloudflareclient.com/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/cloudflare-client.list; then | |
| break | |
| fi | |
| sleep 1 | |
| done | |
| echo "5.7 - 下一步" | |
| counter=0 | |
| while true; do | |
| counter=$((counter+1)) | |
| echo "5.8 - 嘗試 apt update 次數: $counter" | |
| if sudo apt update -y; then | |
| break | |
| fi | |
| sleep 1 | |
| done | |
| echo "5.9 - 下一步" | |
| counter=0 | |
| while true; do | |
| counter=$((counter+1)) | |
| echo "5.10 - 嘗試安裝 cloudflare-warp 次數: $counter" | |
| if sudo apt install -y cloudflare-warp; then | |
| break | |
| fi | |
| sleep 1 | |
| done | |
| echo "5.11 - 下一步" | |
| counter=0 | |
| while true; do | |
| counter=$((counter+1)) | |
| echo "5.12 - 嘗試 warp registration 次數: $counter" | |
| if warp-cli --accept-tos registration new; then | |
| break | |
| fi | |
| sleep 1 | |
| done | |
| echo "5.13 - 下一步" | |
| counter=0 | |
| while true; do | |
| counter=$((counter+1)) | |
| echo "5.14 - 嘗試設置 mode 次數: $counter" | |
| if warp-cli --accept-tos mode warp+doh; then | |
| break | |
| fi | |
| sleep 1 | |
| done | |
| echo "5.15 - 下一步" | |
| counter=0 | |
| while true; do | |
| counter=$((counter+1)) | |
| echo "5.16 - 嘗試 tunnel ip add 次數: $counter" | |
| if warp-cli --accept-tos tunnel ip add 127.0.0.1; then | |
| break | |
| fi | |
| sleep 1 | |
| done | |
| echo "5.17 - 下一步" | |
| counter=0 | |
| while true; do | |
| counter=$((counter+1)) | |
| echo "5.18 - 嘗試 tunnel host add 次數: $counter" | |
| if warp-cli --accept-tos tunnel host add localhost; then | |
| break | |
| fi | |
| sleep 1 | |
| done | |
| echo "5.19 - 下一步" | |
| counter=0 | |
| while true; do | |
| counter=$((counter+1)) | |
| echo "5.20 - 嘗試 connect 次數: $counter" | |
| if warp-cli --accept-tos connect; then | |
| break | |
| fi | |
| sleep 1 | |
| done | |
| echo "5.21 - 完成 WARP 配置" | |
| - name: Step 6 - Testing WARP | |
| timeout-minutes: 2 | |
| run: | | |
| echo "6.1 - 開始 Testing WARP" | |
| warp-cli --accept-tos status | |
| echo "6.2 - 檢查 1.1.1.1 trace" | |
| counter=0 | |
| while true; do | |
| counter=$((counter+1)) | |
| echo "6.3 - 嘗試檢查 https://1.1.1.1/cdn-cgi/trace 次數: $counter" | |
| if curl -s https://1.1.1.1/cdn-cgi/trace | grep -q "warp=on"; then | |
| echo "6.4 - warp is on" | |
| break | |
| else | |
| echo "6.5 - warp is off, retrying..." | |
| fi | |
| sleep 1 | |
| done | |
| echo "6.6 - 檢查 mozilla.cloudflare-dns.com trace" | |
| counter=0 | |
| while true; do | |
| counter=$((counter+1)) | |
| echo "6.7 - 嘗試檢查 https://mozilla.cloudflare-dns.com/cdn-cgi/trace 次數: $counter" | |
| if curl -s https://mozilla.cloudflare-dns.com/cdn-cgi/trace | grep -q "warp=on"; then | |
| echo "6.8 - warp is on" | |
| break | |
| else | |
| echo "6.9 - warp is off, retrying..." | |
| fi | |
| sleep 1 | |
| done | |
| echo "6.10 - 檢查 tunnel stats" | |
| counter=0 | |
| while true; do | |
| counter=$((counter+1)) | |
| echo "6.11 - 嘗試 tunnel stats 次數: $counter" | |
| if warp-cli --accept-tos tunnel stats; then | |
| break | |
| fi | |
| sleep 1 | |
| done | |
| echo "6.12 - 顯示 warp-cli help" | |
| warp-cli --accept-tos --help | |
| echo "6.13 - 檢查 warp-cli settings (protocol)" | |
| warp-cli --accept-tos settings | grep protocol | |
| echo "6.14 - 顯示全部 settings" | |
| warp-cli --accept-tos settings | |
| echo "6.15 - 設定 tunnel protocol 為 MASQUE" | |
| warp-cli --accept-tos tunnel protocol set MASQUE | |
| echo "6.16 - 再次檢查 settings (protocol)" | |
| warp-cli --accept-tos settings | grep protocol | |
| echo "6.17 - 檢查 images.weserv.nl quota" | |
| counter=0 | |
| while true; do | |
| counter=$((counter+1)) | |
| echo "6.18 - 嘗試 images.weserv.nl quota 次數: $counter" | |
| if curl -s curl -v https://images.weserv.nl/quota; then | |
| break | |
| fi | |
| sleep 1 | |
| done | |
| echo "6.19 - 檢查 wsrv.nl quota" | |
| counter=0 | |
| while true; do | |
| counter=$((counter+1)) | |
| echo "6.20 - 嘗試 wsrv.nl quota 次數: $counter" | |
| if curl -s curl -v https://wsrv.nl/quota; then | |
| break | |
| fi | |
| sleep 1 | |
| done | |
| echo "6.21 - 拉取 GitHub XML (方法1)" | |
| counter=0 | |
| while true; do | |
| counter=$((counter+1)) | |
| echo "6.22 - 嘗試拉取 GitHub XML (方法1) 次數: $counter" | |
| if curl -s https://github.com/raileo98/test2/raw/refs/heads/main/hk_rthk_ch.xml | head -n 10; then | |
| break | |
| fi | |
| sleep 1 | |
| done | |
| echo "6.23 - 拉取 GitHub XML (方法2)" | |
| counter=0 | |
| while true; do | |
| counter=$((counter+1)) | |
| echo "6.24 - 嘗試拉取 GitHub XML (方法2) 次數: $counter" | |
| if curl -s https://raw.githubusercontent.com/raileo98/test2/refs/heads/main/hk_rthk_ch.xml | head -n 10; then | |
| break | |
| fi | |
| sleep 1 | |
| done | |
| echo "6.25 - 完成 Testing WARP" | |
| - name: Step 7 - 檢出代碼 3 | |
| timeout-minutes: 2 | |
| run: | | |
| echo "7.1 - 開始檢出代碼 3" | |
| counter=0 | |
| while true; do | |
| counter=$((counter+1)) | |
| echo "7.2 - 嘗試拉取代碼 (第三次) 次數: $counter" | |
| if git pull; then | |
| echo "7.3 - 成功拉取代碼!" | |
| break | |
| fi | |
| sleep 1 | |
| done | |
| echo "7.4 - 完成檢出代碼 3" | |
| - name: Step 8 - 安裝依賴 | |
| timeout-minutes: 2 | |
| run: | | |
| echo "8.1 - 開始安裝依賴" | |
| counter=0 | |
| while true; do | |
| counter=$((counter+1)) | |
| echo "8.2 - 嘗試 apt update 次數: $counter" | |
| if sudo apt update -y; then | |
| break | |
| fi | |
| sleep 1 | |
| done | |
| echo "" | |
| counter=0 | |
| while true; do | |
| counter=$((counter+1)) | |
| echo "8.3 - 嘗試安裝 python3 python3-pip valkey 次數: $counter" | |
| if sudo apt install python3 python3-pip valkey -y; then | |
| break | |
| fi | |
| sleep 1 | |
| done | |
| echo "" | |
| counter=0 | |
| while true; do | |
| counter=$((counter+1)) | |
| echo "8.4 - 嘗試安裝 Python 套件次數: $counter" | |
| if sudo python3 -m pip install --upgrade -r requirements.txt; then | |
| break | |
| fi | |
| sleep 1 | |
| done | |
| echo "" | |
| counter=0 | |
| while true; do | |
| counter=$((counter+1)) | |
| echo "8.5 - 嘗試查詢 valkey 狀態次數: $counter" | |
| if sudo systemctl status valkey; then | |
| break | |
| fi | |
| sleep 1 | |
| done | |
| echo "" | |
| #counter=0 | |
| #while true; do | |
| #counter=$((counter+1)) | |
| #echo "8.6 - 嘗試 enable valkey 次數: $counter" | |
| #if sudo systemctl enable valkey; then | |
| # break | |
| #fi | |
| #sleep 1 | |
| #done | |
| echo "" | |
| counter=0 | |
| while true; do | |
| counter=$((counter+1)) | |
| echo "8.7 - 嘗試 start valkey 次數: $counter" | |
| if sudo systemctl start valkey; then | |
| break | |
| fi | |
| sleep 1 | |
| done | |
| echo "" | |
| counter=0 | |
| while true; do | |
| counter=$((counter+1)) | |
| echo "8.8 - 嘗試再次查詢 valkey 狀態次數: $counter" | |
| if sudo systemctl status valkey; then | |
| break | |
| fi | |
| sleep 1 | |
| done | |
| echo "8.9 - 完成安裝依賴" | |
| - name: Step 9 - 執行 Python 腳本 | |
| timeout-minutes: 5 | |
| run: | | |
| echo "9.1 - 開始執行 Python 腳本" | |
| python3 code/rthk.py | |
| echo "9.2 - 完成執行 Python 腳本" | |
| - name: Step 10 - valkey 狀態 | |
| run: | | |
| echo "10.1 - 開始檢查 valkey 狀態" | |
| counter=0 | |
| while true; do | |
| counter=$((counter+1)) | |
| echo "10.2 - 嘗試檢查 valkey 狀態次數: $counter" | |
| if sudo systemctl status valkey; then | |
| break | |
| fi | |
| sleep 1 | |
| done | |
| echo "10.3 - 完成 valkey 狀態檢查" | |
| - name: Step 11 - 上傳 RSS 文件 | |
| run: | | |
| echo "11.1 - 開始上傳 RSS 文件" | |
| git config --global user.email "[email protected]" | |
| git config --global user.name "github-actions" | |
| git add *.xml | |
| git add *.md | |
| echo '# git stash' | |
| git commit -m "Upload RSS file" | |
| git push origin main | |
| echo "11.2 - 完成上傳 RSS 文件" |