Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
602ff49f7b | ||
|
|
467e60627b |
@@ -40,12 +40,19 @@ jobs:
|
|||||||
repo = "${{ gitea.repository }}"
|
repo = "${{ gitea.repository }}"
|
||||||
current_run_number = int("${{ gitea.run_number }}")
|
current_run_number = int("${{ gitea.run_number }}")
|
||||||
current_branch = "${{ gitea.ref_name }}"
|
current_branch = "${{ gitea.ref_name }}"
|
||||||
|
# gitea.event_name is unreliable here: notifications.yml is itself called via
|
||||||
|
# workflow_call from the caller workflow, so inside this job it reports
|
||||||
|
# "workflow_call" rather than the top-level event (push/schedule/...) that
|
||||||
|
# actually started the run. The Actions API reports the real triggering event
|
||||||
|
# per run, so use that for the current run instead of trusting this context
|
||||||
|
# value. It is kept only as a last-resort fallback if the current run can't be
|
||||||
|
# found in the scanned history at all.
|
||||||
current_event = "${{ gitea.event_name }}"
|
current_event = "${{ gitea.event_name }}"
|
||||||
token = os.environ["API_GITEA_TOKEN"]
|
token = os.environ["API_GITEA_TOKEN"]
|
||||||
|
|
||||||
print(f"Current run number: {current_run_number}")
|
print(f"Current run number: {current_run_number}")
|
||||||
print(f"Current branch: {current_branch}")
|
print(f"Current branch: {current_branch}")
|
||||||
print(f"Current event: {current_event}")
|
print(f"Current event (context, may be inaccurate): {current_event}")
|
||||||
previous = "unknown"
|
previous = "unknown"
|
||||||
|
|
||||||
# Scheduled runs can push the prior run for this branch/event beyond the
|
# Scheduled runs can push the prior run for this branch/event beyond the
|
||||||
@@ -87,9 +94,10 @@ jobs:
|
|||||||
f"event={event}"
|
f"event={event}"
|
||||||
)
|
)
|
||||||
|
|
||||||
# aktuellen Run überspringen
|
# aktuellen Run überspringen, aber dessen echtes Trigger-Event merken
|
||||||
if str(run_number) == str(current_run_number):
|
if str(run_number) == str(current_run_number):
|
||||||
print(" -> skipping current run")
|
current_event = event or current_event
|
||||||
|
print(f" -> skipping current run (actual event={event})")
|
||||||
continue
|
continue
|
||||||
|
|
||||||
# nur abgeschlossene Runs
|
# nur abgeschlossene Runs
|
||||||
|
|||||||
@@ -60,6 +60,12 @@ jobs:
|
|||||||
|
|
||||||
# Probe the configured simple index before pip resolves dependencies. The
|
# Probe the configured simple index before pip resolves dependencies. The
|
||||||
# probe deliberately prints only scheme/host/path, never URL credentials.
|
# probe deliberately prints only scheme/host/path, never URL credentials.
|
||||||
|
# NOTE: Gitea's PyPI package registry does not serve a browsable listing at
|
||||||
|
# the bare /simple/ root (only /simple/<package>/ resolves per PEP 503), so a
|
||||||
|
# 404 against the configured URL is expected there and is not itself a fault.
|
||||||
|
# This probe therefore only fails hard on auth rejection (401/403) or an
|
||||||
|
# unreachable/erroring host; a plain 404 is logged and deferred to pip's own
|
||||||
|
# resolution, which is the real signal for whether the package is installable.
|
||||||
python - "$PRIVATE_INDEX_URL" <<'PY'
|
python - "$PRIVATE_INDEX_URL" <<'PY'
|
||||||
import base64
|
import base64
|
||||||
import sys
|
import sys
|
||||||
@@ -84,6 +90,15 @@ jobs:
|
|||||||
if error.code in {401, 403}:
|
if error.code in {401, 403}:
|
||||||
print("Authentication was rejected by the private package index.")
|
print("Authentication was rejected by the private package index.")
|
||||||
raise SystemExit(1)
|
raise SystemExit(1)
|
||||||
|
if error.code == 404:
|
||||||
|
print(
|
||||||
|
"Bare index root returned 404; Gitea's PyPI registry does not "
|
||||||
|
"serve a listing at /simple/ (only /simple/<package>/ resolves "
|
||||||
|
"per PEP 503). Treating this as expected and deferring to pip's "
|
||||||
|
"own dependency resolution to confirm the index actually works."
|
||||||
|
)
|
||||||
|
else:
|
||||||
|
raise SystemExit(1)
|
||||||
except URLError as error:
|
except URLError as error:
|
||||||
print(f"Private package-index probe could not reach {safe_url}: {error.reason}")
|
print(f"Private package-index probe could not reach {safe_url}: {error.reason}")
|
||||||
raise SystemExit(1)
|
raise SystemExit(1)
|
||||||
|
|||||||
Reference in New Issue
Block a user