From 8a03bf4052884a38ceb01274b8344676cc71a06f Mon Sep 17 00:00:00 2001 From: Tim Duesterhus Date: Fri, 14 Oct 2022 19:46:06 +0200 Subject: [PATCH] CI: Replace the deprecated `::set-output` command by writing to $GITHUB_OUTPUT in matrix.py As announced in https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/ the `::set-output` command is deprecated, because processes during the workflow execution might output untrusted information that might include the `::set-output` command, thus allowing these untrusted information to hijack the build. The replacement is writing to the file indicated by the `$GITHUB_OUTPUT` environment variable. --- .github/matrix.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/matrix.py b/.github/matrix.py index 19ae87d79..76e0893a7 100755 --- a/.github/matrix.py +++ b/.github/matrix.py @@ -12,6 +12,7 @@ import json import sys import urllib.request import re +from os import environ if len(sys.argv) == 2: build_type = sys.argv[1] @@ -208,4 +209,6 @@ for CC in ["clang"]: print(json.dumps(matrix, indent=4, sort_keys=True)) -print("::set-output name=matrix::{}".format(json.dumps({"include": matrix}))) +if environ.get('GITHUB_OUTPUT') is not None: + with open(environ.get('GITHUB_OUTPUT'), 'a') as f: + print("matrix={}".format(json.dumps({"include": matrix})), file=f)