38 lines
1.2 KiB
Bash
38 lines
1.2 KiB
Bash
#!/bin/bash
|
||
|
||
echo "=================================================="
|
||
|
||
echo "參數檢查"
|
||
|
||
echo "--------------------------------------------------"
|
||
|
||
# 顯示 CHECK_URL 參數,並檢查是否為空或 "null",如果是則輸出錯誤訊息並退出
|
||
echo "CHECK_URL=$CHECK_URL" && ([ -z "$CHECK_URL" ] || [ "$CHECK_URL" = "null" ]) && exit 1
|
||
|
||
# 顯示 HEALTH_CODE 參數,並檢查是否為空或 "null",如果是則輸出錯誤訊息並退出
|
||
echo "HEALTH_CODE=$HEALTH_CODE" && ([ -z "$HEALTH_CODE" ] || [ "$HEALTH_CODE" = "null" ]) && exit 1
|
||
|
||
echo "=================================================="
|
||
|
||
echo "取得狀態碼"
|
||
|
||
echo "--------------------------------------------------"
|
||
|
||
# 使用無窮迴圈持續嘗試,直到成功取得有效狀態碼
|
||
while true; do
|
||
# 使用 curl 取得狀態碼,並將結果輸出到環境變數 STATUS_CODE
|
||
STATUS_CODE=$(curl -s -o /dev/null -w "%{http_code}" "$CHECK_URL") && echo "STATUS_CODE=$STATUS_CODE"
|
||
|
||
# curl 無法連線時常見為 000,持續重試
|
||
if [ "$STATUS_CODE" != "000" ]; then
|
||
break
|
||
fi
|
||
|
||
# 休息 1 秒後重試
|
||
sleep 1
|
||
done
|
||
|
||
# 將狀態碼輸出到環境變數
|
||
echo "status_code=$STATUS_CODE" >> "$GITHUB_OUTPUT"
|
||
|
||
echo "==================================================" |