Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
602ff49f7b | ||
|
|
467e60627b |
@@ -40,12 +40,19 @@ jobs:
|
||||
repo = "${{ gitea.repository }}"
|
||||
current_run_number = int("${{ gitea.run_number }}")
|
||||
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 }}"
|
||||
token = os.environ["API_GITEA_TOKEN"]
|
||||
|
||||
print(f"Current run number: {current_run_number}")
|
||||
print(f"Current branch: {current_branch}")
|
||||
print(f"Current event: {current_event}")
|
||||
print(f"Current event (context, may be inaccurate): {current_event}")
|
||||
previous = "unknown"
|
||||
|
||||
# Scheduled runs can push the prior run for this branch/event beyond the
|
||||
@@ -87,9 +94,10 @@ jobs:
|
||||
f"event={event}"
|
||||
)
|
||||
|
||||
# aktuellen Run überspringen
|
||||
# aktuellen Run überspringen, aber dessen echtes Trigger-Event merken
|
||||
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
|
||||
|
||||
# nur abgeschlossene Runs
|
||||
|
||||
@@ -60,6 +60,12 @@ jobs:
|
||||
|
||||
# Probe the configured simple index before pip resolves dependencies. The
|
||||
# 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'
|
||||
import base64
|
||||
import sys
|
||||
@@ -84,6 +90,15 @@ jobs:
|
||||
if error.code in {401, 403}:
|
||||
print("Authentication was rejected by the private package index.")
|
||||
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:
|
||||
print(f"Private package-index probe could not reach {safe_url}: {error.reason}")
|
||||
raise SystemExit(1)
|
||||
|
||||
Reference in New Issue
Block a user