6 Commits

Author SHA1 Message Date
jiantw83 ed12823df3 feat: update master.yaml job names and add review.yaml for AI code review 2026-05-13 03:26:05 +00:00
jiantw83 6197bbe690 更新 entrypoint.sh 2026-03-31 07:24:41 +00:00
Jeffery 4a748313d2 feat: 透過 trap 在收到訊號時立即退出 2026-03-27 14:56:28 +08:00
Jeffery caca2c9a91 feat: 將 exit 移到最後一步 2026-03-26 15:33:33 +08:00
Jeffery c898b47a72 feat: 將參數輸出移到最後一個步驟 2026-03-26 14:51:27 +08:00
Jeffery 43a5d0f077 fix: 修正私人證書路徑 2026-03-26 09:41:52 +08:00
5 changed files with 40 additions and 11 deletions
+3 -2
View File
@@ -1,10 +1,11 @@
name: CD
on: on:
push: push:
branches: branches:
- master - master
jobs: jobs:
version: version:
name: "CD > 計算版本號" name: 計算版本號
runs-on: ubuntu runs-on: ubuntu
outputs: outputs:
version: ${{ steps.version.outputs.version }} version: ${{ steps.version.outputs.version }}
@@ -13,7 +14,7 @@ jobs:
id: version id: version
uses: https://gitea.jsc.idv.tw/actions/calculate-version@${{ vars.ACTION_CALCULATE_VERSION }} uses: https://gitea.jsc.idv.tw/actions/calculate-version@${{ vars.ACTION_CALCULATE_VERSION }}
release: release:
name: "CD > 發布專案" name: 發布專案
runs-on: ubuntu runs-on: ubuntu
needs: version needs: version
steps: steps:
+19
View File
@@ -0,0 +1,19 @@
name: AI
on:
pull_request:
types: [opened, synchronize]
jobs:
code-review:
name: Code Review
runs-on: ubuntu
steps:
- name: AI Code Review
uses: https://gitea.jsc.idv.tw/actions/code-review@${{ vars.ACTION_CODE_REVIEW_VERSION }}
with:
GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }},${{ secrets.GEMINI_API_KEY_1 }},${{ secrets.GEMINI_API_KEY_2 }},${{ secrets.GEMINI_API_KEY_3 }},${{ secrets.GEMINI_API_KEY_4 }},${{ secrets.GEMINI_API_KEY_5 }},${{ secrets.GEMINI_API_KEY_6 }},${{ secrets.GEMINI_API_KEY_7 }},${{ secrets.GEMINI_API_KEY_8 }},${{ secrets.GEMINI_API_KEY_9 }},${{ secrets.GEMINI_API_KEY_10 }},${{ secrets.GEMINI_API_KEY_11 }},${{ secrets.GEMINI_API_KEY_12 }},${{ secrets.GEMINI_API_KEY_13 }},${{ secrets.GEMINI_API_KEY_14 }},${{ secrets.GEMINI_API_KEY_15 }},${{ secrets.GEMINI_API_KEY_16 }},${{ secrets.GEMINI_API_KEY_17 }},${{ secrets.GEMINI_API_KEY_18 }},${{ secrets.GEMINI_API_KEY_19 }}
GEMINI_BASE_URL: https://generativelanguage.googleapis.com/v1beta
GEMINI_MODEL: ${{ vars.GEMINI_MODEL }}
permissions:
contents: write
pull-requests: write
issues: write
+2 -2
View File
@@ -7,8 +7,8 @@ RUN apt update \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/*
# 複製私人證書到容器中 # 複製私人證書到容器中
COPY ./JSC.Downloader/rootCA.pem /usr/local/share/ca-certificates/rootCA.crt COPY rootCA.pem /usr/local/share/ca-certificates/rootCA.crt
COPY ./JSC.Downloader/jsc.idv.me+4.pem /usr/local/share/ca-certificates/jsc.idv.me+4.crt COPY jsc.idv.me+4.pem /usr/local/share/ca-certificates/jsc.idv.me+4.crt
# 複製入口腳本到容器中 # 複製入口腳本到容器中
COPY entrypoint.sh /entrypoint.sh COPY entrypoint.sh /entrypoint.sh
+3
View File
@@ -8,6 +8,9 @@ inputs:
HEALTH_CODE: HEALTH_CODE:
description: '健康碼' description: '健康碼'
default: '200' default: '200'
outputs:
status_code:
description: '服務的狀態碼'
runs: runs:
using: 'docker' using: 'docker'
image: 'Dockerfile' image: 'Dockerfile'
+13 -7
View File
@@ -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,16 +34,13 @@ 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
done done
echo "=================================================="
# 將狀態碼輸出到環境變數 # 將狀態碼輸出到環境變數
echo "status_code=$STATUS_CODE" >> "$GITHUB_OUTPUT" echo "status_code=$STATUS_CODE" >> "$GITHUB_OUTPUT"
# 檢查狀態碼是否正確
[ "$STATUS_CODE" = "$HEALTH_CODE" ] && exit 0 || exit 1
echo "=================================================="