fix: check_ci_status按创建时间取最新status,修复auto-merge误等pending的bug
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 45s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 4m34s
AI Code Review / AI Code Review (pull_request) Successful in 5m58s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 29s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 38m58s
CI/CD Pipeline / Production Browser E2E (pull_request) Failing after 1350h30m2s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 1350h35m45s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 1350h35m49s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 1350h35m47s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 1350h35m51s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 1350h39m45s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 1350h41m3s
CI/CD Pipeline / Build Production Worker Image (pull_request) Failing after 1350h41m5s
CI/CD Pipeline / Build Production API Image (pull_request) Failing after 1350h41m9s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 1350h43m46s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 1350h43m50s
CI/CD Pipeline / Check if frontend-only change (pull_request) Has been skipped
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Has been skipped
CI/CD Pipeline / Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / Frontend Lint (pull_request) Has been skipped
CI/CD Pipeline / PR Build API Image (pull_request) Has been skipped
CI/CD Pipeline / PR Build Web Image (pull_request) Has been skipped
CI/CD Pipeline / PR Build Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 1351h16m1s
CI/CD Pipeline / Build Production Web Image (pull_request) Failing after 1351h13m20s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 45s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 4m34s
AI Code Review / AI Code Review (pull_request) Successful in 5m58s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 29s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 38m58s
CI/CD Pipeline / Production Browser E2E (pull_request) Failing after 1350h30m2s
CI/CD Pipeline / ACR Image Cleanup (pull_request) Failing after 1350h35m45s
CI/CD Pipeline / Staging E2E Tests (pull_request) Failing after 1350h35m49s
CI/CD Pipeline / Staging API Integration Tests (pull_request) Failing after 1350h35m47s
CI/CD Pipeline / Deploy Production (pull_request) Failing after 1350h35m51s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 1350h39m45s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Failing after 1350h41m3s
CI/CD Pipeline / Build Production Worker Image (pull_request) Failing after 1350h41m5s
CI/CD Pipeline / Build Production API Image (pull_request) Failing after 1350h41m9s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Failing after 1350h43m46s
CI/CD Pipeline / Build Staging API Image (pull_request) Failing after 1350h43m50s
CI/CD Pipeline / Check if frontend-only change (pull_request) Has been skipped
CI/CD Pipeline / Validate Code Quality And Tests (pull_request) Has been skipped
CI/CD Pipeline / Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / Frontend Lint (pull_request) Has been skipped
CI/CD Pipeline / PR Build API Image (pull_request) Has been skipped
CI/CD Pipeline / PR Build Web Image (pull_request) Has been skipped
CI/CD Pipeline / PR Build Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Failing after 1351h16m1s
CI/CD Pipeline / Build Production Web Image (pull_request) Failing after 1351h13m20s
This commit is contained in:
+15
-13
@@ -31,20 +31,22 @@ def main():
|
||||
print("pending")
|
||||
return
|
||||
|
||||
# API返回按时间倒序,第一个就是最新的
|
||||
for s in statuses:
|
||||
if s.get("context") == target_context:
|
||||
status = s.get("status", "pending")
|
||||
# skipped 视为通过(条件跳过的任务不需要等)
|
||||
if status == "skipped":
|
||||
print("success")
|
||||
else:
|
||||
print(status)
|
||||
return
|
||||
# 筛选目标context,按时间倒序取最新的
|
||||
matching = [s for s in statuses if s.get("context") == target_context]
|
||||
if not matching:
|
||||
# 找不到说明CI还没开始写状态,返回pending继续等待
|
||||
print("pending")
|
||||
return
|
||||
|
||||
# 找不到这个context说明CI还没开始写状态,返回pending继续等待
|
||||
# (如果workflow真的被跳过,它会有一条status为skipped的记录)
|
||||
print("pending")
|
||||
# Gitea statuses API按时间正序返回,必须取最新的一条
|
||||
latest = max(matching, key=lambda s: s.get("created_at", ""))
|
||||
status = latest.get("status", "pending")
|
||||
|
||||
# skipped 视为通过(条件跳过的任务不需要等)
|
||||
if status == "skipped":
|
||||
print("success")
|
||||
else:
|
||||
print(status)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
Reference in New Issue
Block a user