fix: restore canvas availability on task entry (#3846)

This commit is contained in:
Carlos Florêncio
2026-09-21 23:20:52 +01:00
committed by GitHub
parent 65f27ecbff
commit d324d4918e
35 changed files with 2666 additions and 165 deletions
@@ -13,6 +13,9 @@ REPO_ROOT = Path(__file__).resolve().parents[2]
DOCKERFILE = REPO_ROOT / ".github" / "docker" / "ci-base" / "Dockerfile"
IMAGE_WORKFLOW = REPO_ROOT / ".github" / "workflows" / "ci-base-image.yml"
E2E_WORKFLOW = REPO_ROOT / ".github" / "workflows" / "e2e-tests.yml"
DOWNLOAD_ARTIFACT_RETRY_ACTION = (
REPO_ROOT / ".github" / "actions" / "download-artifact-retry" / "action.yml"
)
BACKEND_WORKFLOW = REPO_ROOT / ".github" / "workflows" / "backend-tests.yml"
FRONTEND_WORKFLOW = REPO_ROOT / ".github" / "workflows" / "frontend-tests.yml"
LINT_WORKFLOW = REPO_ROOT / ".github" / "workflows" / "lint-action-pinning.yml"
@@ -281,6 +284,38 @@ cat "${FAKE_DOCKER_MANIFEST}"
self.assertIn('artifact.name === "e2e-timing-profile"', workflow)
self.assertIn("!artifact.expired", workflow)
def test_e2e_artifact_downloads_retry_transient_service_failures(self) -> None:
workflow = E2E_WORKFLOW.read_text(encoding="utf-8")
self.assertTrue(DOWNLOAD_ARTIFACT_RETRY_ACTION.exists())
self.assertNotIn("uses: actions/download-artifact@", workflow)
self.assertGreaterEqual(
workflow.count("uses: ./.github/actions/download-artifact-retry"),
12,
)
action = DOWNLOAD_ARTIFACT_RETRY_ACTION.read_text(encoding="utf-8")
self.assertEqual(action.count("uses: actions/download-artifact@"), 3)
self.assertEqual(action.count("continue-on-error: true"), 3)
self.assertIn('default: "false"', action)
for input_name in (
"name",
"path",
"pattern",
"merge-multiple",
"repository",
"run-id",
"github-token",
):
self.assertEqual(
action.count(f"{input_name}: ${{{{ inputs.{input_name} }}}}"),
3,
input_name,
)
self.assertIn("sleep 10", action)
self.assertIn("sleep 30", action)
self.assertIn('rm -rf -- "$DOWNLOAD_PATH"', action)
self.assertIn("exit 1", action)
# @covers AC-PLATFORM-E2E-DURATION-AWARE-SHARDING-002.1
# @covers AC-PLATFORM-E2E-DURATION-AWARE-SHARDING-002.2
def test_container_job_reuses_verified_browser_cache_with_fallback(self) -> None: