Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 6197bbe690 | |||
|
|
4a748313d2 |
@@ -1,5 +1,14 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
# 當 GitHub Actions 手動取消 workflow 時,Runner 會對容器送出終止訊號。
|
||||||
|
# 透過 trap 可在收到訊號時立即退出,避免無限迴圈持續重試。
|
||||||
|
on_terminate() {
|
||||||
|
echo "[$(date -u +"%Y-%m-%dT%H:%M:%SZ")] 收到取消訊號,停止健康檢查。"
|
||||||
|
exit 130
|
||||||
|
}
|
||||||
|
|
||||||
|
trap on_terminate TERM INT
|
||||||
|
|
||||||
echo "=================================================="
|
echo "=================================================="
|
||||||
|
|
||||||
echo "參數檢查"
|
echo "參數檢查"
|
||||||
@@ -25,7 +34,7 @@ while true; do
|
|||||||
# 使用 curl 取得狀態碼,最長等待 60 秒,並將結果輸出到環境變數 STATUS_CODE
|
# 使用 curl 取得狀態碼,最長等待 60 秒,並將結果輸出到環境變數 STATUS_CODE
|
||||||
STATUS_CODE=$(curl -s --max-time 60 -o /dev/null -w "%{http_code}" "$CHECK_URL")
|
STATUS_CODE=$(curl -s --max-time 60 -o /dev/null -w "%{http_code}" "$CHECK_URL")
|
||||||
|
|
||||||
echo "$STATUS_CODE" && [ "$STATUS_CODE" != "000" ] && break
|
echo "$STATUS_CODE" && [ "$STATUS_CODE" == "$HEALTH_CODE" ] && break
|
||||||
|
|
||||||
# 如果狀態碼為 "000",表示連線失敗,等待 60 秒後重試
|
# 如果狀態碼為 "000",表示連線失敗,等待 60 秒後重試
|
||||||
sleep 60
|
sleep 60
|
||||||
@@ -35,6 +44,3 @@ echo "=================================================="
|
|||||||
|
|
||||||
# 將狀態碼輸出到環境變數
|
# 將狀態碼輸出到環境變數
|
||||||
echo "status_code=$STATUS_CODE" >> "$GITHUB_OUTPUT"
|
echo "status_code=$STATUS_CODE" >> "$GITHUB_OUTPUT"
|
||||||
|
|
||||||
# 檢查狀態碼是否正確
|
|
||||||
[ "$STATUS_CODE" = "$HEALTH_CODE" ] && exit 0 || exit 1
|
|
||||||
Reference in New Issue
Block a user