QuicTLS is not changed frequently, thus it makes sense to cache it
across builds. We need its "version", let's stick on commit hash
---
.github/matrix.py | 57 ++++++++++++++++++++++++++++++++++++++---------
1 file changed, 47 insertions(+), 10 deletions(-)
diff --git a/.github/matrix.py b/.github/matrix.py
index a9ab4424e..742e4c87e 100755
--- a/.github/matrix.py
+++ b/.github/matrix.py
@@ -85,6 +85,30 @@ def determine_latest_libressl(ssl):
def clean_compression(compression):
return compression.replace("USE_", "").lower()
[email protected]_cache(5)
+def determine_latest_quictls_commit():
+ headers = {}
+ if environ.get("GITHUB_TOKEN") is not None:
+ headers["Authorization"] = "token
{}".format(environ.get("GITHUB_TOKEN"))
+
+ try:
+ request =
urllib.request.Request("https://api.github.com/repos/QuicTLS/OpenSSL",
headers=headers)
+
+ repo_info = urllib.request.urlopen(request)
+ repo_info = json.loads(repo_info.read().decode("utf-8"))
+
+ default_branch=repo_info['default_branch']
+
+ request =
urllib.request.Request("https://api.github.com/repos/QuicTLS/OpenSSL/commits/{}".format(default_branch),
headers=headers)
+
+ commits = urllib.request.urlopen(request)
+ commits = json.loads(commits.read().decode("utf-8"))
+
+ latest_commit=commits['sha']
+ except:
+ return "failed_to_detect"
+
+ return latest_commit
def main(ref_name):
print("Generating matrix for branch '{}'.".format(ref_name))
@@ -217,16 +241,29 @@ def main(ref_name):
if "OPENSSL" in ssl and "latest" in ssl:
ssl = determine_latest_openssl(ssl)
- matrix.append(
- {
- "name": "{}, {}, ssl={}".format(os, CC, clean_ssl(ssl)),
- "os": os,
- "TARGET": TARGET,
- "CC": CC,
- "ssl": ssl,
- "FLAGS": flags,
- }
- )
+ if "QUICTLS" in ssl:
+ matrix.append(
+ {
+ "name": "{}, {}, ssl={} QUICTLS_COMMIT={}".format(os,
CC, clean_ssl(ssl), determine_latest_quictls_commit()),
+ "os": os,
+ "TARGET": TARGET,
+ "CC": CC,
+ "ssl": ssl,
+ "FLAGS": flags,
+ "QUICTLS_COMMIT": determine_latest_quictls_commit(),
+ }
+ )
+ else:
+ matrix.append(
+ {
+ "name": "{}, {}, ssl={}".format(os, CC, clean_ssl(ssl)),
+ "os": os,
+ "TARGET": TARGET,
+ "CC": CC,
+ "ssl": ssl,
+ "FLAGS": flags,
+ }
+ )
# macOS
--
2.43.0.windows.1