Skip to content

Commit 9f80277

Browse files
committed
If amd64 tag fails creenshot test, mark CI run a "FAIL".
1 parent e929867 commit 9f80277

File tree

1 file changed

+17
-4
lines changed

1 file changed

+17
-4
lines changed

ci/ci.py

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -326,7 +326,11 @@ def container_test(self, tag: str) -> None:
326326
return
327327

328328
# Screenshot the web interface and check connectivity
329-
self.take_screenshot(container, tag)
329+
screenshot: bool = self.take_screenshot(container, tag)
330+
if not screenshot and self.get_platform(tag) == "amd64": # Allow ARM tags to fail the screenshot test
331+
self.logger.error("Test of %s FAILED after %.2f seconds", tag, time.time() - start_time)
332+
self._endtest(container, tag, build_info, sbom, False, start_time)
333+
return
330334

331335
self._endtest(container, tag, build_info, sbom, True, start_time)
332336
self.logger.success("Test of %s PASSED after %.2f seconds", tag, time.time() - start_time)
@@ -723,17 +727,20 @@ def _add_test_result(self, tag:str, test:str, status:str, message:str, start_tim
723727
"message":message,
724728
"runtime": runtime}.items())))
725729

726-
def take_screenshot(self, container: Container, tag:str) -> None:
730+
def take_screenshot(self, container: Container, tag:str) -> bool:
727731
"""Take a screenshot and save it to self.outdir if self.screenshot is True
728732
729733
Takes a screenshot using a ChromiumDriver instance.
730734
731735
Args:
732736
container (Container): Container object
733737
tag (str): The container tag we are testing.
738+
739+
Returns:
740+
bool: Return True if the screenshot was successful, otherwise False.
734741
"""
735742
if not self.screenshot:
736-
return
743+
return True
737744
proto: Literal["https", "http"] = "https" if self.ssl.upper() == "TRUE" else "http"
738745
screenshot_timeout = time.time() + self.screenshot_timeout
739746
test = "Get screenshot"
@@ -757,7 +764,7 @@ def take_screenshot(self, container: Container, tag:str) -> None:
757764
raise FileNotFoundError(f"Screenshot '{self.outdir}/{tag}.png' not found")
758765
self._add_test_result(tag, test, "PASS", "-", start_time)
759766
self.logger.success("Screenshot %s: PASSED after %.2f seconds", tag, time.time() - start_time)
760-
return
767+
return True
761768
except Exception as error:
762769
logger.debug("Failed to take screenshot of %s at %s, trying again in 3 seconds", tag, endpoint, exc_info=error)
763770
time.sleep(3)
@@ -768,12 +775,18 @@ def take_screenshot(self, container: Container, tag:str) -> None:
768775
except (requests.Timeout, requests.ConnectionError, KeyError) as error:
769776
self._add_test_result(tag, test, "FAIL", f"CONNECTION ERROR: {str(error)}", start_time)
770777
self.logger.exception("Screenshot %s FAIL CONNECTION ERROR", tag)
778+
self.report_status = "FAIL"
779+
return False
771780
except TimeoutException as error:
772781
self._add_test_result(tag, test, "FAIL", f"TIMEOUT: {str(error)}", start_time)
773782
self.logger.exception("Screenshot %s FAIL TIMEOUT", tag)
783+
self.report_status = "FAIL"
784+
return False
774785
except (WebDriverException, Exception) as error:
775786
self._add_test_result(tag, test, "FAIL", f"UNKNOWN: {str(error)}", start_time)
776787
self.logger.exception("Screenshot %s FAIL UNKNOWN", tag)
788+
self.report_status = "FAIL"
789+
return False
777790
finally:
778791
try:
779792
driver.quit()

0 commit comments

Comments
 (0)