Skip to content

Commit 492f0de

Browse files
committed
fix(release): retry slow COS uploads
1 parent cc3fe10 commit 492f0de

3 files changed

Lines changed: 16 additions & 2 deletions

File tree

.github/workflows/release.yml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -253,7 +253,13 @@ jobs:
253253
and (
254254
exc.get_status_code() >= 500
255255
or exc.get_error_code()
256-
in {"InternalError", "RequestTimeout", "ServiceUnavailable", "SlowDown"}
256+
in {
257+
"InternalError",
258+
"RequestTimeout",
259+
"ServiceUnavailable",
260+
"SlowDown",
261+
"UserNetworkTooSlow",
262+
}
257263
)
258264
)
259265

.github/workflows/sync-feature-assets.yml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -330,7 +330,13 @@ jobs:
330330
and (
331331
exc.get_status_code() >= 500
332332
or exc.get_error_code()
333-
in {"InternalError", "RequestTimeout", "ServiceUnavailable", "SlowDown"}
333+
in {
334+
"InternalError",
335+
"RequestTimeout",
336+
"ServiceUnavailable",
337+
"SlowDown",
338+
"UserNetworkTooSlow",
339+
}
334340
)
335341
)
336342

tests/test_release_workflows.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ def test_feature_assets_are_strictly_verified_and_published_manifest_last(self):
3838
self.assertIn("for attempt in range(3):", workflow)
3939
self.assertIn("time.sleep(2 ** attempt)", workflow)
4040
self.assertIn("if not is_retryable_put_error(exc) or attempt == 2:", workflow)
41+
self.assertIn('"UserNetworkTooSlow"', workflow)
4142
self.assertIn("def public_object_matches(path, key):", workflow)
4243
self.assertIn("?precheck={precheck_token}", workflow)
4344
self.assertIn("while chunk := response.read(1024 * 1024):", workflow)
@@ -98,6 +99,7 @@ def test_application_release_publishes_three_artifacts_versioned_before_latest(s
9899
self.assertIn("for attempt in range(3):", workflow)
99100
self.assertIn("time.sleep(2 ** attempt)", workflow)
100101
self.assertIn("if not is_retryable_put_error(exc) or attempt == 2:", workflow)
102+
self.assertIn('"UserNetworkTooSlow"', workflow)
101103
self.assertIn(
102104
"def public_object_matches(key, expected_size, expected_digest):", workflow
103105
)

0 commit comments

Comments
 (0)