fix private pip installation and notification of healed build
This commit is contained in:
@@ -43,72 +43,76 @@ jobs:
|
||||
current_event = "${{ gitea.event_name }}"
|
||||
token = os.environ["API_GITEA_TOKEN"]
|
||||
|
||||
url = (
|
||||
f"{server}/api/v1/repos/{repo}/actions/runs"
|
||||
f"?page=1&limit=5"
|
||||
)
|
||||
|
||||
print(f"Fetching workflow runs from: {url}")
|
||||
print(f"Current run number: {current_run_number}")
|
||||
print(f"Current branch: {current_branch}")
|
||||
print(f"Current event: {current_event}")
|
||||
|
||||
req = urllib.request.Request(
|
||||
url,
|
||||
headers={
|
||||
"Authorization": f"token {token}",
|
||||
"Accept": "application/json",
|
||||
},
|
||||
)
|
||||
|
||||
with urllib.request.urlopen(req) as response:
|
||||
data = json.loads(response.read().decode("utf-8"))
|
||||
|
||||
runs = data.get("workflow_runs", [])
|
||||
|
||||
print(f"Received {len(runs)} workflow runs")
|
||||
|
||||
previous = "unknown"
|
||||
|
||||
for run in runs:
|
||||
run_number = run.get("run_number")
|
||||
status = run.get("status")
|
||||
conclusion = run.get("conclusion")
|
||||
branch = run.get("head_branch")
|
||||
event = run.get("event")
|
||||
|
||||
print(
|
||||
f"Inspecting run #{run_number}: "
|
||||
f"status={status}, "
|
||||
f"conclusion={conclusion}, "
|
||||
f"branch={branch}, "
|
||||
f"event={event}"
|
||||
# Scheduled runs can push the prior run for this branch/event beyond the
|
||||
# first page. Scan a bounded history so a succeeding push after a failure
|
||||
# is still reported as healed.
|
||||
for page in range(1, 11):
|
||||
url = f"{server}/api/v1/repos/{repo}/actions/runs?page={page}&limit=100"
|
||||
print(f"Fetching workflow runs page {page}: {url}")
|
||||
req = urllib.request.Request(
|
||||
url,
|
||||
headers={
|
||||
"Authorization": f"token {token}",
|
||||
"Accept": "application/json",
|
||||
},
|
||||
)
|
||||
with urllib.request.urlopen(req) as response:
|
||||
data = json.loads(response.read().decode("utf-8"))
|
||||
|
||||
# aktuellen Run überspringen
|
||||
if int(run_number) == current_run_number:
|
||||
print(" -> skipping current run")
|
||||
continue
|
||||
runs = data.get("workflow_runs", [])
|
||||
if not isinstance(runs, list):
|
||||
print("Received an invalid workflow-runs payload; stopping lookup.")
|
||||
break
|
||||
print(f"Received {len(runs)} workflow runs on page {page}")
|
||||
if not runs:
|
||||
break
|
||||
|
||||
# nur abgeschlossene Runs
|
||||
if status != "completed":
|
||||
print(" -> skipping non-completed run")
|
||||
continue
|
||||
for run in runs:
|
||||
run_number = run.get("run_number")
|
||||
status = run.get("status")
|
||||
conclusion = run.get("conclusion")
|
||||
branch = run.get("head_branch")
|
||||
event = run.get("event")
|
||||
|
||||
# nur gleicher Branch
|
||||
if branch != current_branch:
|
||||
print(" -> skipping different branch")
|
||||
continue
|
||||
print(
|
||||
f"Inspecting run #{run_number}: "
|
||||
f"status={status}, "
|
||||
f"conclusion={conclusion}, "
|
||||
f"branch={branch}, "
|
||||
f"event={event}"
|
||||
)
|
||||
|
||||
# nur gleiches Event
|
||||
if event != current_event:
|
||||
print(" -> skipping different event")
|
||||
continue
|
||||
# aktuellen Run überspringen
|
||||
if str(run_number) == str(current_run_number):
|
||||
print(" -> skipping current run")
|
||||
continue
|
||||
|
||||
previous = conclusion or "unknown"
|
||||
# nur abgeschlossene Runs
|
||||
if status != "completed":
|
||||
print(" -> skipping non-completed run")
|
||||
continue
|
||||
|
||||
print(f" -> selected previous conclusion: {previous}")
|
||||
break
|
||||
# nur gleicher Branch
|
||||
if branch != current_branch:
|
||||
print(" -> skipping different branch")
|
||||
continue
|
||||
|
||||
# nur gleiches Event
|
||||
if event != current_event:
|
||||
print(" -> skipping different event")
|
||||
continue
|
||||
|
||||
previous = conclusion or "unknown"
|
||||
print(f" -> selected previous conclusion: {previous}")
|
||||
break
|
||||
|
||||
if previous != "unknown" or len(runs) < 100:
|
||||
break
|
||||
|
||||
print(f"Previous conclusion final: {previous}")
|
||||
|
||||
@@ -170,4 +174,4 @@ jobs:
|
||||
-H "Authorization: Bearer ${{ secrets.NTFY_TOKEN }}" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d @/tmp/ntfy-payload.json \
|
||||
"${{ secrets.NTFY_SERVER }}"
|
||||
"${{ secrets.NTFY_SERVER }}"
|
||||
|
||||
Reference in New Issue
Block a user