From: Tim Duesterhus Date: Thu, 29 Dec 2022 16:40:25 +0000 (+0100) Subject: CI: Add in-memory cache for the latest OpenSSL/LibreSSL X-Git-Tag: v2.8-dev1~23 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fcc21be9223c14329c9941edb0da9355e47e4e16;p=thirdparty%2Fhaproxy.git CI: Add in-memory cache for the latest OpenSSL/LibreSSL These functions were previously called once per compiler. Add the `lru_cache` decorator to only perform one HTTP request each. --- diff --git a/.github/matrix.py b/.github/matrix.py index 7cd04e88a6..3df259cd8c 100755 --- a/.github/matrix.py +++ b/.github/matrix.py @@ -8,6 +8,7 @@ # as published by the Free Software Foundation; either version # 2 of the License, or (at your option) any later version. +import functools import json import sys import urllib.request @@ -25,6 +26,7 @@ print("Generating matrix for branch '{}'.".format(ref_name)) def clean_ssl(ssl): return ssl.replace("_VERSION", "").lower() +@functools.lru_cache(5) def determine_latest_openssl(ssl): headers = {'Authorization': 'token ' + environ.get('GITHUB_API_TOKEN')} if environ.get('GITHUB_API_TOKEN') else {} request = urllib.request.Request('https://api.github.com/repos/openssl/openssl/tags', headers=headers) @@ -38,6 +40,7 @@ def determine_latest_openssl(ssl): latest_tag = name return "OPENSSL_VERSION={}".format(latest_tag[8:]) +@functools.lru_cache(5) 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():