CI: more granular failure on generating build matrix
when some api endpoints used for determine latest OpenSSL, LibreSSL
are unavailable, fail only those builds, not entire matrix
diff --git a/.github/matrix.py b/.github/matrix.py
index a2a02e9..7f22c43 100755
--- a/.github/matrix.py
+++ b/.github/matrix.py
@@ -33,11 +33,13 @@
headers = {}
if environ.get("GITHUB_TOKEN") is not None:
headers["Authorization"] = "token {}".format(environ.get("GITHUB_TOKEN"))
-
request = urllib.request.Request(
"https://api.github.com/repos/openssl/openssl/tags", headers=headers
)
- openssl_tags = urllib.request.urlopen(request)
+ try:
+ openssl_tags = urllib.request.urlopen(request)
+ except:
+ return "OPENSSL_VERSION=failed_to_detect"
tags = json.loads(openssl_tags.read().decode("utf-8"))
latest_tag = ""
for tag in tags:
@@ -50,9 +52,12 @@
@functools.lru_cache(5)
def determine_latest_libressl(ssl):
- libressl_download_list = urllib.request.urlopen(
- "https://cdn.openbsd.org/pub/OpenBSD/LibreSSL/"
- )
+ try:
+ libressl_download_list = urllib.request.urlopen(
+ "https://cdn.openbsd.org/pub/OpenBSD/LibreSSL/"
+ )
+ except:
+ return "LIBRESSL_VERSION=failed_to_detect"
for line in libressl_download_list.readlines():
decoded_line = line.decode("utf-8")
if "libressl-" in decoded_line and ".tar.gz.asc" in decoded_line: