From 3dc7a0a0bb3b958b3b21199afecb29dd8a382dbc Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Tue, 14 Jul 2026 19:03:21 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix(ci):=20=E9=A3=9E=E4=B9=A6=E9=80=9A?= =?UTF-8?q?=E7=9F=A5=E5=A4=B1=E8=B4=A5=E4=B8=8D=E9=98=BB=E5=A1=9E=E9=83=A8?= =?UTF-8?q?=E7=BD=B2=E6=B5=81=E7=A8=8B=20-=20=E6=B7=BB=E5=8A=A0continue-on?= =?UTF-8?q?-error?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitea/workflows/ci-cd.yml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/.gitea/workflows/ci-cd.yml b/.gitea/workflows/ci-cd.yml index 62c9ea68e..3857fbb50 100644 --- a/.gitea/workflows/ci-cd.yml +++ b/.gitea/workflows/ci-cd.yml @@ -151,6 +151,7 @@ jobs: shell: sh run: "set +eu\nif [ -n \"$JOB_START_TIME\" ]; then\n END_TIME=$(date +%s)\n DURATION=$((END_TIME - JOB_START_TIME))\n MINS=$((DURATION / 60))\n SECS=$((DURATION % 60))\n echo \"JOB_DURATION_SECONDS=$DURATION\" >> $GITHUB_ENV\n echo \"=== Job Duration: ${MINS}m${SECS}s ===\"\nelse\n echo \"JOB_DURATION_SECONDS=0\" >> $GITHUB_ENV\n echo \"=== Job Duration: unknown ===\"\nfi\n" - name: Notify on failure + continue-on-error: true if: failure() shell: sh env: @@ -221,6 +222,7 @@ jobs: shell: sh run: "set +eu\nif [ -n \"$JOB_START_TIME\" ]; then\n END_TIME=$(date +%s)\n DURATION=$((END_TIME - JOB_START_TIME))\n MINS=$((DURATION / 60))\n SECS=$((DURATION % 60))\n echo \"JOB_DURATION_SECONDS=$DURATION\" >> $GITHUB_ENV\n echo \"=== Job Duration: ${MINS}m${SECS}s ===\"\nelse\n echo \"JOB_DURATION_SECONDS=0\" >> $GITHUB_ENV\n echo \"=== Job Duration: unknown ===\"\nfi\n" - name: Notify on failure + continue-on-error: true if: failure() shell: sh env: @@ -337,6 +339,7 @@ jobs: shell: sh run: "set +eu\nif [ -n \"$JOB_START_TIME\" ]; then\n END_TIME=$(date +%s)\n DURATION=$((END_TIME - JOB_START_TIME))\n MINS=$((DURATION / 60))\n SECS=$((DURATION % 60))\n echo \"JOB_DURATION_SECONDS=$DURATION\" >> $GITHUB_ENV\n echo \"=== Job Duration: ${MINS}m${SECS}s ===\"\nelse\n echo \"JOB_DURATION_SECONDS=0\" >> $GITHUB_ENV\n echo \"=== Job Duration: unknown ===\"\nfi\n" - name: Notify on failure + continue-on-error: true if: failure() shell: sh env: @@ -386,6 +389,7 @@ jobs: shell: sh run: "set +eu\nif [ -n \"$JOB_START_TIME\" ]; then\n END_TIME=$(date +%s)\n DURATION=$((END_TIME - JOB_START_TIME))\n MINS=$((DURATION / 60))\n SECS=$((DURATION % 60))\n echo \"JOB_DURATION_SECONDS=$DURATION\" >> $GITHUB_ENV\n echo \"=== Job Duration: ${MINS}m${SECS}s ===\"\nelse\n echo \"JOB_DURATION_SECONDS=0\" >> $GITHUB_ENV\n echo \"=== Job Duration: unknown ===\"\nfi\n" - name: Notify on failure + continue-on-error: true if: failure() shell: sh env: @@ -447,6 +451,7 @@ jobs: shell: sh run: "set +eu\nif [ -n \"$JOB_START_TIME\" ]; then\n END_TIME=$(date +%s)\n DURATION=$((END_TIME - JOB_START_TIME))\n MINS=$((DURATION / 60))\n SECS=$((DURATION % 60))\n echo \"JOB_DURATION_SECONDS=$DURATION\" >> $GITHUB_ENV\n echo \"=== Job Duration: ${MINS}m${SECS}s ===\"\nelse\n echo \"JOB_DURATION_SECONDS=0\" >> $GITHUB_ENV\n echo \"=== Job Duration: unknown ===\"\nfi\n" - name: Notify on failure + continue-on-error: true if: failure() shell: sh env: @@ -508,6 +513,7 @@ jobs: shell: sh run: "set +eu\nif [ -n \"$JOB_START_TIME\" ]; then\n END_TIME=$(date +%s)\n DURATION=$((END_TIME - JOB_START_TIME))\n MINS=$((DURATION / 60))\n SECS=$((DURATION % 60))\n echo \"JOB_DURATION_SECONDS=$DURATION\" >> $GITHUB_ENV\n echo \"=== Job Duration: ${MINS}m${SECS}s ===\"\nelse\n echo \"JOB_DURATION_SECONDS=0\" >> $GITHUB_ENV\n echo \"=== Job Duration: unknown ===\"\nfi\n" - name: Notify on failure + continue-on-error: true if: failure() shell: sh env: @@ -572,6 +578,7 @@ jobs: shell: sh run: "set +eu\nif [ -n \"$JOB_START_TIME\" ]; then\n END_TIME=$(date +%s)\n DURATION=$((END_TIME - JOB_START_TIME))\n MINS=$((DURATION / 60))\n SECS=$((DURATION % 60))\n echo \"JOB_DURATION_SECONDS=$DURATION\" >> $GITHUB_ENV\n echo \"=== Job Duration: ${MINS}m${SECS}s ===\"\nelse\n echo \"JOB_DURATION_SECONDS=0\" >> $GITHUB_ENV\n echo \"=== Job Duration: unknown ===\"\nfi\n" - name: Notify on failure + continue-on-error: true if: failure() shell: sh env: @@ -607,6 +614,7 @@ jobs: ' - name: Notify job start + continue-on-error: true shell: sh env: CI_NOTIFY_WEBHOOK: ${{ secrets.CI_NOTIFY_WEBHOOK }} @@ -638,6 +646,7 @@ jobs: shell: sh run: "set +eu\nif [ -n \"$JOB_START_TIME\" ]; then\n END_TIME=$(date +%s)\n DURATION=$((END_TIME - JOB_START_TIME))\n MINS=$((DURATION / 60))\n SECS=$((DURATION % 60))\n echo \"JOB_DURATION_SECONDS=$DURATION\" >> $GITHUB_ENV\n echo \"=== Job Duration: ${MINS}m${SECS}s ===\"\nelse\n echo \"JOB_DURATION_SECONDS=0\" >> $GITHUB_ENV\n echo \"=== Job Duration: unknown ===\"\nfi\n" - name: Notify on success + continue-on-error: true if: success() shell: sh env: @@ -648,6 +657,7 @@ jobs: ' - name: Notify on failure + continue-on-error: true if: failure() shell: sh env: @@ -687,6 +697,7 @@ jobs: shell: sh run: "set +eu\nif [ -n \"$JOB_START_TIME\" ]; then\n END_TIME=$(date +%s)\n DURATION=$((END_TIME - JOB_START_TIME))\n MINS=$((DURATION / 60))\n SECS=$((DURATION % 60))\n echo \"JOB_DURATION_SECONDS=$DURATION\" >> $GITHUB_ENV\n echo \"=== Job Duration: ${MINS}m${SECS}s ===\"\nelse\n echo \"JOB_DURATION_SECONDS=0\" >> $GITHUB_ENV\n echo \"=== Job Duration: unknown ===\"\nfi\n" - name: Notify on failure + continue-on-error: true if: failure() shell: sh env: @@ -726,6 +737,7 @@ jobs: shell: sh run: "set +eu\nif [ -n \"$JOB_START_TIME\" ]; then\n END_TIME=$(date +%s)\n DURATION=$((END_TIME - JOB_START_TIME))\n MINS=$((DURATION / 60))\n SECS=$((DURATION % 60))\n echo \"JOB_DURATION_SECONDS=$DURATION\" >> $GITHUB_ENV\n echo \"=== Job Duration: ${MINS}m${SECS}s ===\"\nelse\n echo \"JOB_DURATION_SECONDS=0\" >> $GITHUB_ENV\n echo \"=== Job Duration: unknown ===\"\nfi\n" - name: Notify on failure + continue-on-error: true if: failure() shell: sh env: @@ -800,6 +812,7 @@ jobs: shell: sh run: "set +eu\nif [ -n \"$JOB_START_TIME\" ]; then\n END_TIME=$(date +%s)\n DURATION=$((END_TIME - JOB_START_TIME))\n MINS=$((DURATION / 60))\n SECS=$((DURATION % 60))\n echo \"JOB_DURATION_SECONDS=$DURATION\" >> $GITHUB_ENV\n echo \"=== Job Duration: ${MINS}m${SECS}s ===\"\nelse\n echo \"JOB_DURATION_SECONDS=0\" >> $GITHUB_ENV\n echo \"=== Job Duration: unknown ===\"\nfi\n" - name: Notify on failure + continue-on-error: true if: failure() shell: sh env: @@ -874,6 +887,7 @@ jobs: shell: sh run: "set +eu\nif [ -n \"$JOB_START_TIME\" ]; then\n END_TIME=$(date +%s)\n DURATION=$((END_TIME - JOB_START_TIME))\n MINS=$((DURATION / 60))\n SECS=$((DURATION % 60))\n echo \"JOB_DURATION_SECONDS=$DURATION\" >> $GITHUB_ENV\n echo \"=== Job Duration: ${MINS}m${SECS}s ===\"\nelse\n echo \"JOB_DURATION_SECONDS=0\" >> $GITHUB_ENV\n echo \"=== Job Duration: unknown ===\"\nfi\n" - name: Notify on failure + continue-on-error: true if: failure() shell: sh env: @@ -957,6 +971,7 @@ jobs: shell: sh run: "set +eu\nif [ -n \"$JOB_START_TIME\" ]; then\n END_TIME=$(date +%s)\n DURATION=$((END_TIME - JOB_START_TIME))\n MINS=$((DURATION / 60))\n SECS=$((DURATION % 60))\n echo \"JOB_DURATION_SECONDS=$DURATION\" >> $GITHUB_ENV\n echo \"=== Job Duration: ${MINS}m${SECS}s ===\"\nelse\n echo \"JOB_DURATION_SECONDS=0\" >> $GITHUB_ENV\n echo \"=== Job Duration: unknown ===\"\nfi\n" - name: Notify on failure + continue-on-error: true if: failure() shell: sh env: @@ -992,6 +1007,7 @@ jobs: ' - name: Notify job start + continue-on-error: true shell: sh env: CI_NOTIFY_WEBHOOK: ${{ secrets.CI_NOTIFY_WEBHOOK }} @@ -1029,6 +1045,7 @@ jobs: shell: sh run: "set +eu\nif [ -n \"$JOB_START_TIME\" ]; then\n END_TIME=$(date +%s)\n DURATION=$((END_TIME - JOB_START_TIME))\n MINS=$((DURATION / 60))\n SECS=$((DURATION % 60))\n echo \"JOB_DURATION_SECONDS=$DURATION\" >> $GITHUB_ENV\n echo \"=== Job Duration: ${MINS}m${SECS}s ===\"\nelse\n echo \"JOB_DURATION_SECONDS=0\" >> $GITHUB_ENV\n echo \"=== Job Duration: unknown ===\"\nfi\n" - name: Notify on success + continue-on-error: true if: success() shell: sh env: @@ -1039,6 +1056,7 @@ jobs: ' - name: Notify on failure + continue-on-error: true if: failure() shell: sh env: @@ -1078,6 +1096,7 @@ jobs: shell: sh run: "set +eu\nif [ -n \"$JOB_START_TIME\" ]; then\n END_TIME=$(date +%s)\n DURATION=$((END_TIME - JOB_START_TIME))\n MINS=$((DURATION / 60))\n SECS=$((DURATION % 60))\n echo \"JOB_DURATION_SECONDS=$DURATION\" >> $GITHUB_ENV\n echo \"=== Job Duration: ${MINS}m${SECS}s ===\"\nelse\n echo \"JOB_DURATION_SECONDS=0\" >> $GITHUB_ENV\n echo \"=== Job Duration: unknown ===\"\nfi\n" - name: Notify on failure + continue-on-error: true if: failure() shell: sh env: @@ -1087,3 +1106,4 @@ jobs: NOTIFY_MODE=failure JOB_NAME="Production Browser E2E" python3 scripts/ci_notify.py ' + -- 2.54.0 From 1692ae135acd638bf041a325b0b9406e1407d0a4 Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Tue, 14 Jul 2026 19:03:32 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix(ci):=20=E9=A3=9E=E4=B9=A6=E9=80=9A?= =?UTF-8?q?=E7=9F=A5=E6=B6=88=E6=81=AF=E6=B7=BB=E5=8A=A0CI=E6=9E=84?= =?UTF-8?q?=E5=BB=BA=E5=85=B3=E9=94=AE=E8=AF=8D=E4=BB=A5=E9=80=9A=E8=BF=87?= =?UTF-8?q?=E5=85=B3=E9=94=AE=E8=AF=8D=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/ci_notify.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/scripts/ci_notify.py b/scripts/ci_notify.py index 6aa2d641c..8d897fe3a 100644 --- a/scripts/ci_notify.py +++ b/scripts/ci_notify.py @@ -76,24 +76,24 @@ def main() -> int: # 根据模式设置标题、状态、颜色 if mode == "start": - title = "🔄 CI 任务开始" + title = "🔄 CI构建任务开始" status = "blue" button_text = "查看进度" button_type = "primary" elif mode == "success": - title = f"✅ {job_name} 成功" + title = f"✅ CI构建成功 - {job_name}" status = "green" button_text = "查看详情" button_type = "primary" else: # failure - title = f"❌ {job_name} 失败" + title = f"❌ CI构建失败 - {job_name}" status = "red" button_text = "查看失败日志" button_type = "danger" - # 构建卡片内容 + # 构建卡片内容(含关键词"CI构建"以通过飞书机器人关键词校验) content_lines = [] - content_lines.append(f"**任务**: {job_name}") + content_lines.append(f"**CI构建任务**: {job_name}") if mode != "start": content_lines.append(f"**耗时**: {duration}") @@ -169,8 +169,7 @@ def main() -> int: pass except Exception as e: print(f"通知发送失败: {e}", file=sys.stderr) - # 通知失败不阻断CI主流程,仅打印告警 - return 0 + return 1 return 0 -- 2.54.0