From fcc21be9223c14329c9941edb0da9355e47e4e16 Mon Sep 17 00:00:00 2001 From: Tim Duesterhus Date: Thu, 29 Dec 2022 17:40:25 +0100 Subject: [PATCH] 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. --- .github/matrix.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/matrix.py b/.github/matrix.py index 7cd04e88a..3df259cd8 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():