Skip to content

Commit 6542a3a

Browse files
authored
invalid (#8864)
1 parent b7fedbd commit 6542a3a

2 files changed

Lines changed: 28 additions & 6 deletions

File tree

tests/get_testing_resources.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,11 @@ def get_testing_credentials(skip_role_deletion=False):
5050
read_timeout=LAMBDA_TIME_OUT + 60,
5151
),
5252
region_name="us-west-2",
53+
# Explicitly pass credentials stripped of whitespace to avoid Windows \r\n corruption
54+
# from GITHUB_ENV that can cause InvalidSignatureException
55+
aws_access_key_id=os.environ.get("AWS_ACCESS_KEY_ID", "").strip(),
56+
aws_secret_access_key=os.environ.get("AWS_SECRET_ACCESS_KEY", "").strip(),
57+
aws_session_token=os.environ.get("AWS_SESSION_TOKEN", "").strip() or None,
5358
)
5459

5560
# Prepare payload if skip_role_deletion is True

tests/setup_testing_resources.py

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import sys
1616
import time
1717

18+
from datetime import datetime, timezone
1819
from get_testing_resources import get_testing_credentials, get_managed_test_resource_outputs # type: ignore[import-not-found] # noqa: E402
1920

2021
from boto3.session import Session
@@ -103,12 +104,28 @@ def setup_credentials():
103104
mask_value(value)
104105
write_env(f"CI_ACCESS_ROLE_{env_key}", value)
105106

106-
# Get test credentials
107-
try:
108-
env_vars = get_testing_credentials(skip_role_deletion=True)
109-
except Exception:
110-
print("First attempt with skip_role_deletion failed, trying without parameter...")
111-
env_vars = get_testing_credentials(skip_role_deletion=False)
107+
# Log system clock for debugging InvalidSignatureException on Windows
108+
print(f"[DEBUG] System clock UTC: {datetime.now(timezone.utc).isoformat()}")
109+
110+
# Get test credentials with retry for transient OIDC propagation issues
111+
max_retries = 3
112+
for attempt in range(1, max_retries + 1):
113+
try:
114+
try:
115+
env_vars = get_testing_credentials(skip_role_deletion=True)
116+
except Exception:
117+
print("First attempt with skip_role_deletion failed, trying without parameter...")
118+
env_vars = get_testing_credentials(skip_role_deletion=False)
119+
break
120+
except Exception as e:
121+
if attempt < max_retries:
122+
print(f"Credential fetch attempt {attempt}/{max_retries} failed: {e}", file=sys.stderr)
123+
print(f"[DEBUG] System clock UTC: {datetime.now(timezone.utc).isoformat()}")
124+
print(f"Retrying in 5s...")
125+
time.sleep(5)
126+
else:
127+
print(f"FATAL: Failed to get credentials after {max_retries} attempts.", file=sys.stderr)
128+
raise
112129

113130
# Get managed test resources
114131
test_session = Session(

0 commit comments

Comments
 (0)