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.

(cherry picked from commit 8a03bf4052884a38ceb01274b8344676cc71a06f)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
(cherry picked from commit 7258191d11fc4f27c9f1af39b530f8b6bd4fd263)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
(cherry picked from commit 040ea328ff635aa92088d9bafc3f66f4142b799d)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
diff --git a/.github/matrix.py b/.github/matrix.py
index 264a3d2..d2b37cb 100644
--- a/.github/matrix.py
+++ b/.github/matrix.py
@@ -10,6 +10,7 @@
 import sys
 import urllib.request
 import re
+from os import environ
 
 if len(sys.argv) == 2:
     build_type = sys.argv[1]
@@ -207,4 +208,6 @@
 
 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)