CI: determine actual LibreSSL version dynamically

this change introduce "LIBRESSL_VERSION=latest" semantic, which scans
http://ftp.openbsd.org/pub/OpenBSD/LibreSSL/ and detects latest release.

LIBRESSL_VERSION=2.9.2 is removed from the matrix.
This commit is contained in:
Ilya Shipitsin 2022-05-13 21:59:38 +05:00 committed by Willy Tarreau
parent 370332572b
commit 94cd779a4f
1 changed files with 12 additions and 2 deletions

14
.github/matrix.py vendored
View File

@ -10,6 +10,8 @@
import json
import sys
import urllib.request
import re
if len(sys.argv) == 2:
build_type = sys.argv[1]
@ -31,6 +33,13 @@ def clean_os(os):
def clean_ssl(ssl):
return ssl.replace("_VERSION", "").lower()
def determine_latest_libressl(ssl):
libressl_download_list = urllib.request.urlopen("http://ftp.openbsd.org/pub/OpenBSD/LibreSSL/")
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:
l = re.split("libressl-|.tar.gz.asc", decoded_line)[1]
return "LIBRESSL={}".format(l)
def clean_compression(compression):
return compression.replace("USE_", "").lower()
@ -111,8 +120,7 @@ for CC in ["gcc", "clang"]:
"stock",
"OPENSSL_VERSION=1.0.2u",
"OPENSSL_VERSION=3.0.2",
"LIBRESSL_VERSION=2.9.2",
"LIBRESSL_VERSION=3.5.2",
"LIBRESSL_VERSION=latest",
"QUICTLS=yes",
# "BORINGSSL=yes",
]:
@ -122,6 +130,8 @@ for CC in ["gcc", "clang"]:
if ssl != "stock":
flags.append("SSL_LIB=${HOME}/opt/lib")
flags.append("SSL_INC=${HOME}/opt/include")
if "LIBRESSL" in ssl and "latest" in ssl:
ssl = determine_latest_libressl(ssl)
matrix.append(
{
"name": "{}, {}, ssl={}".format(clean_os(os), CC, clean_ssl(ssl)),