From 7064d6bd0192f26f803b0bd7634f9189b71419ae Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Sun, 24 Sep 2023 10:23:27 +0100 Subject: [PATCH 001/146] Bump to `sqren/backport-github-action@v9.3.0-a` Signed-off-by: Pedro Algarvio --- .github/workflows/backport.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/backport.yml b/.github/workflows/backport.yml index b70b84df5b3..4e255576c92 100644 --- a/.github/workflows/backport.yml +++ b/.github/workflows/backport.yml @@ -33,7 +33,7 @@ jobs: ) steps: - name: Backport Action - uses: sqren/backport-github-action@v8.9.7 + uses: sqren/backport-github-action@v9.3.0-a with: github_token: ${{ secrets.GITHUB_TOKEN }} auto_backport_label_prefix: "backport:" From 625a939459fa354f61f02aae9b43212f2c47b6f3 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Sun, 24 Sep 2023 21:20:44 +0100 Subject: [PATCH 002/146] Downgrade to `sqren/backport-github-action@v8.9.7` at least errors are reported Signed-off-by: Pedro Algarvio --- .backportrc.json | 2 +- .github/workflows/backport.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.backportrc.json b/.backportrc.json index b988c16660f..1fc808b961b 100644 --- a/.backportrc.json +++ b/.backportrc.json @@ -1,7 +1,7 @@ { "repoOwner": "saltstack", "repoName": "salt", - "targetBranchChoices": ["master", "3006.x", "3005.x"], + "targetBranchChoices": ["master", "3006.x", "3005.x", "freeze"], "autoMerge": false, "autoMergeMethod": "rebase", "branchLabelMapping": { diff --git a/.github/workflows/backport.yml b/.github/workflows/backport.yml index 4e255576c92..b70b84df5b3 100644 --- a/.github/workflows/backport.yml +++ b/.github/workflows/backport.yml @@ -33,7 +33,7 @@ jobs: ) steps: - name: Backport Action - uses: sqren/backport-github-action@v9.3.0-a + uses: sqren/backport-github-action@v8.9.7 with: github_token: ${{ secrets.GITHUB_TOKEN }} auto_backport_label_prefix: "backport:" From 67bdf8b2ec4bc396a7226d57565b8a05eaec1e88 Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Sun, 7 Jan 2024 18:10:36 -0700 Subject: [PATCH 003/146] Fix CVE-2024-22231 and CVE-2024-22232 --- salt/fileserver/__init__.py | 7 +- salt/fileserver/roots.py | 26 ++ salt/master.py | 8 +- tests/pytests/unit/fileserver/test_roots.py | 313 ++++++++++++++++++++ tests/pytests/unit/test_fileserver.py | 127 ++++++++ tests/pytests/unit/test_master.py | 32 ++ tests/unit/fileserver/test_roots.py | 273 ----------------- tests/unit/test_fileserver.py | 79 ----- 8 files changed, 508 insertions(+), 357 deletions(-) create mode 100644 tests/pytests/unit/fileserver/test_roots.py create mode 100644 tests/pytests/unit/test_fileserver.py delete mode 100644 tests/unit/fileserver/test_roots.py delete mode 100644 tests/unit/test_fileserver.py diff --git a/salt/fileserver/__init__.py b/salt/fileserver/__init__.py index 99f12387f91..51e8ed66597 100644 --- a/salt/fileserver/__init__.py +++ b/salt/fileserver/__init__.py @@ -569,10 +569,6 @@ class Fileserver: back = self.backends(back) kwargs = {} fnd = {"path": "", "rel": ""} - if os.path.isabs(path): - return fnd - if "../" in path: - return fnd if salt.utils.url.is_escaped(path): # don't attempt to find URL query arguments in the path path = salt.utils.url.unescape(path) @@ -588,6 +584,9 @@ class Fileserver: args = comp.split("=", 1) kwargs[args[0]] = args[1] + if os.path.isabs(path) or "../" in path: + return fnd + if "env" in kwargs: # "env" is not supported; Use "saltenv". kwargs.pop("env") diff --git a/salt/fileserver/roots.py b/salt/fileserver/roots.py index 4880cbab9b4..4ffdb6df6ff 100644 --- a/salt/fileserver/roots.py +++ b/salt/fileserver/roots.py @@ -27,6 +27,7 @@ import salt.utils.hashutils import salt.utils.path import salt.utils.platform import salt.utils.stringutils +import salt.utils.verify import salt.utils.versions log = logging.getLogger(__name__) @@ -98,6 +99,11 @@ def find_file(path, saltenv="base", **kwargs): if saltenv == "__env__": root = root.replace("__env__", actual_saltenv) full = os.path.join(root, path) + + # Refuse to serve file that is not under the root. + if not salt.utils.verify.clean_path(root, full, subdir=True): + continue + if os.path.isfile(full) and not salt.fileserver.is_file_ignored(__opts__, full): fnd["path"] = full fnd["rel"] = path @@ -128,6 +134,26 @@ def serve_file(load, fnd): ret["dest"] = fnd["rel"] gzip = load.get("gzip", None) fpath = os.path.normpath(fnd["path"]) + + actual_saltenv = saltenv = load["saltenv"] + if saltenv not in __opts__["file_roots"]: + if "__env__" in __opts__["file_roots"]: + log.debug( + "salt environment '%s' maps to __env__ file_roots directory", saltenv + ) + saltenv = "__env__" + else: + return fnd + file_in_root = False + for root in __opts__["file_roots"][saltenv]: + if saltenv == "__env__": + root = root.replace("__env__", actual_saltenv) + # Refuse to serve file that is not under the root. + if salt.utils.verify.clean_path(root, fpath, subdir=True): + file_in_root = True + if not file_in_root: + return ret + with salt.utils.files.fopen(fpath, "rb") as fp_: fp_.seek(load["loc"]) data = fp_.read(__opts__["file_buffer_size"]) diff --git a/salt/master.py b/salt/master.py index 9c06a52c1cd..7101416ec0c 100644 --- a/salt/master.py +++ b/salt/master.py @@ -1730,10 +1730,16 @@ class AESFuncs(TransportMethods): self.mminion.returners[fstr](load["jid"], load["load"]) # Register the syndic + + # We are creating a path using user suplied input. Use the + # clean_path to prevent a directory traversal. + root = os.path.join(self.opts["cachedir"], "syndics") syndic_cache_path = os.path.join( self.opts["cachedir"], "syndics", load["id"] ) - if not os.path.exists(syndic_cache_path): + if not os.path.exists(syndic_cache_path) and salt.utils.verify.clean_path( + root, syndic_cache_path + ): path_name = os.path.split(syndic_cache_path)[0] if not os.path.exists(path_name): os.makedirs(path_name) diff --git a/tests/pytests/unit/fileserver/test_roots.py b/tests/pytests/unit/fileserver/test_roots.py new file mode 100644 index 00000000000..72e3d5ca39a --- /dev/null +++ b/tests/pytests/unit/fileserver/test_roots.py @@ -0,0 +1,313 @@ +""" + :codeauthor: Mike Place +""" + +import copy +import pathlib +import shutil +import textwrap + +import pytest +import salt.fileclient +import salt.fileserver.roots as roots +import salt.utils.files +import salt.utils.hashutils +import salt.utils.platform +import salt.utils.stringutils +from tests.support.mock import MagicMock, mock_open, patch + + +@pytest.fixture(scope="module") +def unicode_filename(): + return "питон.txt" + + +@pytest.fixture(scope="module") +def unicode_dirname(): + return "соль" + + +@pytest.fixture(autouse=True) +def testfile(tmp_path): + fp = tmp_path / "testfile" + fp.write_text("This is a testfile") + return fp + + +@pytest.fixture(autouse=True) +def tmp_state_tree(tmp_path, testfile, unicode_filename, unicode_dirname): + dirname = tmp_path / "roots_tmp_state_tree" + dirname.mkdir(parents=True, exist_ok=True) + shutil.copyfile(str(testfile), str(dirname / testfile.name)) + unicode_dir = dirname / unicode_dirname + unicode_dir.mkdir(parents=True, exist_ok=True) + (dirname / unicode_filename).write_text("this is a unicode file") + (unicode_dir / unicode_filename).write_text( + "this is a unicode file in a unicode env" + ) + (unicode_dir / "notunicode").write_text( + "this is NOT a unicode file in a unicode env" + ) + + return dirname + + +@pytest.fixture(autouse=True) +def testfilepath(tmp_state_tree, testfile): + return tmp_state_tree / testfile.name + + +@pytest.fixture +def configure_loader_modules(tmp_state_tree, temp_salt_master): + opts = temp_salt_master.config.copy() + overrides = {"file_roots": {"base": [str(tmp_state_tree)]}} + opts.update(overrides) + return {roots: {"__opts__": opts}} + + +def test_file_list(unicode_filename): + ret = roots.file_list({"saltenv": "base"}) + assert "testfile" in ret + assert unicode_filename in ret + + +def test_find_file(tmp_state_tree): + ret = roots.find_file("testfile") + assert "testfile" == ret["rel"] + + full_path_to_file = str(tmp_state_tree / "testfile") + assert full_path_to_file == ret["path"] + + +def test_serve_file(testfilepath): + with patch.dict(roots.__opts__, {"file_buffer_size": 262144}): + load = { + "saltenv": "base", + "path": str(testfilepath), + "loc": 0, + } + fnd = {"path": str(testfilepath), "rel": "testfile"} + ret = roots.serve_file(load, fnd) + + with salt.utils.files.fopen(str(testfilepath), "rb") as fp_: + data = fp_.read() + + assert ret == {"data": data, "dest": "testfile"} + + +def test_envs(unicode_dirname): + opts = {"file_roots": copy.copy(roots.__opts__["file_roots"])} + opts["file_roots"][unicode_dirname] = opts["file_roots"]["base"] + with patch.dict(roots.__opts__, opts): + ret = roots.envs() + assert "base" in ret + assert unicode_dirname in ret + + +def test_file_hash(testfile): + load = { + "saltenv": "base", + "path": str(testfile), + } + fnd = {"path": str(testfile), "rel": "testfile"} + ret = roots.file_hash(load, fnd) + + # Hashes are different in Windows. May be how git translates line + # endings + with salt.utils.files.fopen(str(testfile), "rb") as fp_: + hsum = salt.utils.hashutils.sha256_digest(fp_.read()) + + assert ret == {"hsum": hsum, "hash_type": "sha256"} + + +def test_file_list_emptydirs(tmp_state_tree): + empty_dir = tmp_state_tree / "empty_dir" + empty_dir.mkdir(parents=True, exist_ok=True) + ret = roots.file_list_emptydirs({"saltenv": "base"}) + assert "empty_dir" in ret + + +def test_file_list_with_slash(unicode_filename): + opts = {"file_roots": copy.copy(roots.__opts__["file_roots"])} + opts["file_roots"]["foo/bar"] = opts["file_roots"]["base"] + load = { + "saltenv": "foo/bar", + } + with patch.dict(roots.__opts__, opts): + ret = roots.file_list(load) + assert "testfile" in ret + assert unicode_filename in ret + + +def test_dir_list(tmp_state_tree, unicode_dirname): + empty_dir = tmp_state_tree / "empty_dir" + empty_dir.mkdir(parents=True, exist_ok=True) + ret = roots.dir_list({"saltenv": "base"}) + assert "empty_dir" in ret + assert unicode_dirname in ret + + +def test_symlink_list(tmp_state_tree): + source_sym = tmp_state_tree / "source_sym" + source_sym.write_text("") + dest_sym = tmp_state_tree / "dest_sym" + dest_sym.symlink_to(str(source_sym)) + ret = roots.symlink_list({"saltenv": "base"}) + assert ret == {"dest_sym": str(source_sym)} + + +def test_dynamic_file_roots(tmp_path): + dyn_root_dir = tmp_path / "dyn_root_dir" + dyn_root_dir.mkdir(parents=True, exist_ok=True) + top_sls = dyn_root_dir / "top.sls" + with salt.utils.files.fopen(str(top_sls), "w") as fp_: + fp_.write("{{saltenv}}:\n '*':\n - dynamo\n") + dynamo_sls = dyn_root_dir / "dynamo.sls" + with salt.utils.files.fopen(str(dynamo_sls), "w") as fp_: + fp_.write("foo:\n test.nop\n") + opts = {"file_roots": copy.copy(roots.__opts__["file_roots"])} + opts["file_roots"]["__env__"] = [str(dyn_root_dir)] + with patch.dict(roots.__opts__, opts): + ret1 = roots.find_file("dynamo.sls", "dyn") + ret2 = roots.file_list({"saltenv": "dyn"}) + assert "dynamo.sls" == ret1["rel"] + assert "top.sls" in ret2 + assert "dynamo.sls" in ret2 + + +@pytest.mark.skip_on_windows( + reason="Windows does not support this master function", +) +def test_update_no_change(): + # process all changes that have happen + # changes will always take place the first time during testing + ret = roots.update() + assert ret["changed"] is True + + # check if no changes took place + ret = roots.update() + assert ret["changed"] is False + assert ret["files"]["changed"] == [] + assert ret["files"]["removed"] == [] + assert ret["files"]["added"] == [] + + +def test_update_mtime_map(): + """ + Test that files with colons in the filename are properly handled in the + mtime_map, and that they are properly identified as having changed. + """ + mtime_map_path = pathlib.Path(roots.__opts__["cachedir"], "roots", "mtime_map") + mtime_map_mock = mock_open( + read_data={ + str(mtime_map_path): textwrap.dedent( + """\ + /srv/salt/kleine_Datei.txt:1594263154.0469685 + /srv/salt/große:Datei.txt:1594263160.9336357 + """ + ), + } + ) + new_mtime_map = { + "/srv/salt/kleine_Datei.txt": 1594263154.0469685, + "/srv/salt/große:Datei.txt": 1594263261.0616212, + } + + with patch( + "salt.fileserver.reap_fileserver_cache_dir", MagicMock(return_value=True) + ), patch( + "salt.fileserver.generate_mtime_map", MagicMock(return_value=new_mtime_map) + ), patch.dict( + roots.__opts__, {"fileserver_events": False} + ), patch( + "salt.utils.files.fopen", mtime_map_mock + ): + ret = roots.update() + + # Confirm the expected return from the function + assert ret == { + "changed": True, + "files": { + "changed": ["/srv/salt/große:Datei.txt"], + "removed": [], + "added": [], + }, + "backend": "roots", + }, ret + + # Confirm that the new values were written to the mtime_map. Sort both + # lists of lines to account for variances in dictionary iteration order + # between Python releases. + lines_written = sorted(mtime_map_mock.write_calls()) + expected = sorted( + salt.utils.stringutils.to_bytes(f"{key}:{val}\n") + for key, val in new_mtime_map.items() + ) + assert lines_written == expected, lines_written + + +def test_update_mtime_map_unicode_error(tmp_path): + """ + Test that a malformed mtime_map (which causes an UnicodeDecodeError + exception) is handled properly. + """ + new_mtime_map = { + "/srv/salt/große:Datei.txt": 1594263261.0616212, + } + tmpdirname = tmp_path / "unicode_error" + mtime_map_path = tmpdirname / "roots" / "mtime_map" + mtime_map_path.parent.mkdir(parents=True, exist_ok=True) + with salt.utils.files.fopen(str(mtime_map_path), "wb") as fp: + fp.write(b"\x9c") + + with patch( + "salt.fileserver.reap_fileserver_cache_dir", + MagicMock(return_value=True), + ), patch( + "salt.fileserver.generate_mtime_map", + MagicMock(return_value=new_mtime_map), + ), patch.dict( + roots.__opts__, + {"fileserver_events": False, "cachedir": str(tmpdirname)}, + ): + ret = roots.update() + + assert ret == { + "changed": True, + "files": { + "changed": [], + "removed": [], + "added": ["/srv/salt/große:Datei.txt"], + }, + "backend": "roots", + } + + +def test_find_file_not_in_root(tmp_state_tree): + """ + Fileroots should never 'find' a file that is outside of it's root. + """ + badfile = pathlib.Path(tmp_state_tree).parent / "bar" + badfile.write_text("Bad file") + badpath = f"../bar" + ret = roots.find_file(badpath) + assert ret == {"path": "", "rel": ""} + badpath = f"{tmp_state_tree / '..' / 'bar'}" + ret = roots.find_file(badpath) + assert ret == {"path": "", "rel": ""} + + +def test_serve_file_not_in_root(tmp_state_tree): + """ + Fileroots should never 'serve' a file that is outside of it's root. + """ + badfile = pathlib.Path(tmp_state_tree).parent / "bar" + badfile.write_text("Bad file") + badpath = f"../bar" + load = {"path": "salt://|..\\bar", "saltenv": "base", "loc": 0} + fnd = { + "path": f"{tmp_state_tree / '..' / 'bar'}", + "rel": f"{pathlib.Path('..') / 'bar'}", + } + ret = roots.serve_file(load, fnd) + assert ret == {"data": "", "dest": "../bar"} diff --git a/tests/pytests/unit/test_fileserver.py b/tests/pytests/unit/test_fileserver.py new file mode 100644 index 00000000000..f2b2bb480f9 --- /dev/null +++ b/tests/pytests/unit/test_fileserver.py @@ -0,0 +1,127 @@ +""" +""" + + +import datetime +import os +import time + +import salt.fileserver +import salt.utils.files + + +def test_diff_with_diffent_keys(): + """ + Test that different maps are indeed reported different + """ + map1 = {"file1": 1234} + map2 = {"file2": 1234} + assert salt.fileserver.diff_mtime_map(map1, map2) is True + + +def test_diff_with_diffent_values(): + """ + Test that different maps are indeed reported different + """ + map1 = {"file1": 12345} + map2 = {"file1": 1234} + assert salt.fileserver.diff_mtime_map(map1, map2) is True + + +def test_whitelist(): + opts = { + "fileserver_backend": ["roots", "git", "s3fs", "hgfs", "svn"], + "extension_modules": "", + } + fs = salt.fileserver.Fileserver(opts) + assert sorted(fs.servers.whitelist) == sorted( + ["git", "gitfs", "hg", "hgfs", "svn", "svnfs", "roots", "s3fs"] + ), fs.servers.whitelist + + +def test_future_file_list_cache_file_ignored(tmp_path): + opts = { + "fileserver_backend": ["roots"], + "cachedir": tmp_path, + "extension_modules": "", + } + + back_cachedir = os.path.join(tmp_path, "file_lists/roots") + os.makedirs(os.path.join(back_cachedir)) + + # Touch a couple files + for filename in ("base.p", "foo.txt"): + with salt.utils.files.fopen(os.path.join(back_cachedir, filename), "wb") as _f: + if filename == "base.p": + _f.write(b"\x80") + + # Set modification time to file list cache file to 1 year in the future + now = datetime.datetime.utcnow() + future = now + datetime.timedelta(days=365) + mod_time = time.mktime(future.timetuple()) + os.utime(os.path.join(back_cachedir, "base.p"), (mod_time, mod_time)) + + list_cache = os.path.join(back_cachedir, "base.p") + w_lock = os.path.join(back_cachedir, ".base.w") + ret = salt.fileserver.check_file_list_cache(opts, "files", list_cache, w_lock) + assert ( + ret[1] is True + ), "Cache file list cache file is not refreshed when future modification time" + + +def test_file_server_url_escape(tmp_path): + (tmp_path / "srv").mkdir() + (tmp_path / "srv" / "salt").mkdir() + (tmp_path / "foo").mkdir() + (tmp_path / "foo" / "bar").write_text("Bad file") + fileroot = str(tmp_path / "srv" / "salt") + badfile = str(tmp_path / "foo" / "bar") + opts = { + "fileserver_backend": ["roots"], + "extension_modules": "", + "optimization_order": [ + 0, + ], + "file_roots": { + "base": [fileroot], + }, + "file_ignore_regex": "", + "file_ignore_glob": "", + } + fs = salt.fileserver.Fileserver(opts) + ret = fs.find_file( + "salt://|..\\..\\..\\foo/bar", + "base", + ) + assert ret == {"path": "", "rel": ""} + + +def test_file_server_serve_url_escape(tmp_path): + (tmp_path / "srv").mkdir() + (tmp_path / "srv" / "salt").mkdir() + (tmp_path / "foo").mkdir() + (tmp_path / "foo" / "bar").write_text("Bad file") + fileroot = str(tmp_path / "srv" / "salt") + badfile = str(tmp_path / "foo" / "bar") + opts = { + "fileserver_backend": ["roots"], + "extension_modules": "", + "optimization_order": [ + 0, + ], + "file_roots": { + "base": [fileroot], + }, + "file_ignore_regex": "", + "file_ignore_glob": "", + "file_buffer_size": 2048, + } + fs = salt.fileserver.Fileserver(opts) + ret = fs.serve_file( + { + "path": "salt://|..\\..\\..\\foo/bar", + "saltenv": "base", + "loc": 0, + } + ) + assert ret == {"data": "", "dest": ""} diff --git a/tests/pytests/unit/test_master.py b/tests/pytests/unit/test_master.py index a49ecfec3b1..b4a0e0f44f5 100644 --- a/tests/pytests/unit/test_master.py +++ b/tests/pytests/unit/test_master.py @@ -14,3 +14,35 @@ def test_fileserver_duration(): update.called_once() # Timeout is 1 second assert 2 > end - start > 1 + + +def test_syndic_return_cache_dir_creation(encrypted_requests): + """master's cachedir for a syndic will be created by AESFuncs._syndic_return method""" + cachedir = pathlib.Path(encrypted_requests.opts["cachedir"]) + assert not (cachedir / "syndics").exists() + encrypted_requests._syndic_return( + { + "id": "mamajama", + "jid": "", + "return": {}, + } + ) + assert (cachedir / "syndics").exists() + assert (cachedir / "syndics" / "mamajama").exists() + + +def test_syndic_return_cache_dir_creation_traversal(encrypted_requests): + """ + master's AESFuncs._syndic_return method cachdir creation is not vulnerable to a directory traversal + """ + cachedir = pathlib.Path(encrypted_requests.opts["cachedir"]) + assert not (cachedir / "syndics").exists() + encrypted_requests._syndic_return( + { + "id": "../mamajama", + "jid": "", + "return": {}, + } + ) + assert not (cachedir / "syndics").exists() + assert not (cachedir / "mamajama").exists() diff --git a/tests/unit/fileserver/test_roots.py b/tests/unit/fileserver/test_roots.py deleted file mode 100644 index 0b917091b46..00000000000 --- a/tests/unit/fileserver/test_roots.py +++ /dev/null @@ -1,273 +0,0 @@ -""" - :codeauthor: Mike Place -""" - -import copy -import os -import pathlib -import shutil -import tempfile -import textwrap - -import salt.fileclient -import salt.fileserver.roots as roots -import salt.utils.files -import salt.utils.hashutils -import salt.utils.platform -import salt.utils.stringutils -from tests.support.mixins import ( - AdaptedConfigurationTestCaseMixin, - LoaderModuleMockMixin, -) -from tests.support.mock import MagicMock, mock_open, patch -from tests.support.runtests import RUNTIME_VARS -from tests.support.unit import TestCase, skipIf - -UNICODE_FILENAME = "питон.txt" -UNICODE_DIRNAME = UNICODE_ENVNAME = "соль" - - -class RootsTest(TestCase, AdaptedConfigurationTestCaseMixin, LoaderModuleMockMixin): - def setup_loader_modules(self): - config_overrides = {"file_roots": {"base": [str(self.tmp_state_tree)]}} - self.opts = self.get_temp_config("master", **config_overrides) - return {roots: {"__opts__": self.opts}} - - @classmethod - def setUpClass(cls): - cls.tmp_dir = pathlib.Path(tempfile.mkdtemp(dir=RUNTIME_VARS.TMP)) - cls.tmp_state_tree = pathlib.Path(tempfile.mkdtemp(dir=RUNTIME_VARS.TMP)) - full_path_to_file = os.path.join(RUNTIME_VARS.BASE_FILES, "testfile") - shutil.copyfile(full_path_to_file, str(cls.tmp_dir / "testfile")) - shutil.copyfile(full_path_to_file, str(cls.tmp_state_tree / "testfile")) - shutil.copyfile( - os.path.join(RUNTIME_VARS.BASE_FILES, UNICODE_FILENAME), - str(cls.tmp_state_tree / UNICODE_FILENAME), - ) - shutil.copytree( - os.path.join(RUNTIME_VARS.BASE_FILES, UNICODE_DIRNAME), - str(cls.tmp_state_tree / UNICODE_DIRNAME), - ) - - @classmethod - def tearDownClass(cls): - salt.utils.files.rm_rf(str(cls.tmp_dir)) - salt.utils.files.rm_rf(str(cls.tmp_state_tree)) - - def tearDown(self): - del self.opts - - def test_file_list(self): - ret = roots.file_list({"saltenv": "base"}) - self.assertIn("testfile", ret) - self.assertIn(UNICODE_FILENAME, ret) - - def test_find_file(self): - ret = roots.find_file("testfile") - self.assertEqual("testfile", ret["rel"]) - - full_path_to_file = str(self.tmp_state_tree / "testfile") - self.assertEqual(full_path_to_file, ret["path"]) - - def test_serve_file(self): - with patch.dict(roots.__opts__, {"file_buffer_size": 262144}): - load = { - "saltenv": "base", - "path": str(self.tmp_dir / "testfile"), - "loc": 0, - } - fnd = {"path": str(self.tmp_dir / "testfile"), "rel": "testfile"} - ret = roots.serve_file(load, fnd) - - with salt.utils.files.fopen( - os.path.join(RUNTIME_VARS.BASE_FILES, "testfile"), "rb" - ) as fp_: - data = fp_.read() - - self.assertDictEqual(ret, {"data": data, "dest": "testfile"}) - - def test_envs(self): - opts = {"file_roots": copy.copy(self.opts["file_roots"])} - opts["file_roots"][UNICODE_ENVNAME] = opts["file_roots"]["base"] - with patch.dict(roots.__opts__, opts): - ret = roots.envs() - self.assertIn("base", ret) - self.assertIn(UNICODE_ENVNAME, ret) - - def test_file_hash(self): - load = { - "saltenv": "base", - "path": str(self.tmp_dir / "testfile"), - } - fnd = {"path": str(self.tmp_dir / "testfile"), "rel": "testfile"} - ret = roots.file_hash(load, fnd) - - # Hashes are different in Windows. May be how git translates line - # endings - with salt.utils.files.fopen( - os.path.join(RUNTIME_VARS.BASE_FILES, "testfile"), "rb" - ) as fp_: - hsum = salt.utils.hashutils.sha256_digest(fp_.read()) - - self.assertDictEqual(ret, {"hsum": hsum, "hash_type": "sha256"}) - - def test_file_list_emptydirs(self): - empty_dir = self.tmp_state_tree / "empty_dir" - if not empty_dir.is_dir(): - empty_dir.mkdir() - self.addCleanup(salt.utils.files.rm_rf, str(empty_dir)) - ret = roots.file_list_emptydirs({"saltenv": "base"}) - self.assertIn("empty_dir", ret) - - def test_file_list_with_slash(self): - opts = {"file_roots": copy.copy(self.opts["file_roots"])} - opts["file_roots"]["foo/bar"] = opts["file_roots"]["base"] - load = { - "saltenv": "foo/bar", - } - with patch.dict(roots.__opts__, opts): - ret = roots.file_list(load) - self.assertIn("testfile", ret) - self.assertIn(UNICODE_FILENAME, ret) - - def test_dir_list(self): - empty_dir = self.tmp_state_tree / "empty_dir" - if not empty_dir.is_dir(): - empty_dir.mkdir() - self.addCleanup(salt.utils.files.rm_rf, str(empty_dir)) - ret = roots.dir_list({"saltenv": "base"}) - self.assertIn("empty_dir", ret) - self.assertIn(UNICODE_DIRNAME, ret) - - def test_symlink_list(self): - source_sym = self.tmp_state_tree / "source_sym" - source_sym.write_text("") - dest_sym = self.tmp_state_tree / "dest_sym" - dest_sym.symlink_to(str(source_sym)) - self.addCleanup(dest_sym.unlink) - self.addCleanup(source_sym.unlink) - ret = roots.symlink_list({"saltenv": "base"}) - self.assertDictEqual(ret, {"dest_sym": str(source_sym)}) - - def test_dynamic_file_roots(self): - dyn_root_dir = tempfile.mkdtemp(dir=RUNTIME_VARS.TMP) - top_sls = os.path.join(dyn_root_dir, "top.sls") - with salt.utils.files.fopen(top_sls, "w") as fp_: - fp_.write("{{saltenv}}:\n '*':\n - dynamo\n") - dynamo_sls = os.path.join(dyn_root_dir, "dynamo.sls") - with salt.utils.files.fopen(dynamo_sls, "w") as fp_: - fp_.write("foo:\n test.nop\n") - opts = {"file_roots": copy.copy(self.opts["file_roots"])} - opts["file_roots"]["__env__"] = [dyn_root_dir] - with patch.dict(roots.__opts__, opts): - ret1 = roots.find_file("dynamo.sls", "dyn") - ret2 = roots.file_list({"saltenv": "dyn"}) - self.assertEqual("dynamo.sls", ret1["rel"]) - self.assertIn("top.sls", ret2) - self.assertIn("dynamo.sls", ret2) - - @skipIf( - salt.utils.platform.is_windows(), - "Windows does not support this master function", - ) - def test_update_no_change(self): - # process all changes that have happen - # changes will always take place the first time during testing - ret = roots.update() - self.assertTrue(ret["changed"]) - - # check if no changes took place - ret = roots.update() - self.assertFalse(ret["changed"]) - self.assertEqual(ret["files"]["changed"], []) - self.assertEqual(ret["files"]["removed"], []) - self.assertEqual(ret["files"]["added"], []) - - def test_update_mtime_map(self): - """ - Test that files with colons in the filename are properly handled in the - mtime_map, and that they are properly identified as having changed. - """ - mtime_map_path = os.path.join(self.opts["cachedir"], "roots", "mtime_map") - mtime_map_mock = mock_open( - read_data={ - mtime_map_path: textwrap.dedent( - """\ - /srv/salt/kleine_Datei.txt:1594263154.0469685 - /srv/salt/große:Datei.txt:1594263160.9336357 - """ - ), - } - ) - new_mtime_map = { - "/srv/salt/kleine_Datei.txt": 1594263154.0469685, - "/srv/salt/große:Datei.txt": 1594263261.0616212, - } - - with patch( - "salt.fileserver.reap_fileserver_cache_dir", MagicMock(return_value=True) - ), patch( - "salt.fileserver.generate_mtime_map", MagicMock(return_value=new_mtime_map) - ), patch.dict( - roots.__opts__, {"fileserver_events": False} - ), patch( - "salt.utils.files.fopen", mtime_map_mock - ): - ret = roots.update() - - # Confirm the expected return from the function - assert ret == { - "changed": True, - "files": { - "changed": ["/srv/salt/große:Datei.txt"], - "removed": [], - "added": [], - }, - "backend": "roots", - }, ret - - # Confirm that the new values were written to the mtime_map. Sort both - # lists of lines to account for variances in dictionary iteration order - # between Python releases. - lines_written = sorted(mtime_map_mock.write_calls()) - expected = sorted( - salt.utils.stringutils.to_bytes("{key}:{val}\n".format(key=key, val=val)) - for key, val in new_mtime_map.items() - ) - assert lines_written == expected, lines_written - - def test_update_mtime_map_unicode_error(self): - """ - Test that a malformed mtime_map (which causes an UnicodeDecodeError - exception) is handled properly. - """ - new_mtime_map = { - "/srv/salt/große:Datei.txt": 1594263261.0616212, - } - with tempfile.TemporaryDirectory() as tmpdirname: - mtime_map_path = os.path.join(tmpdirname, "roots", "mtime_map") - os.makedirs(os.path.dirname(mtime_map_path)) - with salt.utils.files.fopen(mtime_map_path, "wb") as fp: - fp.write(b"\x9c") - - with patch( - "salt.fileserver.reap_fileserver_cache_dir", - MagicMock(return_value=True), - ), patch( - "salt.fileserver.generate_mtime_map", - MagicMock(return_value=new_mtime_map), - ), patch.dict( - roots.__opts__, - {"fileserver_events": False, "cachedir": tmpdirname}, - ): - ret = roots.update() - - assert ret == { - "changed": True, - "files": { - "changed": [], - "removed": [], - "added": ["/srv/salt/große:Datei.txt"], - }, - "backend": "roots", - }, ret diff --git a/tests/unit/test_fileserver.py b/tests/unit/test_fileserver.py deleted file mode 100644 index c290b16b7e4..00000000000 --- a/tests/unit/test_fileserver.py +++ /dev/null @@ -1,79 +0,0 @@ -""" - :codeauthor: Joao Mesquita -""" - - -import datetime -import os -import time - -import salt.utils.files -from salt import fileserver -from tests.support.helpers import with_tempdir -from tests.support.mixins import LoaderModuleMockMixin -from tests.support.unit import TestCase - - -class MapDiffTestCase(TestCase): - def test_diff_with_diffent_keys(self): - """ - Test that different maps are indeed reported different - """ - map1 = {"file1": 1234} - map2 = {"file2": 1234} - assert fileserver.diff_mtime_map(map1, map2) is True - - def test_diff_with_diffent_values(self): - """ - Test that different maps are indeed reported different - """ - map1 = {"file1": 12345} - map2 = {"file1": 1234} - assert fileserver.diff_mtime_map(map1, map2) is True - - -class VCSBackendWhitelistCase(TestCase, LoaderModuleMockMixin): - def setup_loader_modules(self): - return {fileserver: {}} - - def test_whitelist(self): - opts = { - "fileserver_backend": ["roots", "git", "s3fs", "hgfs", "svn"], - "extension_modules": "", - } - fs = fileserver.Fileserver(opts) - assert sorted(fs.servers.whitelist) == sorted( - ["git", "gitfs", "hg", "hgfs", "svn", "svnfs", "roots", "s3fs"] - ), fs.servers.whitelist - - @with_tempdir() - def test_future_file_list_cache_file_ignored(self, cachedir): - opts = { - "fileserver_backend": ["roots"], - "cachedir": cachedir, - "extension_modules": "", - } - - back_cachedir = os.path.join(cachedir, "file_lists/roots") - os.makedirs(os.path.join(back_cachedir)) - - # Touch a couple files - for filename in ("base.p", "foo.txt"): - with salt.utils.files.fopen( - os.path.join(back_cachedir, filename), "wb" - ) as _f: - if filename == "base.p": - _f.write(b"\x80") - - # Set modification time to file list cache file to 1 year in the future - now = datetime.datetime.utcnow() - future = now + datetime.timedelta(days=365) - mod_time = time.mktime(future.timetuple()) - os.utime(os.path.join(back_cachedir, "base.p"), (mod_time, mod_time)) - - list_cache = os.path.join(back_cachedir, "base.p") - w_lock = os.path.join(back_cachedir, ".base.w") - ret = fileserver.check_file_list_cache(opts, "files", list_cache, w_lock) - assert ( - ret[1] is True - ), "Cache file list cache file is not refreshed when future modification time" From 3468033d42bbf55566b8fff33b80540a73bb9728 Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Mon, 8 Jan 2024 14:01:23 -0700 Subject: [PATCH 004/146] Fix linter issue --- tests/pytests/unit/test_fileserver.py | 4 ---- tests/pytests/unit/test_master.py | 1 + 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/tests/pytests/unit/test_fileserver.py b/tests/pytests/unit/test_fileserver.py index f2b2bb480f9..8dd3ea0a27d 100644 --- a/tests/pytests/unit/test_fileserver.py +++ b/tests/pytests/unit/test_fileserver.py @@ -1,7 +1,3 @@ -""" -""" - - import datetime import os import time diff --git a/tests/pytests/unit/test_master.py b/tests/pytests/unit/test_master.py index b4a0e0f44f5..992ac94728c 100644 --- a/tests/pytests/unit/test_master.py +++ b/tests/pytests/unit/test_master.py @@ -1,3 +1,4 @@ +import pathlib import time import salt.master From 4a5839e74d2cc50b3ceb206f8dcc5cf96d46cc38 Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Wed, 10 Jan 2024 15:37:07 -0700 Subject: [PATCH 005/146] Clean up test fixtures --- tests/pytests/unit/fileserver/test_roots.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/tests/pytests/unit/fileserver/test_roots.py b/tests/pytests/unit/fileserver/test_roots.py index 72e3d5ca39a..62b9b3ac01c 100644 --- a/tests/pytests/unit/fileserver/test_roots.py +++ b/tests/pytests/unit/fileserver/test_roots.py @@ -27,14 +27,14 @@ def unicode_dirname(): return "соль" -@pytest.fixture(autouse=True) +@pytest.fixture def testfile(tmp_path): fp = tmp_path / "testfile" fp.write_text("This is a testfile") return fp -@pytest.fixture(autouse=True) +@pytest.fixture def tmp_state_tree(tmp_path, testfile, unicode_filename, unicode_dirname): dirname = tmp_path / "roots_tmp_state_tree" dirname.mkdir(parents=True, exist_ok=True) @@ -52,17 +52,16 @@ def tmp_state_tree(tmp_path, testfile, unicode_filename, unicode_dirname): return dirname -@pytest.fixture(autouse=True) +@pytest.fixture def testfilepath(tmp_state_tree, testfile): return tmp_state_tree / testfile.name @pytest.fixture -def configure_loader_modules(tmp_state_tree, temp_salt_master): - opts = temp_salt_master.config.copy() +def configure_loader_modules(tmp_state_tree, master_config): overrides = {"file_roots": {"base": [str(tmp_state_tree)]}} - opts.update(overrides) - return {roots: {"__opts__": opts}} + master_config.update(overrides) + return {roots: {"__opts__": master_config}} def test_file_list(unicode_filename): From d9019bdd6476c9505af98c736c17bdb77cdadb86 Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Wed, 10 Jan 2024 15:42:53 -0700 Subject: [PATCH 006/146] Add changelogs for CVE-2024-22231 and CVE-2024-22232 --- changelog/565.security | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 changelog/565.security diff --git a/changelog/565.security b/changelog/565.security new file mode 100644 index 00000000000..7f1da931eb2 --- /dev/null +++ b/changelog/565.security @@ -0,0 +1,2 @@ +CVE-2024-22231 Prevent directory traversal when creating syndic cache directory on the master +CVE-2024-22232 Prevent directory traversal attacks in the master's serve_file method. From 2c8f1b702df34b45ba3d7412b88c8ec041c08f1e Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Wed, 17 Jan 2024 14:44:23 -0700 Subject: [PATCH 007/146] Add credit --- changelog/565.security | 2 ++ 1 file changed, 2 insertions(+) diff --git a/changelog/565.security b/changelog/565.security index 7f1da931eb2..5d7ec8202ba 100644 --- a/changelog/565.security +++ b/changelog/565.security @@ -1,2 +1,4 @@ CVE-2024-22231 Prevent directory traversal when creating syndic cache directory on the master CVE-2024-22232 Prevent directory traversal attacks in the master's serve_file method. +These vulerablities were discovered and reported by: +Yudi Zhao(Huawei Nebula Security Lab),Chenwei Jiang(Huawei Nebula Security Lab) From 8a9712c969a16dfdd9f9a84235fc6c8f4460705c Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Tue, 2 Jan 2024 12:14:08 +0000 Subject: [PATCH 008/146] Build documentation on GitHub Hosted Runners Signed-off-by: Pedro Algarvio --- .github/workflows/build-docs.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.github/workflows/build-docs.yml b/.github/workflows/build-docs.yml index 2afb5d8ce29..a2692d7ac1f 100644 --- a/.github/workflows/build-docs.yml +++ b/.github/workflows/build-docs.yml @@ -24,10 +24,7 @@ jobs: build: name: Build runs-on: - - self-hosted - - linux - - medium - - x86_64 + - ubuntu-latest strategy: fail-fast: false matrix: From a50f99a159bac9e57efb025c0d254a2df73d4c14 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Tue, 2 Jan 2024 12:21:03 +0000 Subject: [PATCH 009/146] Prefer GitHub hosted actions runners Signed-off-by: Pedro Algarvio --- .github/workflows/ci.yml | 11 +++++------ .github/workflows/lint-action.yml | 4 ++-- .github/workflows/nightly.yml | 15 +++++++-------- .github/workflows/pre-commit-action.yml | 2 +- .github/workflows/release-tag.yml | 2 +- .github/workflows/release-update-winrepo.yml | 2 +- .github/workflows/release.yml | 4 ++-- .github/workflows/scheduled.yml | 15 +++++++-------- .github/workflows/staging.yml | 8 ++++---- .github/workflows/templates/ci.yml.jinja | 7 +++---- .github/workflows/templates/layout.yml.jinja | 4 ++-- .github/workflows/templates/nightly.yml.jinja | 2 +- .github/workflows/templates/release.yml.jinja | 2 +- .github/workflows/templates/staging.yml.jinja | 2 +- .../templates/trigger-branch-workflows.yml.jinja | 2 +- .../workflow-requirements-check.yml.jinja | 2 +- .github/workflows/test-action-macos.yml | 4 ++-- .github/workflows/test-packages-action-macos.yml | 2 +- .github/workflows/triage.yml | 2 +- 19 files changed, 44 insertions(+), 48 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ffeb2dfef10..e95e362fbb8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -36,7 +36,7 @@ jobs: prepare-workflow: name: Prepare Workflow Run - runs-on: ${{ github.event.repository.private && fromJSON('["self-hosted", "linux", "x86_64"]') || 'ubuntu-latest' }} + runs-on: ubuntu-latest outputs: jobs: ${{ steps.define-jobs.outputs.jobs }} runners: ${{ steps.runner-types.outputs.runners }} @@ -266,7 +266,7 @@ jobs: prepare-release: name: "Prepare Release: ${{ needs.prepare-workflow.outputs.salt-version }}" if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['prepare-release'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} - runs-on: ${{ github.event.repository.private && fromJSON('["self-hosted", "linux", "medium", "x86_64"]') || 'ubuntu-latest' }} + runs-on: ubuntu-latest needs: - prepare-workflow steps: @@ -388,7 +388,7 @@ jobs: needs: - prepare-workflow - prepare-release - runs-on: ${{ github.event.repository.private && fromJSON('["self-hosted", "linux", "medium", "x86_64"]') || 'ubuntu-latest' }} + runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 @@ -2775,7 +2775,7 @@ jobs: combine-all-code-coverage: name: Combine Code Coverage if: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] == false }} - runs-on: ${{ github.event.repository.private && fromJSON('["self-hosted", "linux", "x86_64"]') || 'ubuntu-latest' }} + runs-on: ubuntu-latest needs: - prepare-workflow - windows-2016-ci-deps @@ -2857,7 +2857,6 @@ jobs: - uses: actions/checkout@v4 - name: Set up Python 3.10 - if: ${{ github.event.repository.private == false }} uses: actions/setup-python@v4 with: python-version: "3.10" @@ -2963,7 +2962,7 @@ jobs: # on a pull request instead of requiring all name: Set the ${{ github.workflow }} Pipeline Exit Status if: always() - runs-on: ${{ github.event.repository.private && fromJSON('["self-hosted", "linux", "x86_64"]') || 'ubuntu-latest' }} + runs-on: ubuntu-latest needs: - prepare-workflow - pre-commit diff --git a/.github/workflows/lint-action.yml b/.github/workflows/lint-action.yml index 347ddd29198..fb414dd9610 100644 --- a/.github/workflows/lint-action.yml +++ b/.github/workflows/lint-action.yml @@ -18,7 +18,7 @@ env: jobs: Salt: name: Lint Salt's Source Code - runs-on: ${{ github.event.repository.private && fromJSON('["self-hosted", "linux", "large", "x86_64"]') || 'ubuntu-latest' }} + runs-on: ubuntu-latest if: ${{ contains(fromJSON('["push", "schedule", "workflow_dispatch"]'), github.event_name) || fromJSON(inputs.changed-files)['salt'] || fromJSON(inputs.changed-files)['lint'] }} container: @@ -62,7 +62,7 @@ jobs: Tests: name: Lint Salt's Test Suite - runs-on: ${{ github.event.repository.private && fromJSON('["self-hosted", "linux", "large", "x86_64"]') || 'ubuntu-latest' }} + runs-on: ubuntu-latest if: ${{ contains(fromJSON('["push", "schedule", "workflow_dispatch"]'), github.event_name) || fromJSON(inputs.changed-files)['tests'] || fromJSON(inputs.changed-files)['lint'] }} container: diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 62c58619c70..746c6e3f881 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -38,7 +38,7 @@ jobs: workflow-requirements: name: Check Workflow Requirements - runs-on: ${{ github.event.repository.private && fromJSON('["self-hosted", "linux", "x86_64"]') || 'ubuntu-latest' }} + runs-on: ubuntu-latest outputs: requirements-met: ${{ steps.check-requirements.outputs.requirements-met }} steps: @@ -65,7 +65,7 @@ jobs: trigger-branch-nightly-builds: name: Trigger Branch Workflows if: ${{ github.event_name == 'schedule' && fromJSON(needs.workflow-requirements.outputs.requirements-met) }} - runs-on: ${{ github.event.repository.private && fromJSON('["self-hosted", "linux", "x86_64"]') || 'ubuntu-latest' }} + runs-on: ubuntu-latest needs: - workflow-requirements steps: @@ -77,7 +77,7 @@ jobs: prepare-workflow: name: Prepare Workflow Run - runs-on: ${{ github.event.repository.private && fromJSON('["self-hosted", "linux", "x86_64"]') || 'ubuntu-latest' }} + runs-on: ubuntu-latest if: ${{ fromJSON(needs.workflow-requirements.outputs.requirements-met) }} needs: - workflow-requirements @@ -310,7 +310,7 @@ jobs: prepare-release: name: "Prepare Release: ${{ needs.prepare-workflow.outputs.salt-version }}" if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['prepare-release'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} - runs-on: ${{ github.event.repository.private && fromJSON('["self-hosted", "linux", "medium", "x86_64"]') || 'ubuntu-latest' }} + runs-on: ubuntu-latest needs: - prepare-workflow steps: @@ -437,7 +437,7 @@ jobs: needs: - prepare-workflow - prepare-release - runs-on: ${{ github.event.repository.private && fromJSON('["self-hosted", "linux", "medium", "x86_64"]') || 'ubuntu-latest' }} + runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 @@ -2836,7 +2836,7 @@ jobs: combine-all-code-coverage: name: Combine Code Coverage if: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] == false }} - runs-on: ${{ github.event.repository.private && fromJSON('["self-hosted", "linux", "x86_64"]') || 'ubuntu-latest' }} + runs-on: ubuntu-latest needs: - prepare-workflow - windows-2016-ci-deps @@ -2918,7 +2918,6 @@ jobs: - uses: actions/checkout@v4 - name: Set up Python 3.10 - if: ${{ github.event.repository.private == false }} uses: actions/setup-python@v4 with: python-version: "3.10" @@ -3925,7 +3924,7 @@ jobs: # on a pull request instead of requiring all name: Set the ${{ github.workflow }} Pipeline Exit Status if: always() - runs-on: ${{ github.event.repository.private && fromJSON('["self-hosted", "linux", "x86_64"]') || 'ubuntu-latest' }} + runs-on: ubuntu-latest environment: nightly needs: - workflow-requirements diff --git a/.github/workflows/pre-commit-action.yml b/.github/workflows/pre-commit-action.yml index 4c1a34e2f4a..658dbf5cc4d 100644 --- a/.github/workflows/pre-commit-action.yml +++ b/.github/workflows/pre-commit-action.yml @@ -21,7 +21,7 @@ jobs: Pre-Commit: name: Run Pre-Commit Against Salt - runs-on: ${{ github.event.repository.private && fromJSON('["self-hosted", "linux", "x86_64"]') || 'ubuntu-latest' }} + runs-on: ubuntu-latest container: image: ghcr.io/saltstack/salt-ci-containers/python:3.10 diff --git a/.github/workflows/release-tag.yml b/.github/workflows/release-tag.yml index 2908fd96f43..85154bd59fa 100644 --- a/.github/workflows/release-tag.yml +++ b/.github/workflows/release-tag.yml @@ -31,7 +31,7 @@ jobs: permissions: contents: write # for dev-drprasad/delete-tag-and-release to delete tags or releases name: Generate Tag and Github Release - runs-on: ${{ github.event.repository.private && fromJSON('["self-hosted", "linux", "x86_64"]') || 'ubuntu-latest' }} + runs-on: ubuntu-latest steps: - uses: dev-drprasad/delete-tag-and-release@v0.2.0 if: github.event.inputs.reTag == 'true' diff --git a/.github/workflows/release-update-winrepo.yml b/.github/workflows/release-update-winrepo.yml index 4eac8c2c836..7774657351c 100644 --- a/.github/workflows/release-update-winrepo.yml +++ b/.github/workflows/release-update-winrepo.yml @@ -19,7 +19,7 @@ permissions: jobs: update-winrepo: name: Update Winrepo - runs-on: ${{ github.event.repository.private && fromJSON('["self-hosted", "linux", "x86_64"]') || 'ubuntu-latest' }} + runs-on: ubuntu-latest steps: - name: Checkout Salt diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 9b2ce992589..6cb6ab1d27e 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -35,7 +35,7 @@ jobs: check-requirements: name: Check Requirements - runs-on: ${{ github.event.repository.private && fromJSON('["self-hosted", "linux", "x86_64"]') || 'ubuntu-latest' }} + runs-on: ubuntu-latest environment: release-check steps: - name: Check For Admin Permission @@ -1114,7 +1114,7 @@ jobs: # on a pull request instead of requiring all name: Set the ${{ github.workflow }} Pipeline Exit Status if: always() - runs-on: ${{ github.event.repository.private && fromJSON('["self-hosted", "linux", "x86_64"]') || 'ubuntu-latest' }} + runs-on: ubuntu-latest needs: - check-requirements - prepare-workflow diff --git a/.github/workflows/scheduled.yml b/.github/workflows/scheduled.yml index c03929fc970..ccb79b95fc2 100644 --- a/.github/workflows/scheduled.yml +++ b/.github/workflows/scheduled.yml @@ -28,7 +28,7 @@ jobs: workflow-requirements: name: Check Workflow Requirements - runs-on: ${{ github.event.repository.private && fromJSON('["self-hosted", "linux", "x86_64"]') || 'ubuntu-latest' }} + runs-on: ubuntu-latest outputs: requirements-met: ${{ steps.check-requirements.outputs.requirements-met }} steps: @@ -55,7 +55,7 @@ jobs: trigger-branch-scheduled-builds: name: Trigger Branch Workflows if: ${{ github.event_name == 'schedule' && fromJSON(needs.workflow-requirements.outputs.requirements-met) }} - runs-on: ${{ github.event.repository.private && fromJSON('["self-hosted", "linux", "x86_64"]') || 'ubuntu-latest' }} + runs-on: ubuntu-latest needs: - workflow-requirements steps: @@ -67,7 +67,7 @@ jobs: prepare-workflow: name: Prepare Workflow Run - runs-on: ${{ github.event.repository.private && fromJSON('["self-hosted", "linux", "x86_64"]') || 'ubuntu-latest' }} + runs-on: ubuntu-latest if: ${{ fromJSON(needs.workflow-requirements.outputs.requirements-met) }} needs: - workflow-requirements @@ -300,7 +300,7 @@ jobs: prepare-release: name: "Prepare Release: ${{ needs.prepare-workflow.outputs.salt-version }}" if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['prepare-release'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} - runs-on: ${{ github.event.repository.private && fromJSON('["self-hosted", "linux", "medium", "x86_64"]') || 'ubuntu-latest' }} + runs-on: ubuntu-latest needs: - prepare-workflow steps: @@ -422,7 +422,7 @@ jobs: needs: - prepare-workflow - prepare-release - runs-on: ${{ github.event.repository.private && fromJSON('["self-hosted", "linux", "medium", "x86_64"]') || 'ubuntu-latest' }} + runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 @@ -2809,7 +2809,7 @@ jobs: combine-all-code-coverage: name: Combine Code Coverage if: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] == false }} - runs-on: ${{ github.event.repository.private && fromJSON('["self-hosted", "linux", "x86_64"]') || 'ubuntu-latest' }} + runs-on: ubuntu-latest needs: - prepare-workflow - windows-2016-ci-deps @@ -2891,7 +2891,6 @@ jobs: - uses: actions/checkout@v4 - name: Set up Python 3.10 - if: ${{ github.event.repository.private == false }} uses: actions/setup-python@v4 with: python-version: "3.10" @@ -2997,7 +2996,7 @@ jobs: # on a pull request instead of requiring all name: Set the ${{ github.workflow }} Pipeline Exit Status if: always() - runs-on: ${{ github.event.repository.private && fromJSON('["self-hosted", "linux", "x86_64"]') || 'ubuntu-latest' }} + runs-on: ubuntu-latest needs: - workflow-requirements - trigger-branch-scheduled-builds diff --git a/.github/workflows/staging.yml b/.github/workflows/staging.yml index 0940d371b7e..43147cae346 100644 --- a/.github/workflows/staging.yml +++ b/.github/workflows/staging.yml @@ -53,7 +53,7 @@ jobs: check-requirements: name: Check Requirements - runs-on: ${{ github.event.repository.private && fromJSON('["self-hosted", "linux", "x86_64"]') || 'ubuntu-latest' }} + runs-on: ubuntu-latest environment: staging-check steps: - name: Check For Admin Permission @@ -64,7 +64,7 @@ jobs: prepare-workflow: name: Prepare Workflow Run - runs-on: ${{ github.event.repository.private && fromJSON('["self-hosted", "linux", "x86_64"]') || 'ubuntu-latest' }} + runs-on: ubuntu-latest needs: - check-requirements outputs: @@ -427,7 +427,7 @@ jobs: needs: - prepare-workflow - prepare-release - runs-on: ${{ github.event.repository.private && fromJSON('["self-hosted", "linux", "medium", "x86_64"]') || 'ubuntu-latest' }} + runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 @@ -3944,7 +3944,7 @@ jobs: # on a pull request instead of requiring all name: Set the ${{ github.workflow }} Pipeline Exit Status if: always() - runs-on: ${{ github.event.repository.private && fromJSON('["self-hosted", "linux", "x86_64"]') || 'ubuntu-latest' }} + runs-on: ubuntu-latest needs: - check-requirements - prepare-workflow diff --git a/.github/workflows/templates/ci.yml.jinja b/.github/workflows/templates/ci.yml.jinja index b02604c40d8..9538746fd11 100644 --- a/.github/workflows/templates/ci.yml.jinja +++ b/.github/workflows/templates/ci.yml.jinja @@ -52,7 +52,7 @@ - x86_64 <%- else %> if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['<{ job_name }>'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} - runs-on: ${{ github.event.repository.private && fromJSON('["self-hosted", "linux", "medium", "x86_64"]') || 'ubuntu-latest' }} + runs-on: ubuntu-latest <%- endif %> needs: - prepare-workflow @@ -205,7 +205,7 @@ needs: - prepare-workflow - prepare-release - runs-on: ${{ github.event.repository.private && fromJSON('["self-hosted", "linux", "medium", "x86_64"]') || 'ubuntu-latest' }} + runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 @@ -309,7 +309,7 @@ <%- do conclusion_needs.append("combine-all-code-coverage") %> name: Combine Code Coverage if: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] == false }} - runs-on: ${{ github.event.repository.private && fromJSON('["self-hosted", "linux", "x86_64"]') || 'ubuntu-latest' }} + runs-on: ubuntu-latest needs: - prepare-workflow <%- for need in test_salt_needs.iter(consume=False) %> @@ -319,7 +319,6 @@ - uses: actions/checkout@v4 - name: Set up Python 3.10 - if: ${{ github.event.repository.private == false }} uses: actions/setup-python@v4 with: python-version: "3.10" diff --git a/.github/workflows/templates/layout.yml.jinja b/.github/workflows/templates/layout.yml.jinja index 5934eb8d579..1ed2616983c 100644 --- a/.github/workflows/templates/layout.yml.jinja +++ b/.github/workflows/templates/layout.yml.jinja @@ -75,7 +75,7 @@ jobs: prepare-workflow: name: Prepare Workflow Run - runs-on: ${{ github.event.repository.private && fromJSON('["self-hosted", "linux", "x86_64"]') || 'ubuntu-latest' }} + runs-on: ubuntu-latest <%- if prepare_workflow_if_check %> if: <{ prepare_workflow_if_check }> <%- endif %> @@ -337,7 +337,7 @@ jobs: # on a pull request instead of requiring all name: Set the ${{ github.workflow }} Pipeline Exit Status if: always() - runs-on: ${{ github.event.repository.private && fromJSON('["self-hosted", "linux", "x86_64"]') || 'ubuntu-latest' }} + runs-on: ubuntu-latest <%- if workflow_slug == "nightly" %> environment: <{ workflow_slug }> <%- endif %> diff --git a/.github/workflows/templates/nightly.yml.jinja b/.github/workflows/templates/nightly.yml.jinja index e4350f44a36..b058b727b4d 100644 --- a/.github/workflows/templates/nightly.yml.jinja +++ b/.github/workflows/templates/nightly.yml.jinja @@ -58,7 +58,7 @@ concurrency: <%- do conclusion_needs.append('notify-slack') %> notify-slack: name: Notify Slack - runs-on: ${{ github.event.repository.private && fromJSON('["self-hosted", "linux", "x86_64"]') || 'ubuntu-latest' }} + runs-on: ubuntu-latest environment: <{ gh_environment }> needs: <%- for need in prepare_workflow_needs.iter(consume=False) %> diff --git a/.github/workflows/templates/release.yml.jinja b/.github/workflows/templates/release.yml.jinja index b020138baff..cf05beefa80 100644 --- a/.github/workflows/templates/release.yml.jinja +++ b/.github/workflows/templates/release.yml.jinja @@ -52,7 +52,7 @@ permissions: <{ job_name }>: <%- do prepare_workflow_needs.append(job_name) %> name: Check Requirements - runs-on: ${{ github.event.repository.private && fromJSON('["self-hosted", "linux", "x86_64"]') || 'ubuntu-latest' }} + runs-on: ubuntu-latest environment: <{ gh_environment }>-check steps: - name: Check For Admin Permission diff --git a/.github/workflows/templates/staging.yml.jinja b/.github/workflows/templates/staging.yml.jinja index c84ade07636..45866284cfc 100644 --- a/.github/workflows/templates/staging.yml.jinja +++ b/.github/workflows/templates/staging.yml.jinja @@ -66,7 +66,7 @@ concurrency: <{ job_name }>: <%- do prepare_workflow_needs.append(job_name) %> name: Check Requirements - runs-on: ${{ github.event.repository.private && fromJSON('["self-hosted", "linux", "x86_64"]') || 'ubuntu-latest' }} + runs-on: ubuntu-latest environment: <{ gh_environment }>-check steps: - name: Check For Admin Permission diff --git a/.github/workflows/templates/trigger-branch-workflows.yml.jinja b/.github/workflows/templates/trigger-branch-workflows.yml.jinja index 24d0147b915..9d187cd6a2d 100644 --- a/.github/workflows/templates/trigger-branch-workflows.yml.jinja +++ b/.github/workflows/templates/trigger-branch-workflows.yml.jinja @@ -7,7 +7,7 @@ <%- do conclusion_needs.append(job_name) %> name: Trigger Branch Workflows if: ${{ github.event_name == 'schedule' && fromJSON(needs.workflow-requirements.outputs.requirements-met) }} - runs-on: ${{ github.event.repository.private && fromJSON('["self-hosted", "linux", "x86_64"]') || 'ubuntu-latest' }} + runs-on: ubuntu-latest needs: - workflow-requirements steps: diff --git a/.github/workflows/templates/workflow-requirements-check.yml.jinja b/.github/workflows/templates/workflow-requirements-check.yml.jinja index a18c13c69f5..419ee3f6f52 100644 --- a/.github/workflows/templates/workflow-requirements-check.yml.jinja +++ b/.github/workflows/templates/workflow-requirements-check.yml.jinja @@ -4,7 +4,7 @@ <{ job_name }>: <%- do prepare_workflow_needs.append(job_name) %> name: Check Workflow Requirements - runs-on: ${{ github.event.repository.private && fromJSON('["self-hosted", "linux", "x86_64"]') || 'ubuntu-latest' }} + runs-on: ubuntu-latest outputs: requirements-met: ${{ steps.check-requirements.outputs.requirements-met }} steps: diff --git a/.github/workflows/test-action-macos.yml b/.github/workflows/test-action-macos.yml index 085695122c9..5c113f26489 100644 --- a/.github/workflows/test-action-macos.yml +++ b/.github/workflows/test-action-macos.yml @@ -76,7 +76,7 @@ jobs: generate-matrix: name: Test Matrix - runs-on: ${{ github.event.repository.private && fromJSON('["self-hosted", "linux", "x86_64"]') || 'ubuntu-latest' }} + runs-on: ubuntu-latest outputs: matrix-include: ${{ steps.generate-matrix.outputs.matrix }} steps: @@ -383,7 +383,7 @@ jobs: report: name: Test Reports if: always() && inputs.skip-code-coverage == false && needs.test.result != 'cancelled' && needs.test.result != 'skipped' - runs-on: ${{ github.event.repository.private && fromJSON('["self-hosted", "linux", "x86_64"]') || 'ubuntu-latest' }} + runs-on: ubuntu-latest needs: - test diff --git a/.github/workflows/test-packages-action-macos.yml b/.github/workflows/test-packages-action-macos.yml index b027f62bca6..023e48ace5a 100644 --- a/.github/workflows/test-packages-action-macos.yml +++ b/.github/workflows/test-packages-action-macos.yml @@ -219,7 +219,7 @@ jobs: report: name: Report - runs-on: ${{ github.event.repository.private && fromJSON('["self-hosted", "linux", "x86_64"]') || 'ubuntu-latest' }} + runs-on: ubuntu-latest if: always() && (inputs.skip-code-coverage == false || inputs.skip-junit-reports == false) && needs.test.result != 'cancelled' && needs.test.result != 'skipped' needs: - test diff --git a/.github/workflows/triage.yml b/.github/workflows/triage.yml index 2971429a4dc..7d0ad560116 100644 --- a/.github/workflows/triage.yml +++ b/.github/workflows/triage.yml @@ -22,7 +22,7 @@ jobs: issues: write pull-requests: read # for dawidd6/action-download-artifact to query commit hash name: Triage New Issue - runs-on: ${{ github.event.repository.private && fromJSON('["self-hosted", "linux", "x86_64"]') || 'ubuntu-latest' }} + runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 From ab6a77fcbd6256888ff8a5a617f23c133b9496c5 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Tue, 2 Jan 2024 09:45:10 +0000 Subject: [PATCH 010/146] Reduce GitHub Actions cache usage Signed-off-by: Pedro Algarvio --- ...ion.yml => build-deps-ci-action-linux.yml} | 10 +- .../workflows/build-deps-ci-action-macos.yml | 12 +- .../build-deps-ci-action-windows.yml | 160 +++ .github/workflows/ci.yml | 1028 +++-------------- .github/workflows/nightly.yml | 1028 +++-------------- .github/workflows/release.yml | 694 +---------- .github/workflows/scheduled.yml | 1028 +++-------------- .github/workflows/staging.yml | 1024 +++------------- .../templates/build-ci-deps.yml.jinja | 36 +- .../test-package-downloads-action.yml.jinja | 20 +- .../templates/test-salt-pkg.yml.jinja | 10 +- .../workflows/templates/test-salt.yml.jinja | 10 +- ...{test-action.yml => test-action-linux.yml} | 6 +- .github/workflows/test-action-macos.yml | 8 +- .github/workflows/test-action-windows.yml | 399 +++++++ .../test-package-downloads-action.yml | 89 +- ...ion.yml => test-packages-action-linux.yml} | 6 +- .../workflows/test-packages-action-macos.yml | 8 +- .../test-packages-action-windows.yml | 275 +++++ noxfile.py | 59 +- tools/precommit/workflows.py | 114 +- tools/utils/__init__.py | 21 + tools/vm.py | 12 +- 23 files changed, 1731 insertions(+), 4326 deletions(-) rename .github/workflows/{build-deps-ci-action.yml => build-deps-ci-action-linux.yml} (93%) create mode 100644 .github/workflows/build-deps-ci-action-windows.yml rename .github/workflows/{test-action.yml => test-action-linux.yml} (98%) create mode 100644 .github/workflows/test-action-windows.yml rename .github/workflows/{test-packages-action.yml => test-packages-action-linux.yml} (97%) create mode 100644 .github/workflows/test-packages-action-windows.yml diff --git a/.github/workflows/build-deps-ci-action.yml b/.github/workflows/build-deps-ci-action-linux.yml similarity index 93% rename from .github/workflows/build-deps-ci-action.yml rename to .github/workflows/build-deps-ci-action-linux.yml index 0d596c0e1dc..a20c08a56ff 100644 --- a/.github/workflows/build-deps-ci-action.yml +++ b/.github/workflows/build-deps-ci-action-linux.yml @@ -70,12 +70,12 @@ jobs: - name: Checkout Source Code uses: actions/checkout@v4 - - name: Cache nox.${{ inputs.distro-slug }}.tar.* for session ${{ inputs.nox-session }} + - name: Cache nox.linux.${{ inputs.arch }}.tar.* for session ${{ inputs.nox-session }} id: nox-dependencies-cache uses: actions/cache@v3.3.1 with: - path: nox.${{ inputs.distro-slug }}.tar.* - key: ${{ inputs.cache-prefix }}|testrun-deps|${{ inputs.arch }}|${{ inputs.distro-slug }}|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ + path: nox.linux.${{ inputs.arch }}.tar.* + key: ${{ inputs.cache-prefix }}|testrun-deps|${{ inputs.arch }}|linux|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py') }} @@ -156,5 +156,5 @@ jobs: - name: Upload Nox Requirements Tarball uses: actions/upload-artifact@v3 with: - name: nox-${{ inputs.distro-slug }}-${{ inputs.nox-session }} - path: nox.${{ inputs.distro-slug }}.tar.* + name: nox-linux-${{ inputs.arch }}-${{ inputs.nox-session }} + path: nox.linux.${{ inputs.arch }}.tar.* diff --git a/.github/workflows/build-deps-ci-action-macos.yml b/.github/workflows/build-deps-ci-action-macos.yml index 125a6713a85..fec65ad6bcb 100644 --- a/.github/workflows/build-deps-ci-action-macos.yml +++ b/.github/workflows/build-deps-ci-action-macos.yml @@ -66,12 +66,12 @@ jobs: - name: Checkout Source Code uses: actions/checkout@v4 - - name: Cache nox.${{ inputs.distro-slug }}.tar.* for session ${{ inputs.nox-session }} + - name: Cache nox.macos.${{ inputs.arch }}.tar.* for session ${{ inputs.nox-session }} id: nox-dependencies-cache uses: actions/cache@v3.3.1 with: - path: nox.${{ inputs.distro-slug }}.tar.* - key: ${{ inputs.cache-prefix }}|testrun-deps|${{ inputs.arch }}|${{ inputs.distro-slug }}|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ + path: nox.macos.${{ inputs.arch }}.tar.* + key: ${{ inputs.cache-prefix }}|testrun-deps|${{ inputs.arch }}|macos|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py') }} @@ -126,10 +126,10 @@ jobs: - name: Compress .nox Directory if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' run: | - nox --force-color -e compress-dependencies -- ${{ inputs.distro-slug }} + nox --force-color -e compress-dependencies -- macos ${{ inputs.arch }} - name: Upload Nox Requirements Tarball uses: actions/upload-artifact@v3 with: - name: nox-${{ inputs.distro-slug }}-${{ inputs.nox-session }} - path: nox.${{ inputs.distro-slug }}.tar.* + name: nox-macos-${{ inputs.arch }}-${{ inputs.nox-session }} + path: nox.macos.${{ inputs.arch }}.tar.* diff --git a/.github/workflows/build-deps-ci-action-windows.yml b/.github/workflows/build-deps-ci-action-windows.yml new file mode 100644 index 00000000000..5bff2d825ce --- /dev/null +++ b/.github/workflows/build-deps-ci-action-windows.yml @@ -0,0 +1,160 @@ +--- +name: Install Test Dependencies + +on: + workflow_call: + inputs: + distro-slug: + required: true + type: string + description: The OS slug to run tests against + nox-session: + required: true + type: string + description: The nox session to run + salt-version: + type: string + required: true + description: The Salt version to set prior to running tests. + cache-prefix: + required: true + type: string + description: Seed used to invalidate caches + platform: + required: true + type: string + description: The platform being tested + arch: + required: true + type: string + description: The platform arch being tested + nox-version: + required: true + type: string + description: The nox version to install + python-version: + required: false + type: string + description: The python version to run tests with + default: "3.10" + package-name: + required: false + type: string + description: The onedir package name to use + default: salt + + +env: + COLUMNS: 190 + AWS_MAX_ATTEMPTS: "10" + AWS_RETRY_MODE: "adaptive" + PIP_INDEX_URL: https://pypi-proxy.saltstack.net/root/local/+simple/ + PIP_EXTRA_INDEX_URL: https://pypi.org/simple + +jobs: + + dependencies: + name: Install + runs-on: + - self-hosted + - linux + - bastion + timeout-minutes: 90 + steps: + + - name: "Throttle Builds" + shell: bash + run: | + t=$(shuf -i 1-30 -n 1); echo "Sleeping $t seconds"; sleep "$t" + + - name: Checkout Source Code + uses: actions/checkout@v4 + + - name: Cache nox.windows.${{ inputs.arch }}.tar.* for session ${{ inputs.nox-session }} + id: nox-dependencies-cache + uses: actions/cache@v3.3.1 + with: + path: nox.windows.${{ inputs.arch }}.tar.* + key: ${{ inputs.cache-prefix }}|testrun-deps|${{ inputs.arch }}|windows|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ + hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py') + }} + + - name: Download Onedir Tarball as an Artifact + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + uses: actions/download-artifact@v3 + with: + name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-${{ inputs.platform }}-${{ inputs.arch }}.tar.xz + path: artifacts/ + + - name: Decompress Onedir Tarball + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + shell: bash + run: | + python3 -c "import os; os.makedirs('artifacts', exist_ok=True)" + cd artifacts + tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-${{ inputs.platform }}-${{ inputs.arch }}.tar.xz + + - name: PyPi Proxy + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + sed -i '7s;^;--index-url=https://pypi-proxy.saltstack.net/root/local/+simple/ --extra-index-url=https://pypi.org/simple\n;' requirements/static/ci/*/*.txt + + - name: Setup Python Tools Scripts + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + uses: ./.github/actions/setup-python-tools-scripts + with: + cache-prefix: ${{ inputs.cache-prefix }}-build-deps-ci + + - name: Get Salt Project GitHub Actions Bot Environment + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + TOKEN=$(curl -sS -f -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 30") + SPB_ENVIRONMENT=$(curl -sS -f -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/tags/instance/spb:environment) + echo "SPB_ENVIRONMENT=$SPB_ENVIRONMENT" >> "$GITHUB_ENV" + + - name: Start VM + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + id: spin-up-vm + run: | + tools --timestamps vm create --environment "${SPB_ENVIRONMENT}" --retries=2 ${{ inputs.distro-slug }} + + - name: List Free Space + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + tools --timestamps vm ssh ${{ inputs.distro-slug }} -- df -h || true + + - name: Upload Checkout To VM + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + tools --timestamps vm rsync ${{ inputs.distro-slug }} + + - name: Install Dependencies + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + tools --timestamps vm install-dependencies --nox-session=${{ inputs.nox-session }} ${{ inputs.distro-slug }} + + - name: Cleanup .nox Directory + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + tools --timestamps vm pre-archive-cleanup ${{ inputs.distro-slug }} + + - name: Compress .nox Directory + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + tools --timestamps vm compress-dependencies ${{ inputs.distro-slug }} + + - name: Download Compressed .nox Directory + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + tools --timestamps vm download-dependencies ${{ inputs.distro-slug }} + + - name: Destroy VM + if: always() && steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + tools --timestamps vm destroy --no-wait ${{ inputs.distro-slug }} + + - name: Upload Nox Requirements Tarball + uses: actions/upload-artifact@v3 + with: + name: nox-windows-${{ inputs.arch }}-${{ inputs.nox-session }} + path: nox.windows.${{ inputs.arch }}.tar.* diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e95e362fbb8..cf6a7ad5117 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -615,47 +615,13 @@ jobs: python-version: "3.10.13" source: "src" - windows-2016-ci-deps: - name: Windows 2016 Deps + windows-amd64-ci-deps: + name: Windows amd64 CI Deps if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - build-salt-onedir-windows - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: windows-2016 - nox-session: ci-test-onedir - platform: windows - arch: amd64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - windows-2019-ci-deps: - name: Windows 2019 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-windows - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: windows-2019 - nox-session: ci-test-onedir - platform: windows - arch: amd64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - windows-2022-ci-deps: - name: Windows 2022 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-windows - uses: ./.github/workflows/build-deps-ci-action.yml + uses: ./.github/workflows/build-deps-ci-action-windows.yml with: distro-slug: windows-2022 nox-session: ci-test-onedir @@ -666,8 +632,8 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - macos-12-ci-deps: - name: macOS 12 Deps + macos-x86_64-ci-deps: + name: MacOS x86_64 CI Deps if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} needs: - prepare-workflow @@ -683,25 +649,8 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - macos-13-ci-deps: - name: macOS 13 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-macos - uses: ./.github/workflows/build-deps-ci-action-macos.yml - with: - distro-slug: macos-13 - nox-session: ci-test-onedir - platform: darwin - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - macos-13-xlarge-ci-deps: - name: macOS 13 Arm64 Deps + macos-arm64-ci-deps: + name: MacOS arm64 CI Deps if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} needs: - prepare-workflow @@ -711,172 +660,19 @@ jobs: distro-slug: macos-13-xlarge nox-session: ci-test-onedir platform: darwin - arch: aarch64 + arch: arm64 nox-version: 2022.8.7 python-version: "3.10" salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - almalinux-8-ci-deps: - name: Alma Linux 8 Deps + linux-x86_64-ci-deps: + name: Linux x86_64 CI Deps if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: almalinux-8 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - almalinux-8-arm64-ci-deps: - name: Alma Linux 8 Arm64 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: almalinux-8-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - almalinux-9-ci-deps: - name: Alma Linux 9 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: almalinux-9 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - almalinux-9-arm64-ci-deps: - name: Alma Linux 9 Arm64 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: almalinux-9-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - amazonlinux-2-ci-deps: - name: Amazon Linux 2 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: amazonlinux-2 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - amazonlinux-2-arm64-ci-deps: - name: Amazon Linux 2 Arm64 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: amazonlinux-2-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - amazonlinux-2023-ci-deps: - name: Amazon Linux 2023 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: amazonlinux-2023 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - amazonlinux-2023-arm64-ci-deps: - name: Amazon Linux 2023 Arm64 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: amazonlinux-2023-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - archlinux-lts-ci-deps: - name: Arch Linux LTS Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: archlinux-lts - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - centos-7-ci-deps: - name: CentOS 7 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml + uses: ./.github/workflows/build-deps-ci-action-linux.yml with: distro-slug: centos-7 nox-session: ci-test-onedir @@ -887,426 +683,18 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - centos-7-arm64-ci-deps: - name: CentOS 7 Arm64 Deps + linux-arm64-ci-deps: + name: Linux arm64 CI Deps if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml + uses: ./.github/workflows/build-deps-ci-action-linux.yml with: distro-slug: centos-7-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - centosstream-8-ci-deps: - name: CentOS Stream 8 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: centosstream-8 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - centosstream-8-arm64-ci-deps: - name: CentOS Stream 8 Arm64 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: centosstream-8-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - centosstream-9-ci-deps: - name: CentOS Stream 9 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: centosstream-9 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - centosstream-9-arm64-ci-deps: - name: CentOS Stream 9 Arm64 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: centosstream-9-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - debian-10-ci-deps: - name: Debian 10 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: debian-10 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - debian-11-ci-deps: - name: Debian 11 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: debian-11 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - debian-11-arm64-ci-deps: - name: Debian 11 Arm64 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: debian-11-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - debian-12-ci-deps: - name: Debian 12 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: debian-12 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - debian-12-arm64-ci-deps: - name: Debian 12 Arm64 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: debian-12-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - fedora-37-ci-deps: - name: Fedora 37 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: fedora-37 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - fedora-37-arm64-ci-deps: - name: Fedora 37 Arm64 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: fedora-37-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - fedora-38-ci-deps: - name: Fedora 38 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: fedora-38 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - fedora-38-arm64-ci-deps: - name: Fedora 38 Arm64 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: fedora-38-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - opensuse-15-ci-deps: - name: Opensuse 15 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: opensuse-15 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - photonos-3-ci-deps: - name: Photon OS 3 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: photonos-3 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - photonos-3-arm64-ci-deps: - name: Photon OS 3 Arm64 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: photonos-3-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - photonos-4-ci-deps: - name: Photon OS 4 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: photonos-4 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - photonos-4-arm64-ci-deps: - name: Photon OS 4 Arm64 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: photonos-4-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - photonos-5-ci-deps: - name: Photon OS 5 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: photonos-5 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - photonos-5-arm64-ci-deps: - name: Photon OS 5 Arm64 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: photonos-5-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - ubuntu-2004-ci-deps: - name: Ubuntu 20.04 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: ubuntu-20.04 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - ubuntu-2004-arm64-ci-deps: - name: Ubuntu 20.04 Arm64 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: ubuntu-20.04-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - ubuntu-2204-ci-deps: - name: Ubuntu 22.04 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: ubuntu-22.04 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - ubuntu-2204-arm64-ci-deps: - name: Ubuntu 22.04 Arm64 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: ubuntu-22.04-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 + arch: arm64 nox-version: 2022.8.7 python-version: "3.10" salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" @@ -1318,8 +706,8 @@ jobs: needs: - prepare-workflow - build-rpm-pkgs-onedir - - amazonlinux-2-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: amazonlinux-2 nox-session: ci-test-onedir @@ -1340,13 +728,13 @@ jobs: needs: - prepare-workflow - build-rpm-pkgs-onedir - - amazonlinux-2-arm64-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: amazonlinux-2-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" pkg-type: rpm nox-version: 2022.8.7 @@ -1362,8 +750,8 @@ jobs: needs: - prepare-workflow - build-rpm-pkgs-onedir - - amazonlinux-2023-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: amazonlinux-2023 nox-session: ci-test-onedir @@ -1384,13 +772,13 @@ jobs: needs: - prepare-workflow - build-rpm-pkgs-onedir - - amazonlinux-2023-arm64-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: amazonlinux-2023-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" pkg-type: rpm nox-version: 2022.8.7 @@ -1406,8 +794,8 @@ jobs: needs: - prepare-workflow - build-rpm-pkgs-onedir - - centos-7-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: centos-7 nox-session: ci-test-onedir @@ -1428,8 +816,8 @@ jobs: needs: - prepare-workflow - build-rpm-pkgs-onedir - - centosstream-8-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: centosstream-8 nox-session: ci-test-onedir @@ -1450,8 +838,8 @@ jobs: needs: - prepare-workflow - build-rpm-pkgs-onedir - - centosstream-9-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: centosstream-9 nox-session: ci-test-onedir @@ -1472,13 +860,13 @@ jobs: needs: - prepare-workflow - build-rpm-pkgs-onedir - - centosstream-9-arm64-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: centosstream-9-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" pkg-type: rpm nox-version: 2022.8.7 @@ -1494,8 +882,8 @@ jobs: needs: - prepare-workflow - build-deb-pkgs-onedir - - debian-10-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: debian-10 nox-session: ci-test-onedir @@ -1516,8 +904,8 @@ jobs: needs: - prepare-workflow - build-deb-pkgs-onedir - - debian-11-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: debian-11 nox-session: ci-test-onedir @@ -1538,13 +926,13 @@ jobs: needs: - prepare-workflow - build-deb-pkgs-onedir - - debian-11-arm64-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: debian-11-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" pkg-type: deb nox-version: 2022.8.7 @@ -1560,8 +948,8 @@ jobs: needs: - prepare-workflow - build-deb-pkgs-onedir - - debian-12-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: debian-12 nox-session: ci-test-onedir @@ -1582,13 +970,13 @@ jobs: needs: - prepare-workflow - build-deb-pkgs-onedir - - debian-12-arm64-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: debian-12-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" pkg-type: deb nox-version: 2022.8.7 @@ -1604,8 +992,8 @@ jobs: needs: - prepare-workflow - build-rpm-pkgs-onedir - - photonos-3-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: photonos-3 nox-session: ci-test-onedir @@ -1626,13 +1014,13 @@ jobs: needs: - prepare-workflow - build-rpm-pkgs-onedir - - photonos-3-arm64-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: photonos-3-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" pkg-type: rpm nox-version: 2022.8.7 @@ -1648,8 +1036,8 @@ jobs: needs: - prepare-workflow - build-rpm-pkgs-onedir - - photonos-4-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: photonos-4 nox-session: ci-test-onedir @@ -1671,13 +1059,13 @@ jobs: needs: - prepare-workflow - build-rpm-pkgs-onedir - - photonos-4-arm64-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: photonos-4-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" pkg-type: rpm nox-version: 2022.8.7 @@ -1694,8 +1082,8 @@ jobs: needs: - prepare-workflow - build-rpm-pkgs-onedir - - photonos-5-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: photonos-5 nox-session: ci-test-onedir @@ -1717,13 +1105,13 @@ jobs: needs: - prepare-workflow - build-rpm-pkgs-onedir - - photonos-5-arm64-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: photonos-5-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" pkg-type: rpm nox-version: 2022.8.7 @@ -1740,8 +1128,8 @@ jobs: needs: - prepare-workflow - build-deb-pkgs-onedir - - ubuntu-2004-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: ubuntu-20.04 nox-session: ci-test-onedir @@ -1762,13 +1150,13 @@ jobs: needs: - prepare-workflow - build-deb-pkgs-onedir - - ubuntu-2004-arm64-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: ubuntu-20.04-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" pkg-type: deb nox-version: 2022.8.7 @@ -1784,8 +1172,8 @@ jobs: needs: - prepare-workflow - build-deb-pkgs-onedir - - ubuntu-2204-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: ubuntu-22.04 nox-session: ci-test-onedir @@ -1806,13 +1194,13 @@ jobs: needs: - prepare-workflow - build-deb-pkgs-onedir - - ubuntu-2204-arm64-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: ubuntu-22.04-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" pkg-type: deb nox-version: 2022.8.7 @@ -1828,7 +1216,7 @@ jobs: needs: - prepare-workflow - build-macos-pkgs-onedir - - macos-12-ci-deps + - macos-x86_64-ci-deps uses: ./.github/workflows/test-packages-action-macos.yml with: distro-slug: macos-12 @@ -1850,7 +1238,7 @@ jobs: needs: - prepare-workflow - build-macos-pkgs-onedir - - macos-13-ci-deps + - macos-x86_64-ci-deps uses: ./.github/workflows/test-packages-action-macos.yml with: distro-slug: macos-13 @@ -1872,13 +1260,13 @@ jobs: needs: - prepare-workflow - build-macos-pkgs-onedir - - macos-13-xlarge-ci-deps + - macos-arm64-ci-deps uses: ./.github/workflows/test-packages-action-macos.yml with: distro-slug: macos-13-xlarge nox-session: ci-test-onedir platform: darwin - arch: aarch64 + arch: arm64 salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" pkg-type: macos nox-version: 2022.8.7 @@ -1894,8 +1282,8 @@ jobs: needs: - prepare-workflow - build-windows-pkgs-onedir - - windows-2016-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - windows-amd64-ci-deps + uses: ./.github/workflows/test-packages-action-windows.yml with: distro-slug: windows-2016 nox-session: ci-test-onedir @@ -1916,8 +1304,8 @@ jobs: needs: - prepare-workflow - build-windows-pkgs-onedir - - windows-2016-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - windows-amd64-ci-deps + uses: ./.github/workflows/test-packages-action-windows.yml with: distro-slug: windows-2016 nox-session: ci-test-onedir @@ -1938,8 +1326,8 @@ jobs: needs: - prepare-workflow - build-windows-pkgs-onedir - - windows-2019-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - windows-amd64-ci-deps + uses: ./.github/workflows/test-packages-action-windows.yml with: distro-slug: windows-2019 nox-session: ci-test-onedir @@ -1960,8 +1348,8 @@ jobs: needs: - prepare-workflow - build-windows-pkgs-onedir - - windows-2019-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - windows-amd64-ci-deps + uses: ./.github/workflows/test-packages-action-windows.yml with: distro-slug: windows-2019 nox-session: ci-test-onedir @@ -1982,8 +1370,8 @@ jobs: needs: - prepare-workflow - build-windows-pkgs-onedir - - windows-2022-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - windows-amd64-ci-deps + uses: ./.github/workflows/test-packages-action-windows.yml with: distro-slug: windows-2022 nox-session: ci-test-onedir @@ -2004,8 +1392,8 @@ jobs: needs: - prepare-workflow - build-windows-pkgs-onedir - - windows-2022-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - windows-amd64-ci-deps + uses: ./.github/workflows/test-packages-action-windows.yml with: distro-slug: windows-2022 nox-session: ci-test-onedir @@ -2025,8 +1413,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - windows-2016-ci-deps - uses: ./.github/workflows/test-action.yml + - windows-amd64-ci-deps + uses: ./.github/workflows/test-action-windows.yml with: distro-slug: windows-2016 nox-session: ci-test-onedir @@ -2047,8 +1435,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - windows-2019-ci-deps - uses: ./.github/workflows/test-action.yml + - windows-amd64-ci-deps + uses: ./.github/workflows/test-action-windows.yml with: distro-slug: windows-2019 nox-session: ci-test-onedir @@ -2069,8 +1457,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - windows-2022-ci-deps - uses: ./.github/workflows/test-action.yml + - windows-amd64-ci-deps + uses: ./.github/workflows/test-action-windows.yml with: distro-slug: windows-2022 nox-session: ci-test-onedir @@ -2091,7 +1479,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} needs: - prepare-workflow - - macos-12-ci-deps + - macos-x86_64-ci-deps uses: ./.github/workflows/test-action-macos.yml with: distro-slug: macos-12 @@ -2113,7 +1501,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} needs: - prepare-workflow - - macos-13-ci-deps + - macos-x86_64-ci-deps uses: ./.github/workflows/test-action-macos.yml with: distro-slug: macos-13 @@ -2135,13 +1523,13 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} needs: - prepare-workflow - - macos-13-xlarge-ci-deps + - macos-arm64-ci-deps uses: ./.github/workflows/test-action-macos.yml with: distro-slug: macos-13-xlarge nox-session: ci-test-onedir platform: darwin - arch: aarch64 + arch: arm64 nox-version: 2022.8.7 gh-actions-python-version: "3.10" testrun: ${{ needs.prepare-workflow.outputs.testrun }} @@ -2157,8 +1545,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - almalinux-8-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: almalinux-8 nox-session: ci-test-onedir @@ -2179,8 +1567,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - almalinux-9-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: almalinux-9 nox-session: ci-test-onedir @@ -2201,8 +1589,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - amazonlinux-2-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: amazonlinux-2 nox-session: ci-test-onedir @@ -2223,13 +1611,13 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - amazonlinux-2-arm64-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: amazonlinux-2-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 nox-version: 2022.8.7 gh-actions-python-version: "3.10" testrun: ${{ needs.prepare-workflow.outputs.testrun }} @@ -2245,8 +1633,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - amazonlinux-2023-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: amazonlinux-2023 nox-session: ci-test-onedir @@ -2267,13 +1655,13 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - amazonlinux-2023-arm64-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: amazonlinux-2023-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 nox-version: 2022.8.7 gh-actions-python-version: "3.10" testrun: ${{ needs.prepare-workflow.outputs.testrun }} @@ -2289,8 +1677,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - archlinux-lts-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: archlinux-lts nox-session: ci-test-onedir @@ -2311,8 +1699,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - centos-7-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: centos-7 nox-session: ci-test-onedir @@ -2333,8 +1721,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - centosstream-8-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: centosstream-8 nox-session: ci-test-onedir @@ -2355,8 +1743,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - centosstream-9-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: centosstream-9 nox-session: ci-test-onedir @@ -2377,8 +1765,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - debian-10-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: debian-10 nox-session: ci-test-onedir @@ -2399,8 +1787,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - debian-11-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: debian-11 nox-session: ci-test-onedir @@ -2421,13 +1809,13 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - debian-11-arm64-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: debian-11-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 nox-version: 2022.8.7 gh-actions-python-version: "3.10" testrun: ${{ needs.prepare-workflow.outputs.testrun }} @@ -2443,8 +1831,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - debian-12-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: debian-12 nox-session: ci-test-onedir @@ -2465,13 +1853,13 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - debian-12-arm64-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: debian-12-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 nox-version: 2022.8.7 gh-actions-python-version: "3.10" testrun: ${{ needs.prepare-workflow.outputs.testrun }} @@ -2487,8 +1875,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - fedora-37-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: fedora-37 nox-session: ci-test-onedir @@ -2509,8 +1897,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - fedora-38-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: fedora-38 nox-session: ci-test-onedir @@ -2531,8 +1919,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - opensuse-15-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: opensuse-15 nox-session: ci-test-onedir @@ -2553,8 +1941,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - photonos-3-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: photonos-3 nox-session: ci-test-onedir @@ -2575,13 +1963,13 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - photonos-3-arm64-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: photonos-3-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 nox-version: 2022.8.7 gh-actions-python-version: "3.10" testrun: ${{ needs.prepare-workflow.outputs.testrun }} @@ -2597,8 +1985,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - photonos-4-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: photonos-4 nox-session: ci-test-onedir @@ -2620,13 +2008,13 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - photonos-4-arm64-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: photonos-4-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 nox-version: 2022.8.7 gh-actions-python-version: "3.10" testrun: ${{ needs.prepare-workflow.outputs.testrun }} @@ -2643,8 +2031,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - photonos-5-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: photonos-5 nox-session: ci-test-onedir @@ -2666,13 +2054,13 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - photonos-5-arm64-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: photonos-5-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 nox-version: 2022.8.7 gh-actions-python-version: "3.10" testrun: ${{ needs.prepare-workflow.outputs.testrun }} @@ -2689,8 +2077,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - ubuntu-2004-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: ubuntu-20.04 nox-session: ci-test-onedir @@ -2711,13 +2099,13 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - ubuntu-2004-arm64-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: ubuntu-20.04-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 nox-version: 2022.8.7 gh-actions-python-version: "3.10" testrun: ${{ needs.prepare-workflow.outputs.testrun }} @@ -2733,8 +2121,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - ubuntu-2204-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: ubuntu-22.04 nox-session: ci-test-onedir @@ -2755,13 +2143,13 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - ubuntu-2204-arm64-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: ubuntu-22.04-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 nox-version: 2022.8.7 gh-actions-python-version: "3.10" testrun: ${{ needs.prepare-workflow.outputs.testrun }} @@ -2778,47 +2166,11 @@ jobs: runs-on: ubuntu-latest needs: - prepare-workflow - - windows-2016-ci-deps - - windows-2019-ci-deps - - windows-2022-ci-deps - - macos-12-ci-deps - - macos-13-ci-deps - - macos-13-xlarge-ci-deps - - almalinux-8-ci-deps - - almalinux-8-arm64-ci-deps - - almalinux-9-ci-deps - - almalinux-9-arm64-ci-deps - - amazonlinux-2-ci-deps - - amazonlinux-2-arm64-ci-deps - - amazonlinux-2023-ci-deps - - amazonlinux-2023-arm64-ci-deps - - archlinux-lts-ci-deps - - centos-7-ci-deps - - centos-7-arm64-ci-deps - - centosstream-8-ci-deps - - centosstream-8-arm64-ci-deps - - centosstream-9-ci-deps - - centosstream-9-arm64-ci-deps - - debian-10-ci-deps - - debian-11-ci-deps - - debian-11-arm64-ci-deps - - debian-12-ci-deps - - debian-12-arm64-ci-deps - - fedora-37-ci-deps - - fedora-37-arm64-ci-deps - - fedora-38-ci-deps - - fedora-38-arm64-ci-deps - - opensuse-15-ci-deps - - photonos-3-ci-deps - - photonos-3-arm64-ci-deps - - photonos-4-ci-deps - - photonos-4-arm64-ci-deps - - photonos-5-ci-deps - - photonos-5-arm64-ci-deps - - ubuntu-2004-ci-deps - - ubuntu-2004-arm64-ci-deps - - ubuntu-2204-ci-deps - - ubuntu-2204-arm64-ci-deps + - windows-amd64-ci-deps + - macos-x86_64-ci-deps + - macos-arm64-ci-deps + - linux-x86_64-ci-deps + - linux-arm64-ci-deps - windows-2016 - windows-2019 - windows-2022 @@ -2979,47 +2331,11 @@ jobs: - build-windows-pkgs-src - build-macos-pkgs-src - combine-all-code-coverage - - windows-2016-ci-deps - - windows-2019-ci-deps - - windows-2022-ci-deps - - macos-12-ci-deps - - macos-13-ci-deps - - macos-13-xlarge-ci-deps - - almalinux-8-ci-deps - - almalinux-8-arm64-ci-deps - - almalinux-9-ci-deps - - almalinux-9-arm64-ci-deps - - amazonlinux-2-ci-deps - - amazonlinux-2-arm64-ci-deps - - amazonlinux-2023-ci-deps - - amazonlinux-2023-arm64-ci-deps - - archlinux-lts-ci-deps - - centos-7-ci-deps - - centos-7-arm64-ci-deps - - centosstream-8-ci-deps - - centosstream-8-arm64-ci-deps - - centosstream-9-ci-deps - - centosstream-9-arm64-ci-deps - - debian-10-ci-deps - - debian-11-ci-deps - - debian-11-arm64-ci-deps - - debian-12-ci-deps - - debian-12-arm64-ci-deps - - fedora-37-ci-deps - - fedora-37-arm64-ci-deps - - fedora-38-ci-deps - - fedora-38-arm64-ci-deps - - opensuse-15-ci-deps - - photonos-3-ci-deps - - photonos-3-arm64-ci-deps - - photonos-4-ci-deps - - photonos-4-arm64-ci-deps - - photonos-5-ci-deps - - photonos-5-arm64-ci-deps - - ubuntu-2004-ci-deps - - ubuntu-2004-arm64-ci-deps - - ubuntu-2204-ci-deps - - ubuntu-2204-arm64-ci-deps + - windows-amd64-ci-deps + - macos-x86_64-ci-deps + - macos-arm64-ci-deps + - linux-x86_64-ci-deps + - linux-arm64-ci-deps - windows-2016 - windows-2019 - windows-2022 diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 746c6e3f881..77de8acad97 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -676,47 +676,13 @@ jobs: sign-packages: true secrets: inherit - windows-2016-ci-deps: - name: Windows 2016 Deps + windows-amd64-ci-deps: + name: Windows amd64 CI Deps if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - build-salt-onedir-windows - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: windows-2016 - nox-session: ci-test-onedir - platform: windows - arch: amd64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - windows-2019-ci-deps: - name: Windows 2019 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-windows - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: windows-2019 - nox-session: ci-test-onedir - platform: windows - arch: amd64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - windows-2022-ci-deps: - name: Windows 2022 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-windows - uses: ./.github/workflows/build-deps-ci-action.yml + uses: ./.github/workflows/build-deps-ci-action-windows.yml with: distro-slug: windows-2022 nox-session: ci-test-onedir @@ -727,8 +693,8 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - macos-12-ci-deps: - name: macOS 12 Deps + macos-x86_64-ci-deps: + name: MacOS x86_64 CI Deps if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} needs: - prepare-workflow @@ -744,25 +710,8 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - macos-13-ci-deps: - name: macOS 13 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-macos - uses: ./.github/workflows/build-deps-ci-action-macos.yml - with: - distro-slug: macos-13 - nox-session: ci-test-onedir - platform: darwin - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - macos-13-xlarge-ci-deps: - name: macOS 13 Arm64 Deps + macos-arm64-ci-deps: + name: MacOS arm64 CI Deps if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} needs: - prepare-workflow @@ -772,172 +721,19 @@ jobs: distro-slug: macos-13-xlarge nox-session: ci-test-onedir platform: darwin - arch: aarch64 + arch: arm64 nox-version: 2022.8.7 python-version: "3.10" salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - almalinux-8-ci-deps: - name: Alma Linux 8 Deps + linux-x86_64-ci-deps: + name: Linux x86_64 CI Deps if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: almalinux-8 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - almalinux-8-arm64-ci-deps: - name: Alma Linux 8 Arm64 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: almalinux-8-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - almalinux-9-ci-deps: - name: Alma Linux 9 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: almalinux-9 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - almalinux-9-arm64-ci-deps: - name: Alma Linux 9 Arm64 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: almalinux-9-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - amazonlinux-2-ci-deps: - name: Amazon Linux 2 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: amazonlinux-2 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - amazonlinux-2-arm64-ci-deps: - name: Amazon Linux 2 Arm64 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: amazonlinux-2-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - amazonlinux-2023-ci-deps: - name: Amazon Linux 2023 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: amazonlinux-2023 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - amazonlinux-2023-arm64-ci-deps: - name: Amazon Linux 2023 Arm64 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: amazonlinux-2023-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - archlinux-lts-ci-deps: - name: Arch Linux LTS Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: archlinux-lts - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - centos-7-ci-deps: - name: CentOS 7 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml + uses: ./.github/workflows/build-deps-ci-action-linux.yml with: distro-slug: centos-7 nox-session: ci-test-onedir @@ -948,426 +744,18 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - centos-7-arm64-ci-deps: - name: CentOS 7 Arm64 Deps + linux-arm64-ci-deps: + name: Linux arm64 CI Deps if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml + uses: ./.github/workflows/build-deps-ci-action-linux.yml with: distro-slug: centos-7-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - centosstream-8-ci-deps: - name: CentOS Stream 8 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: centosstream-8 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - centosstream-8-arm64-ci-deps: - name: CentOS Stream 8 Arm64 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: centosstream-8-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - centosstream-9-ci-deps: - name: CentOS Stream 9 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: centosstream-9 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - centosstream-9-arm64-ci-deps: - name: CentOS Stream 9 Arm64 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: centosstream-9-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - debian-10-ci-deps: - name: Debian 10 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: debian-10 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - debian-11-ci-deps: - name: Debian 11 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: debian-11 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - debian-11-arm64-ci-deps: - name: Debian 11 Arm64 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: debian-11-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - debian-12-ci-deps: - name: Debian 12 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: debian-12 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - debian-12-arm64-ci-deps: - name: Debian 12 Arm64 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: debian-12-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - fedora-37-ci-deps: - name: Fedora 37 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: fedora-37 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - fedora-37-arm64-ci-deps: - name: Fedora 37 Arm64 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: fedora-37-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - fedora-38-ci-deps: - name: Fedora 38 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: fedora-38 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - fedora-38-arm64-ci-deps: - name: Fedora 38 Arm64 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: fedora-38-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - opensuse-15-ci-deps: - name: Opensuse 15 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: opensuse-15 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - photonos-3-ci-deps: - name: Photon OS 3 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: photonos-3 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - photonos-3-arm64-ci-deps: - name: Photon OS 3 Arm64 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: photonos-3-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - photonos-4-ci-deps: - name: Photon OS 4 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: photonos-4 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - photonos-4-arm64-ci-deps: - name: Photon OS 4 Arm64 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: photonos-4-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - photonos-5-ci-deps: - name: Photon OS 5 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: photonos-5 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - photonos-5-arm64-ci-deps: - name: Photon OS 5 Arm64 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: photonos-5-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - ubuntu-2004-ci-deps: - name: Ubuntu 20.04 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: ubuntu-20.04 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - ubuntu-2004-arm64-ci-deps: - name: Ubuntu 20.04 Arm64 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: ubuntu-20.04-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - ubuntu-2204-ci-deps: - name: Ubuntu 22.04 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: ubuntu-22.04 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - ubuntu-2204-arm64-ci-deps: - name: Ubuntu 22.04 Arm64 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: ubuntu-22.04-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 + arch: arm64 nox-version: 2022.8.7 python-version: "3.10" salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" @@ -1379,8 +767,8 @@ jobs: needs: - prepare-workflow - build-rpm-pkgs-onedir - - amazonlinux-2-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: amazonlinux-2 nox-session: ci-test-onedir @@ -1401,13 +789,13 @@ jobs: needs: - prepare-workflow - build-rpm-pkgs-onedir - - amazonlinux-2-arm64-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: amazonlinux-2-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" pkg-type: rpm nox-version: 2022.8.7 @@ -1423,8 +811,8 @@ jobs: needs: - prepare-workflow - build-rpm-pkgs-onedir - - amazonlinux-2023-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: amazonlinux-2023 nox-session: ci-test-onedir @@ -1445,13 +833,13 @@ jobs: needs: - prepare-workflow - build-rpm-pkgs-onedir - - amazonlinux-2023-arm64-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: amazonlinux-2023-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" pkg-type: rpm nox-version: 2022.8.7 @@ -1467,8 +855,8 @@ jobs: needs: - prepare-workflow - build-rpm-pkgs-onedir - - centos-7-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: centos-7 nox-session: ci-test-onedir @@ -1489,8 +877,8 @@ jobs: needs: - prepare-workflow - build-rpm-pkgs-onedir - - centosstream-8-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: centosstream-8 nox-session: ci-test-onedir @@ -1511,8 +899,8 @@ jobs: needs: - prepare-workflow - build-rpm-pkgs-onedir - - centosstream-9-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: centosstream-9 nox-session: ci-test-onedir @@ -1533,13 +921,13 @@ jobs: needs: - prepare-workflow - build-rpm-pkgs-onedir - - centosstream-9-arm64-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: centosstream-9-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" pkg-type: rpm nox-version: 2022.8.7 @@ -1555,8 +943,8 @@ jobs: needs: - prepare-workflow - build-deb-pkgs-onedir - - debian-10-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: debian-10 nox-session: ci-test-onedir @@ -1577,8 +965,8 @@ jobs: needs: - prepare-workflow - build-deb-pkgs-onedir - - debian-11-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: debian-11 nox-session: ci-test-onedir @@ -1599,13 +987,13 @@ jobs: needs: - prepare-workflow - build-deb-pkgs-onedir - - debian-11-arm64-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: debian-11-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" pkg-type: deb nox-version: 2022.8.7 @@ -1621,8 +1009,8 @@ jobs: needs: - prepare-workflow - build-deb-pkgs-onedir - - debian-12-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: debian-12 nox-session: ci-test-onedir @@ -1643,13 +1031,13 @@ jobs: needs: - prepare-workflow - build-deb-pkgs-onedir - - debian-12-arm64-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: debian-12-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" pkg-type: deb nox-version: 2022.8.7 @@ -1665,8 +1053,8 @@ jobs: needs: - prepare-workflow - build-rpm-pkgs-onedir - - photonos-3-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: photonos-3 nox-session: ci-test-onedir @@ -1687,13 +1075,13 @@ jobs: needs: - prepare-workflow - build-rpm-pkgs-onedir - - photonos-3-arm64-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: photonos-3-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" pkg-type: rpm nox-version: 2022.8.7 @@ -1709,8 +1097,8 @@ jobs: needs: - prepare-workflow - build-rpm-pkgs-onedir - - photonos-4-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: photonos-4 nox-session: ci-test-onedir @@ -1732,13 +1120,13 @@ jobs: needs: - prepare-workflow - build-rpm-pkgs-onedir - - photonos-4-arm64-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: photonos-4-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" pkg-type: rpm nox-version: 2022.8.7 @@ -1755,8 +1143,8 @@ jobs: needs: - prepare-workflow - build-rpm-pkgs-onedir - - photonos-5-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: photonos-5 nox-session: ci-test-onedir @@ -1778,13 +1166,13 @@ jobs: needs: - prepare-workflow - build-rpm-pkgs-onedir - - photonos-5-arm64-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: photonos-5-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" pkg-type: rpm nox-version: 2022.8.7 @@ -1801,8 +1189,8 @@ jobs: needs: - prepare-workflow - build-deb-pkgs-onedir - - ubuntu-2004-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: ubuntu-20.04 nox-session: ci-test-onedir @@ -1823,13 +1211,13 @@ jobs: needs: - prepare-workflow - build-deb-pkgs-onedir - - ubuntu-2004-arm64-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: ubuntu-20.04-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" pkg-type: deb nox-version: 2022.8.7 @@ -1845,8 +1233,8 @@ jobs: needs: - prepare-workflow - build-deb-pkgs-onedir - - ubuntu-2204-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: ubuntu-22.04 nox-session: ci-test-onedir @@ -1867,13 +1255,13 @@ jobs: needs: - prepare-workflow - build-deb-pkgs-onedir - - ubuntu-2204-arm64-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: ubuntu-22.04-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" pkg-type: deb nox-version: 2022.8.7 @@ -1889,7 +1277,7 @@ jobs: needs: - prepare-workflow - build-macos-pkgs-onedir - - macos-12-ci-deps + - macos-x86_64-ci-deps uses: ./.github/workflows/test-packages-action-macos.yml with: distro-slug: macos-12 @@ -1911,7 +1299,7 @@ jobs: needs: - prepare-workflow - build-macos-pkgs-onedir - - macos-13-ci-deps + - macos-x86_64-ci-deps uses: ./.github/workflows/test-packages-action-macos.yml with: distro-slug: macos-13 @@ -1933,13 +1321,13 @@ jobs: needs: - prepare-workflow - build-macos-pkgs-onedir - - macos-13-xlarge-ci-deps + - macos-arm64-ci-deps uses: ./.github/workflows/test-packages-action-macos.yml with: distro-slug: macos-13-xlarge nox-session: ci-test-onedir platform: darwin - arch: aarch64 + arch: arm64 salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" pkg-type: macos nox-version: 2022.8.7 @@ -1955,8 +1343,8 @@ jobs: needs: - prepare-workflow - build-windows-pkgs-onedir - - windows-2016-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - windows-amd64-ci-deps + uses: ./.github/workflows/test-packages-action-windows.yml with: distro-slug: windows-2016 nox-session: ci-test-onedir @@ -1977,8 +1365,8 @@ jobs: needs: - prepare-workflow - build-windows-pkgs-onedir - - windows-2016-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - windows-amd64-ci-deps + uses: ./.github/workflows/test-packages-action-windows.yml with: distro-slug: windows-2016 nox-session: ci-test-onedir @@ -1999,8 +1387,8 @@ jobs: needs: - prepare-workflow - build-windows-pkgs-onedir - - windows-2019-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - windows-amd64-ci-deps + uses: ./.github/workflows/test-packages-action-windows.yml with: distro-slug: windows-2019 nox-session: ci-test-onedir @@ -2021,8 +1409,8 @@ jobs: needs: - prepare-workflow - build-windows-pkgs-onedir - - windows-2019-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - windows-amd64-ci-deps + uses: ./.github/workflows/test-packages-action-windows.yml with: distro-slug: windows-2019 nox-session: ci-test-onedir @@ -2043,8 +1431,8 @@ jobs: needs: - prepare-workflow - build-windows-pkgs-onedir - - windows-2022-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - windows-amd64-ci-deps + uses: ./.github/workflows/test-packages-action-windows.yml with: distro-slug: windows-2022 nox-session: ci-test-onedir @@ -2065,8 +1453,8 @@ jobs: needs: - prepare-workflow - build-windows-pkgs-onedir - - windows-2022-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - windows-amd64-ci-deps + uses: ./.github/workflows/test-packages-action-windows.yml with: distro-slug: windows-2022 nox-session: ci-test-onedir @@ -2086,8 +1474,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - windows-2016-ci-deps - uses: ./.github/workflows/test-action.yml + - windows-amd64-ci-deps + uses: ./.github/workflows/test-action-windows.yml with: distro-slug: windows-2016 nox-session: ci-test-onedir @@ -2108,8 +1496,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - windows-2019-ci-deps - uses: ./.github/workflows/test-action.yml + - windows-amd64-ci-deps + uses: ./.github/workflows/test-action-windows.yml with: distro-slug: windows-2019 nox-session: ci-test-onedir @@ -2130,8 +1518,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - windows-2022-ci-deps - uses: ./.github/workflows/test-action.yml + - windows-amd64-ci-deps + uses: ./.github/workflows/test-action-windows.yml with: distro-slug: windows-2022 nox-session: ci-test-onedir @@ -2152,7 +1540,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} needs: - prepare-workflow - - macos-12-ci-deps + - macos-x86_64-ci-deps uses: ./.github/workflows/test-action-macos.yml with: distro-slug: macos-12 @@ -2174,7 +1562,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} needs: - prepare-workflow - - macos-13-ci-deps + - macos-x86_64-ci-deps uses: ./.github/workflows/test-action-macos.yml with: distro-slug: macos-13 @@ -2196,13 +1584,13 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} needs: - prepare-workflow - - macos-13-xlarge-ci-deps + - macos-arm64-ci-deps uses: ./.github/workflows/test-action-macos.yml with: distro-slug: macos-13-xlarge nox-session: ci-test-onedir platform: darwin - arch: aarch64 + arch: arm64 nox-version: 2022.8.7 gh-actions-python-version: "3.10" testrun: ${{ needs.prepare-workflow.outputs.testrun }} @@ -2218,8 +1606,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - almalinux-8-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: almalinux-8 nox-session: ci-test-onedir @@ -2240,8 +1628,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - almalinux-9-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: almalinux-9 nox-session: ci-test-onedir @@ -2262,8 +1650,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - amazonlinux-2-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: amazonlinux-2 nox-session: ci-test-onedir @@ -2284,13 +1672,13 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - amazonlinux-2-arm64-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: amazonlinux-2-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 nox-version: 2022.8.7 gh-actions-python-version: "3.10" testrun: ${{ needs.prepare-workflow.outputs.testrun }} @@ -2306,8 +1694,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - amazonlinux-2023-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: amazonlinux-2023 nox-session: ci-test-onedir @@ -2328,13 +1716,13 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - amazonlinux-2023-arm64-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: amazonlinux-2023-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 nox-version: 2022.8.7 gh-actions-python-version: "3.10" testrun: ${{ needs.prepare-workflow.outputs.testrun }} @@ -2350,8 +1738,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - archlinux-lts-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: archlinux-lts nox-session: ci-test-onedir @@ -2372,8 +1760,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - centos-7-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: centos-7 nox-session: ci-test-onedir @@ -2394,8 +1782,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - centosstream-8-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: centosstream-8 nox-session: ci-test-onedir @@ -2416,8 +1804,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - centosstream-9-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: centosstream-9 nox-session: ci-test-onedir @@ -2438,8 +1826,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - debian-10-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: debian-10 nox-session: ci-test-onedir @@ -2460,8 +1848,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - debian-11-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: debian-11 nox-session: ci-test-onedir @@ -2482,13 +1870,13 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - debian-11-arm64-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: debian-11-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 nox-version: 2022.8.7 gh-actions-python-version: "3.10" testrun: ${{ needs.prepare-workflow.outputs.testrun }} @@ -2504,8 +1892,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - debian-12-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: debian-12 nox-session: ci-test-onedir @@ -2526,13 +1914,13 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - debian-12-arm64-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: debian-12-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 nox-version: 2022.8.7 gh-actions-python-version: "3.10" testrun: ${{ needs.prepare-workflow.outputs.testrun }} @@ -2548,8 +1936,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - fedora-37-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: fedora-37 nox-session: ci-test-onedir @@ -2570,8 +1958,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - fedora-38-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: fedora-38 nox-session: ci-test-onedir @@ -2592,8 +1980,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - opensuse-15-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: opensuse-15 nox-session: ci-test-onedir @@ -2614,8 +2002,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - photonos-3-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: photonos-3 nox-session: ci-test-onedir @@ -2636,13 +2024,13 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - photonos-3-arm64-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: photonos-3-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 nox-version: 2022.8.7 gh-actions-python-version: "3.10" testrun: ${{ needs.prepare-workflow.outputs.testrun }} @@ -2658,8 +2046,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - photonos-4-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: photonos-4 nox-session: ci-test-onedir @@ -2681,13 +2069,13 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - photonos-4-arm64-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: photonos-4-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 nox-version: 2022.8.7 gh-actions-python-version: "3.10" testrun: ${{ needs.prepare-workflow.outputs.testrun }} @@ -2704,8 +2092,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - photonos-5-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: photonos-5 nox-session: ci-test-onedir @@ -2727,13 +2115,13 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - photonos-5-arm64-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: photonos-5-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 nox-version: 2022.8.7 gh-actions-python-version: "3.10" testrun: ${{ needs.prepare-workflow.outputs.testrun }} @@ -2750,8 +2138,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - ubuntu-2004-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: ubuntu-20.04 nox-session: ci-test-onedir @@ -2772,13 +2160,13 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - ubuntu-2004-arm64-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: ubuntu-20.04-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 nox-version: 2022.8.7 gh-actions-python-version: "3.10" testrun: ${{ needs.prepare-workflow.outputs.testrun }} @@ -2794,8 +2182,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - ubuntu-2204-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: ubuntu-22.04 nox-session: ci-test-onedir @@ -2816,13 +2204,13 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - ubuntu-2204-arm64-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: ubuntu-22.04-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 nox-version: 2022.8.7 gh-actions-python-version: "3.10" testrun: ${{ needs.prepare-workflow.outputs.testrun }} @@ -2839,47 +2227,11 @@ jobs: runs-on: ubuntu-latest needs: - prepare-workflow - - windows-2016-ci-deps - - windows-2019-ci-deps - - windows-2022-ci-deps - - macos-12-ci-deps - - macos-13-ci-deps - - macos-13-xlarge-ci-deps - - almalinux-8-ci-deps - - almalinux-8-arm64-ci-deps - - almalinux-9-ci-deps - - almalinux-9-arm64-ci-deps - - amazonlinux-2-ci-deps - - amazonlinux-2-arm64-ci-deps - - amazonlinux-2023-ci-deps - - amazonlinux-2023-arm64-ci-deps - - archlinux-lts-ci-deps - - centos-7-ci-deps - - centos-7-arm64-ci-deps - - centosstream-8-ci-deps - - centosstream-8-arm64-ci-deps - - centosstream-9-ci-deps - - centosstream-9-arm64-ci-deps - - debian-10-ci-deps - - debian-11-ci-deps - - debian-11-arm64-ci-deps - - debian-12-ci-deps - - debian-12-arm64-ci-deps - - fedora-37-ci-deps - - fedora-37-arm64-ci-deps - - fedora-38-ci-deps - - fedora-38-arm64-ci-deps - - opensuse-15-ci-deps - - photonos-3-ci-deps - - photonos-3-arm64-ci-deps - - photonos-4-ci-deps - - photonos-4-arm64-ci-deps - - photonos-5-ci-deps - - photonos-5-arm64-ci-deps - - ubuntu-2004-ci-deps - - ubuntu-2004-arm64-ci-deps - - ubuntu-2204-ci-deps - - ubuntu-2204-arm64-ci-deps + - windows-amd64-ci-deps + - macos-x86_64-ci-deps + - macos-arm64-ci-deps + - linux-x86_64-ci-deps + - linux-arm64-ci-deps - windows-2016 - windows-2019 - windows-2022 @@ -3807,47 +3159,11 @@ jobs: - build-windows-repo - build-macos-repo - build-onedir-repo - - windows-2016-ci-deps - - windows-2019-ci-deps - - windows-2022-ci-deps - - macos-12-ci-deps - - macos-13-ci-deps - - macos-13-xlarge-ci-deps - - almalinux-8-ci-deps - - almalinux-8-arm64-ci-deps - - almalinux-9-ci-deps - - almalinux-9-arm64-ci-deps - - amazonlinux-2-ci-deps - - amazonlinux-2-arm64-ci-deps - - amazonlinux-2023-ci-deps - - amazonlinux-2023-arm64-ci-deps - - archlinux-lts-ci-deps - - centos-7-ci-deps - - centos-7-arm64-ci-deps - - centosstream-8-ci-deps - - centosstream-8-arm64-ci-deps - - centosstream-9-ci-deps - - centosstream-9-arm64-ci-deps - - debian-10-ci-deps - - debian-11-ci-deps - - debian-11-arm64-ci-deps - - debian-12-ci-deps - - debian-12-arm64-ci-deps - - fedora-37-ci-deps - - fedora-37-arm64-ci-deps - - fedora-38-ci-deps - - fedora-38-arm64-ci-deps - - opensuse-15-ci-deps - - photonos-3-ci-deps - - photonos-3-arm64-ci-deps - - photonos-4-ci-deps - - photonos-4-arm64-ci-deps - - photonos-5-ci-deps - - photonos-5-arm64-ci-deps - - ubuntu-2004-ci-deps - - ubuntu-2004-arm64-ci-deps - - ubuntu-2204-ci-deps - - ubuntu-2204-arm64-ci-deps + - windows-amd64-ci-deps + - macos-x86_64-ci-deps + - macos-arm64-ci-deps + - linux-x86_64-ci-deps + - linux-arm64-ci-deps - windows-2016 - windows-2019 - windows-2022 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 6cb6ab1d27e..bc0a5732ebc 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -167,44 +167,12 @@ jobs: retention-days: 7 if-no-files-found: error - windows-2016-ci-deps: - name: Windows 2016 Deps + windows-amd64-ci-deps: + name: Windows amd64 CI Deps needs: - prepare-workflow - download-onedir-artifact - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: windows-2016 - nox-session: ci-test-onedir - platform: windows - arch: amd64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - windows-2019-ci-deps: - name: Windows 2019 Deps - needs: - - prepare-workflow - - download-onedir-artifact - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: windows-2019 - nox-session: ci-test-onedir - platform: windows - arch: amd64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - windows-2022-ci-deps: - name: Windows 2022 Deps - needs: - - prepare-workflow - - download-onedir-artifact - uses: ./.github/workflows/build-deps-ci-action.yml + uses: ./.github/workflows/build-deps-ci-action-windows.yml with: distro-slug: windows-2022 nox-session: ci-test-onedir @@ -215,8 +183,8 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - macos-12-ci-deps: - name: macOS 12 Deps + macos-x86_64-ci-deps: + name: MacOS x86_64 CI Deps needs: - prepare-workflow - download-onedir-artifact @@ -231,24 +199,8 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - macos-13-ci-deps: - name: macOS 13 Deps - needs: - - prepare-workflow - - download-onedir-artifact - uses: ./.github/workflows/build-deps-ci-action-macos.yml - with: - distro-slug: macos-13 - nox-session: ci-test-onedir - platform: darwin - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - macos-13-xlarge-ci-deps: - name: macOS 13 Arm64 Deps + macos-arm64-ci-deps: + name: MacOS arm64 CI Deps needs: - prepare-workflow - download-onedir-artifact @@ -257,162 +209,18 @@ jobs: distro-slug: macos-13-xlarge nox-session: ci-test-onedir platform: darwin - arch: aarch64 + arch: arm64 nox-version: 2022.8.7 python-version: "3.10" salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - almalinux-8-ci-deps: - name: Alma Linux 8 Deps + linux-x86_64-ci-deps: + name: Linux x86_64 CI Deps needs: - prepare-workflow - download-onedir-artifact - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: almalinux-8 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - almalinux-8-arm64-ci-deps: - name: Alma Linux 8 Arm64 Deps - needs: - - prepare-workflow - - download-onedir-artifact - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: almalinux-8-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - almalinux-9-ci-deps: - name: Alma Linux 9 Deps - needs: - - prepare-workflow - - download-onedir-artifact - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: almalinux-9 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - almalinux-9-arm64-ci-deps: - name: Alma Linux 9 Arm64 Deps - needs: - - prepare-workflow - - download-onedir-artifact - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: almalinux-9-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - amazonlinux-2-ci-deps: - name: Amazon Linux 2 Deps - needs: - - prepare-workflow - - download-onedir-artifact - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: amazonlinux-2 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - amazonlinux-2-arm64-ci-deps: - name: Amazon Linux 2 Arm64 Deps - needs: - - prepare-workflow - - download-onedir-artifact - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: amazonlinux-2-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - amazonlinux-2023-ci-deps: - name: Amazon Linux 2023 Deps - needs: - - prepare-workflow - - download-onedir-artifact - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: amazonlinux-2023 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - amazonlinux-2023-arm64-ci-deps: - name: Amazon Linux 2023 Arm64 Deps - needs: - - prepare-workflow - - download-onedir-artifact - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: amazonlinux-2023-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - archlinux-lts-ci-deps: - name: Arch Linux LTS Deps - needs: - - prepare-workflow - - download-onedir-artifact - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: archlinux-lts - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - centos-7-ci-deps: - name: CentOS 7 Deps - needs: - - prepare-workflow - - download-onedir-artifact - uses: ./.github/workflows/build-deps-ci-action.yml + uses: ./.github/workflows/build-deps-ci-action-linux.yml with: distro-slug: centos-7 nox-session: ci-test-onedir @@ -423,401 +231,17 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - centos-7-arm64-ci-deps: - name: CentOS 7 Arm64 Deps + linux-arm64-ci-deps: + name: Linux arm64 CI Deps needs: - prepare-workflow - download-onedir-artifact - uses: ./.github/workflows/build-deps-ci-action.yml + uses: ./.github/workflows/build-deps-ci-action-linux.yml with: distro-slug: centos-7-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - centosstream-8-ci-deps: - name: CentOS Stream 8 Deps - needs: - - prepare-workflow - - download-onedir-artifact - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: centosstream-8 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - centosstream-8-arm64-ci-deps: - name: CentOS Stream 8 Arm64 Deps - needs: - - prepare-workflow - - download-onedir-artifact - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: centosstream-8-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - centosstream-9-ci-deps: - name: CentOS Stream 9 Deps - needs: - - prepare-workflow - - download-onedir-artifact - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: centosstream-9 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - centosstream-9-arm64-ci-deps: - name: CentOS Stream 9 Arm64 Deps - needs: - - prepare-workflow - - download-onedir-artifact - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: centosstream-9-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - debian-10-ci-deps: - name: Debian 10 Deps - needs: - - prepare-workflow - - download-onedir-artifact - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: debian-10 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - debian-11-ci-deps: - name: Debian 11 Deps - needs: - - prepare-workflow - - download-onedir-artifact - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: debian-11 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - debian-11-arm64-ci-deps: - name: Debian 11 Arm64 Deps - needs: - - prepare-workflow - - download-onedir-artifact - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: debian-11-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - debian-12-ci-deps: - name: Debian 12 Deps - needs: - - prepare-workflow - - download-onedir-artifact - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: debian-12 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - debian-12-arm64-ci-deps: - name: Debian 12 Arm64 Deps - needs: - - prepare-workflow - - download-onedir-artifact - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: debian-12-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - fedora-37-ci-deps: - name: Fedora 37 Deps - needs: - - prepare-workflow - - download-onedir-artifact - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: fedora-37 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - fedora-37-arm64-ci-deps: - name: Fedora 37 Arm64 Deps - needs: - - prepare-workflow - - download-onedir-artifact - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: fedora-37-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - fedora-38-ci-deps: - name: Fedora 38 Deps - needs: - - prepare-workflow - - download-onedir-artifact - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: fedora-38 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - fedora-38-arm64-ci-deps: - name: Fedora 38 Arm64 Deps - needs: - - prepare-workflow - - download-onedir-artifact - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: fedora-38-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - opensuse-15-ci-deps: - name: Opensuse 15 Deps - needs: - - prepare-workflow - - download-onedir-artifact - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: opensuse-15 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - photonos-3-ci-deps: - name: Photon OS 3 Deps - needs: - - prepare-workflow - - download-onedir-artifact - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: photonos-3 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - photonos-3-arm64-ci-deps: - name: Photon OS 3 Arm64 Deps - needs: - - prepare-workflow - - download-onedir-artifact - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: photonos-3-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - photonos-4-ci-deps: - name: Photon OS 4 Deps - needs: - - prepare-workflow - - download-onedir-artifact - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: photonos-4 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - photonos-4-arm64-ci-deps: - name: Photon OS 4 Arm64 Deps - needs: - - prepare-workflow - - download-onedir-artifact - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: photonos-4-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - photonos-5-ci-deps: - name: Photon OS 5 Deps - needs: - - prepare-workflow - - download-onedir-artifact - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: photonos-5 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - photonos-5-arm64-ci-deps: - name: Photon OS 5 Arm64 Deps - needs: - - prepare-workflow - - download-onedir-artifact - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: photonos-5-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - ubuntu-2004-ci-deps: - name: Ubuntu 20.04 Deps - needs: - - prepare-workflow - - download-onedir-artifact - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: ubuntu-20.04 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - ubuntu-2004-arm64-ci-deps: - name: Ubuntu 20.04 Arm64 Deps - needs: - - prepare-workflow - - download-onedir-artifact - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: ubuntu-20.04-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - ubuntu-2204-ci-deps: - name: Ubuntu 22.04 Deps - needs: - - prepare-workflow - - download-onedir-artifact - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: ubuntu-22.04 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - ubuntu-2204-arm64-ci-deps: - name: Ubuntu 22.04 Arm64 Deps - needs: - - prepare-workflow - - download-onedir-artifact - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: ubuntu-22.04-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 + arch: arm64 nox-version: 2022.8.7 python-version: "3.10" salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" @@ -894,43 +318,11 @@ jobs: needs: - prepare-workflow - publish-repositories - - almalinux-8-arm64-ci-deps - - almalinux-8-ci-deps - - almalinux-9-arm64-ci-deps - - almalinux-9-ci-deps - - amazonlinux-2-arm64-ci-deps - - amazonlinux-2-ci-deps - - amazonlinux-2023-arm64-ci-deps - - amazonlinux-2023-ci-deps - - centos-7-arm64-ci-deps - - centos-7-ci-deps - - centosstream-8-arm64-ci-deps - - centosstream-8-ci-deps - - centosstream-9-arm64-ci-deps - - centosstream-9-ci-deps - - debian-10-ci-deps - - debian-11-arm64-ci-deps - - debian-11-ci-deps - - debian-12-arm64-ci-deps - - debian-12-ci-deps - - fedora-37-arm64-ci-deps - - fedora-37-ci-deps - - fedora-38-arm64-ci-deps - - fedora-38-ci-deps - - macos-12-ci-deps - - macos-13-ci-deps - - macos-13-xlarge-ci-deps - - photonos-3-arm64-ci-deps - - photonos-3-ci-deps - - photonos-4-arm64-ci-deps - - photonos-4-ci-deps - - photonos-5-arm64-ci-deps - - photonos-5-ci-deps - - ubuntu-2004-arm64-ci-deps - - ubuntu-2004-ci-deps - - ubuntu-2204-arm64-ci-deps - - ubuntu-2204-ci-deps - - windows-2022-ci-deps + - linux-arm64-ci-deps + - linux-x86_64-ci-deps + - macos-arm64-ci-deps + - macos-x86_64-ci-deps + - windows-amd64-ci-deps - download-onedir-artifact uses: ./.github/workflows/test-package-downloads-action.yml with: @@ -1122,47 +514,11 @@ jobs: - pkg-download-tests - release - publish-pypi - - windows-2016-ci-deps - - windows-2019-ci-deps - - windows-2022-ci-deps - - macos-12-ci-deps - - macos-13-ci-deps - - macos-13-xlarge-ci-deps - - almalinux-8-ci-deps - - almalinux-8-arm64-ci-deps - - almalinux-9-ci-deps - - almalinux-9-arm64-ci-deps - - amazonlinux-2-ci-deps - - amazonlinux-2-arm64-ci-deps - - amazonlinux-2023-ci-deps - - amazonlinux-2023-arm64-ci-deps - - archlinux-lts-ci-deps - - centos-7-ci-deps - - centos-7-arm64-ci-deps - - centosstream-8-ci-deps - - centosstream-8-arm64-ci-deps - - centosstream-9-ci-deps - - centosstream-9-arm64-ci-deps - - debian-10-ci-deps - - debian-11-ci-deps - - debian-11-arm64-ci-deps - - debian-12-ci-deps - - debian-12-arm64-ci-deps - - fedora-37-ci-deps - - fedora-37-arm64-ci-deps - - fedora-38-ci-deps - - fedora-38-arm64-ci-deps - - opensuse-15-ci-deps - - photonos-3-ci-deps - - photonos-3-arm64-ci-deps - - photonos-4-ci-deps - - photonos-4-arm64-ci-deps - - photonos-5-ci-deps - - photonos-5-arm64-ci-deps - - ubuntu-2004-ci-deps - - ubuntu-2004-arm64-ci-deps - - ubuntu-2204-ci-deps - - ubuntu-2204-arm64-ci-deps + - windows-amd64-ci-deps + - macos-x86_64-ci-deps + - macos-arm64-ci-deps + - linux-x86_64-ci-deps + - linux-arm64-ci-deps steps: - name: Get workflow information id: get-workflow-info diff --git a/.github/workflows/scheduled.yml b/.github/workflows/scheduled.yml index ccb79b95fc2..59bd58d986e 100644 --- a/.github/workflows/scheduled.yml +++ b/.github/workflows/scheduled.yml @@ -649,47 +649,13 @@ jobs: python-version: "3.10.13" source: "src" - windows-2016-ci-deps: - name: Windows 2016 Deps + windows-amd64-ci-deps: + name: Windows amd64 CI Deps if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - build-salt-onedir-windows - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: windows-2016 - nox-session: ci-test-onedir - platform: windows - arch: amd64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - windows-2019-ci-deps: - name: Windows 2019 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-windows - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: windows-2019 - nox-session: ci-test-onedir - platform: windows - arch: amd64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - windows-2022-ci-deps: - name: Windows 2022 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-windows - uses: ./.github/workflows/build-deps-ci-action.yml + uses: ./.github/workflows/build-deps-ci-action-windows.yml with: distro-slug: windows-2022 nox-session: ci-test-onedir @@ -700,8 +666,8 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - macos-12-ci-deps: - name: macOS 12 Deps + macos-x86_64-ci-deps: + name: MacOS x86_64 CI Deps if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} needs: - prepare-workflow @@ -717,25 +683,8 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - macos-13-ci-deps: - name: macOS 13 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-macos - uses: ./.github/workflows/build-deps-ci-action-macos.yml - with: - distro-slug: macos-13 - nox-session: ci-test-onedir - platform: darwin - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - macos-13-xlarge-ci-deps: - name: macOS 13 Arm64 Deps + macos-arm64-ci-deps: + name: MacOS arm64 CI Deps if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} needs: - prepare-workflow @@ -745,172 +694,19 @@ jobs: distro-slug: macos-13-xlarge nox-session: ci-test-onedir platform: darwin - arch: aarch64 + arch: arm64 nox-version: 2022.8.7 python-version: "3.10" salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - almalinux-8-ci-deps: - name: Alma Linux 8 Deps + linux-x86_64-ci-deps: + name: Linux x86_64 CI Deps if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: almalinux-8 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - almalinux-8-arm64-ci-deps: - name: Alma Linux 8 Arm64 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: almalinux-8-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - almalinux-9-ci-deps: - name: Alma Linux 9 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: almalinux-9 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - almalinux-9-arm64-ci-deps: - name: Alma Linux 9 Arm64 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: almalinux-9-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - amazonlinux-2-ci-deps: - name: Amazon Linux 2 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: amazonlinux-2 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - amazonlinux-2-arm64-ci-deps: - name: Amazon Linux 2 Arm64 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: amazonlinux-2-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - amazonlinux-2023-ci-deps: - name: Amazon Linux 2023 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: amazonlinux-2023 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - amazonlinux-2023-arm64-ci-deps: - name: Amazon Linux 2023 Arm64 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: amazonlinux-2023-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - archlinux-lts-ci-deps: - name: Arch Linux LTS Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: archlinux-lts - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - centos-7-ci-deps: - name: CentOS 7 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml + uses: ./.github/workflows/build-deps-ci-action-linux.yml with: distro-slug: centos-7 nox-session: ci-test-onedir @@ -921,426 +717,18 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - centos-7-arm64-ci-deps: - name: CentOS 7 Arm64 Deps + linux-arm64-ci-deps: + name: Linux arm64 CI Deps if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml + uses: ./.github/workflows/build-deps-ci-action-linux.yml with: distro-slug: centos-7-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - centosstream-8-ci-deps: - name: CentOS Stream 8 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: centosstream-8 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - centosstream-8-arm64-ci-deps: - name: CentOS Stream 8 Arm64 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: centosstream-8-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - centosstream-9-ci-deps: - name: CentOS Stream 9 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: centosstream-9 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - centosstream-9-arm64-ci-deps: - name: CentOS Stream 9 Arm64 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: centosstream-9-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - debian-10-ci-deps: - name: Debian 10 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: debian-10 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - debian-11-ci-deps: - name: Debian 11 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: debian-11 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - debian-11-arm64-ci-deps: - name: Debian 11 Arm64 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: debian-11-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - debian-12-ci-deps: - name: Debian 12 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: debian-12 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - debian-12-arm64-ci-deps: - name: Debian 12 Arm64 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: debian-12-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - fedora-37-ci-deps: - name: Fedora 37 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: fedora-37 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - fedora-37-arm64-ci-deps: - name: Fedora 37 Arm64 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: fedora-37-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - fedora-38-ci-deps: - name: Fedora 38 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: fedora-38 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - fedora-38-arm64-ci-deps: - name: Fedora 38 Arm64 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: fedora-38-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - opensuse-15-ci-deps: - name: Opensuse 15 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: opensuse-15 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - photonos-3-ci-deps: - name: Photon OS 3 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: photonos-3 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - photonos-3-arm64-ci-deps: - name: Photon OS 3 Arm64 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: photonos-3-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - photonos-4-ci-deps: - name: Photon OS 4 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: photonos-4 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - photonos-4-arm64-ci-deps: - name: Photon OS 4 Arm64 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: photonos-4-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - photonos-5-ci-deps: - name: Photon OS 5 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: photonos-5 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - photonos-5-arm64-ci-deps: - name: Photon OS 5 Arm64 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: photonos-5-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - ubuntu-2004-ci-deps: - name: Ubuntu 20.04 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: ubuntu-20.04 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - ubuntu-2004-arm64-ci-deps: - name: Ubuntu 20.04 Arm64 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: ubuntu-20.04-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - ubuntu-2204-ci-deps: - name: Ubuntu 22.04 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: ubuntu-22.04 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - ubuntu-2204-arm64-ci-deps: - name: Ubuntu 22.04 Arm64 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: ubuntu-22.04-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 + arch: arm64 nox-version: 2022.8.7 python-version: "3.10" salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" @@ -1352,8 +740,8 @@ jobs: needs: - prepare-workflow - build-rpm-pkgs-onedir - - amazonlinux-2-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: amazonlinux-2 nox-session: ci-test-onedir @@ -1374,13 +762,13 @@ jobs: needs: - prepare-workflow - build-rpm-pkgs-onedir - - amazonlinux-2-arm64-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: amazonlinux-2-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" pkg-type: rpm nox-version: 2022.8.7 @@ -1396,8 +784,8 @@ jobs: needs: - prepare-workflow - build-rpm-pkgs-onedir - - amazonlinux-2023-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: amazonlinux-2023 nox-session: ci-test-onedir @@ -1418,13 +806,13 @@ jobs: needs: - prepare-workflow - build-rpm-pkgs-onedir - - amazonlinux-2023-arm64-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: amazonlinux-2023-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" pkg-type: rpm nox-version: 2022.8.7 @@ -1440,8 +828,8 @@ jobs: needs: - prepare-workflow - build-rpm-pkgs-onedir - - centos-7-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: centos-7 nox-session: ci-test-onedir @@ -1462,8 +850,8 @@ jobs: needs: - prepare-workflow - build-rpm-pkgs-onedir - - centosstream-8-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: centosstream-8 nox-session: ci-test-onedir @@ -1484,8 +872,8 @@ jobs: needs: - prepare-workflow - build-rpm-pkgs-onedir - - centosstream-9-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: centosstream-9 nox-session: ci-test-onedir @@ -1506,13 +894,13 @@ jobs: needs: - prepare-workflow - build-rpm-pkgs-onedir - - centosstream-9-arm64-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: centosstream-9-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" pkg-type: rpm nox-version: 2022.8.7 @@ -1528,8 +916,8 @@ jobs: needs: - prepare-workflow - build-deb-pkgs-onedir - - debian-10-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: debian-10 nox-session: ci-test-onedir @@ -1550,8 +938,8 @@ jobs: needs: - prepare-workflow - build-deb-pkgs-onedir - - debian-11-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: debian-11 nox-session: ci-test-onedir @@ -1572,13 +960,13 @@ jobs: needs: - prepare-workflow - build-deb-pkgs-onedir - - debian-11-arm64-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: debian-11-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" pkg-type: deb nox-version: 2022.8.7 @@ -1594,8 +982,8 @@ jobs: needs: - prepare-workflow - build-deb-pkgs-onedir - - debian-12-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: debian-12 nox-session: ci-test-onedir @@ -1616,13 +1004,13 @@ jobs: needs: - prepare-workflow - build-deb-pkgs-onedir - - debian-12-arm64-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: debian-12-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" pkg-type: deb nox-version: 2022.8.7 @@ -1638,8 +1026,8 @@ jobs: needs: - prepare-workflow - build-rpm-pkgs-onedir - - photonos-3-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: photonos-3 nox-session: ci-test-onedir @@ -1660,13 +1048,13 @@ jobs: needs: - prepare-workflow - build-rpm-pkgs-onedir - - photonos-3-arm64-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: photonos-3-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" pkg-type: rpm nox-version: 2022.8.7 @@ -1682,8 +1070,8 @@ jobs: needs: - prepare-workflow - build-rpm-pkgs-onedir - - photonos-4-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: photonos-4 nox-session: ci-test-onedir @@ -1705,13 +1093,13 @@ jobs: needs: - prepare-workflow - build-rpm-pkgs-onedir - - photonos-4-arm64-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: photonos-4-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" pkg-type: rpm nox-version: 2022.8.7 @@ -1728,8 +1116,8 @@ jobs: needs: - prepare-workflow - build-rpm-pkgs-onedir - - photonos-5-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: photonos-5 nox-session: ci-test-onedir @@ -1751,13 +1139,13 @@ jobs: needs: - prepare-workflow - build-rpm-pkgs-onedir - - photonos-5-arm64-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: photonos-5-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" pkg-type: rpm nox-version: 2022.8.7 @@ -1774,8 +1162,8 @@ jobs: needs: - prepare-workflow - build-deb-pkgs-onedir - - ubuntu-2004-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: ubuntu-20.04 nox-session: ci-test-onedir @@ -1796,13 +1184,13 @@ jobs: needs: - prepare-workflow - build-deb-pkgs-onedir - - ubuntu-2004-arm64-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: ubuntu-20.04-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" pkg-type: deb nox-version: 2022.8.7 @@ -1818,8 +1206,8 @@ jobs: needs: - prepare-workflow - build-deb-pkgs-onedir - - ubuntu-2204-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: ubuntu-22.04 nox-session: ci-test-onedir @@ -1840,13 +1228,13 @@ jobs: needs: - prepare-workflow - build-deb-pkgs-onedir - - ubuntu-2204-arm64-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: ubuntu-22.04-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" pkg-type: deb nox-version: 2022.8.7 @@ -1862,7 +1250,7 @@ jobs: needs: - prepare-workflow - build-macos-pkgs-onedir - - macos-12-ci-deps + - macos-x86_64-ci-deps uses: ./.github/workflows/test-packages-action-macos.yml with: distro-slug: macos-12 @@ -1884,7 +1272,7 @@ jobs: needs: - prepare-workflow - build-macos-pkgs-onedir - - macos-13-ci-deps + - macos-x86_64-ci-deps uses: ./.github/workflows/test-packages-action-macos.yml with: distro-slug: macos-13 @@ -1906,13 +1294,13 @@ jobs: needs: - prepare-workflow - build-macos-pkgs-onedir - - macos-13-xlarge-ci-deps + - macos-arm64-ci-deps uses: ./.github/workflows/test-packages-action-macos.yml with: distro-slug: macos-13-xlarge nox-session: ci-test-onedir platform: darwin - arch: aarch64 + arch: arm64 salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" pkg-type: macos nox-version: 2022.8.7 @@ -1928,8 +1316,8 @@ jobs: needs: - prepare-workflow - build-windows-pkgs-onedir - - windows-2016-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - windows-amd64-ci-deps + uses: ./.github/workflows/test-packages-action-windows.yml with: distro-slug: windows-2016 nox-session: ci-test-onedir @@ -1950,8 +1338,8 @@ jobs: needs: - prepare-workflow - build-windows-pkgs-onedir - - windows-2016-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - windows-amd64-ci-deps + uses: ./.github/workflows/test-packages-action-windows.yml with: distro-slug: windows-2016 nox-session: ci-test-onedir @@ -1972,8 +1360,8 @@ jobs: needs: - prepare-workflow - build-windows-pkgs-onedir - - windows-2019-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - windows-amd64-ci-deps + uses: ./.github/workflows/test-packages-action-windows.yml with: distro-slug: windows-2019 nox-session: ci-test-onedir @@ -1994,8 +1382,8 @@ jobs: needs: - prepare-workflow - build-windows-pkgs-onedir - - windows-2019-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - windows-amd64-ci-deps + uses: ./.github/workflows/test-packages-action-windows.yml with: distro-slug: windows-2019 nox-session: ci-test-onedir @@ -2016,8 +1404,8 @@ jobs: needs: - prepare-workflow - build-windows-pkgs-onedir - - windows-2022-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - windows-amd64-ci-deps + uses: ./.github/workflows/test-packages-action-windows.yml with: distro-slug: windows-2022 nox-session: ci-test-onedir @@ -2038,8 +1426,8 @@ jobs: needs: - prepare-workflow - build-windows-pkgs-onedir - - windows-2022-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - windows-amd64-ci-deps + uses: ./.github/workflows/test-packages-action-windows.yml with: distro-slug: windows-2022 nox-session: ci-test-onedir @@ -2059,8 +1447,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - windows-2016-ci-deps - uses: ./.github/workflows/test-action.yml + - windows-amd64-ci-deps + uses: ./.github/workflows/test-action-windows.yml with: distro-slug: windows-2016 nox-session: ci-test-onedir @@ -2081,8 +1469,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - windows-2019-ci-deps - uses: ./.github/workflows/test-action.yml + - windows-amd64-ci-deps + uses: ./.github/workflows/test-action-windows.yml with: distro-slug: windows-2019 nox-session: ci-test-onedir @@ -2103,8 +1491,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - windows-2022-ci-deps - uses: ./.github/workflows/test-action.yml + - windows-amd64-ci-deps + uses: ./.github/workflows/test-action-windows.yml with: distro-slug: windows-2022 nox-session: ci-test-onedir @@ -2125,7 +1513,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} needs: - prepare-workflow - - macos-12-ci-deps + - macos-x86_64-ci-deps uses: ./.github/workflows/test-action-macos.yml with: distro-slug: macos-12 @@ -2147,7 +1535,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} needs: - prepare-workflow - - macos-13-ci-deps + - macos-x86_64-ci-deps uses: ./.github/workflows/test-action-macos.yml with: distro-slug: macos-13 @@ -2169,13 +1557,13 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} needs: - prepare-workflow - - macos-13-xlarge-ci-deps + - macos-arm64-ci-deps uses: ./.github/workflows/test-action-macos.yml with: distro-slug: macos-13-xlarge nox-session: ci-test-onedir platform: darwin - arch: aarch64 + arch: arm64 nox-version: 2022.8.7 gh-actions-python-version: "3.10" testrun: ${{ needs.prepare-workflow.outputs.testrun }} @@ -2191,8 +1579,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - almalinux-8-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: almalinux-8 nox-session: ci-test-onedir @@ -2213,8 +1601,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - almalinux-9-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: almalinux-9 nox-session: ci-test-onedir @@ -2235,8 +1623,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - amazonlinux-2-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: amazonlinux-2 nox-session: ci-test-onedir @@ -2257,13 +1645,13 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - amazonlinux-2-arm64-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: amazonlinux-2-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 nox-version: 2022.8.7 gh-actions-python-version: "3.10" testrun: ${{ needs.prepare-workflow.outputs.testrun }} @@ -2279,8 +1667,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - amazonlinux-2023-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: amazonlinux-2023 nox-session: ci-test-onedir @@ -2301,13 +1689,13 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - amazonlinux-2023-arm64-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: amazonlinux-2023-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 nox-version: 2022.8.7 gh-actions-python-version: "3.10" testrun: ${{ needs.prepare-workflow.outputs.testrun }} @@ -2323,8 +1711,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - archlinux-lts-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: archlinux-lts nox-session: ci-test-onedir @@ -2345,8 +1733,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - centos-7-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: centos-7 nox-session: ci-test-onedir @@ -2367,8 +1755,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - centosstream-8-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: centosstream-8 nox-session: ci-test-onedir @@ -2389,8 +1777,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - centosstream-9-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: centosstream-9 nox-session: ci-test-onedir @@ -2411,8 +1799,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - debian-10-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: debian-10 nox-session: ci-test-onedir @@ -2433,8 +1821,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - debian-11-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: debian-11 nox-session: ci-test-onedir @@ -2455,13 +1843,13 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - debian-11-arm64-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: debian-11-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 nox-version: 2022.8.7 gh-actions-python-version: "3.10" testrun: ${{ needs.prepare-workflow.outputs.testrun }} @@ -2477,8 +1865,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - debian-12-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: debian-12 nox-session: ci-test-onedir @@ -2499,13 +1887,13 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - debian-12-arm64-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: debian-12-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 nox-version: 2022.8.7 gh-actions-python-version: "3.10" testrun: ${{ needs.prepare-workflow.outputs.testrun }} @@ -2521,8 +1909,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - fedora-37-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: fedora-37 nox-session: ci-test-onedir @@ -2543,8 +1931,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - fedora-38-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: fedora-38 nox-session: ci-test-onedir @@ -2565,8 +1953,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - opensuse-15-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: opensuse-15 nox-session: ci-test-onedir @@ -2587,8 +1975,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - photonos-3-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: photonos-3 nox-session: ci-test-onedir @@ -2609,13 +1997,13 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - photonos-3-arm64-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: photonos-3-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 nox-version: 2022.8.7 gh-actions-python-version: "3.10" testrun: ${{ needs.prepare-workflow.outputs.testrun }} @@ -2631,8 +2019,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - photonos-4-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: photonos-4 nox-session: ci-test-onedir @@ -2654,13 +2042,13 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - photonos-4-arm64-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: photonos-4-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 nox-version: 2022.8.7 gh-actions-python-version: "3.10" testrun: ${{ needs.prepare-workflow.outputs.testrun }} @@ -2677,8 +2065,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - photonos-5-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: photonos-5 nox-session: ci-test-onedir @@ -2700,13 +2088,13 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - photonos-5-arm64-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: photonos-5-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 nox-version: 2022.8.7 gh-actions-python-version: "3.10" testrun: ${{ needs.prepare-workflow.outputs.testrun }} @@ -2723,8 +2111,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - ubuntu-2004-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: ubuntu-20.04 nox-session: ci-test-onedir @@ -2745,13 +2133,13 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - ubuntu-2004-arm64-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: ubuntu-20.04-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 nox-version: 2022.8.7 gh-actions-python-version: "3.10" testrun: ${{ needs.prepare-workflow.outputs.testrun }} @@ -2767,8 +2155,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - ubuntu-2204-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: ubuntu-22.04 nox-session: ci-test-onedir @@ -2789,13 +2177,13 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - ubuntu-2204-arm64-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: ubuntu-22.04-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 nox-version: 2022.8.7 gh-actions-python-version: "3.10" testrun: ${{ needs.prepare-workflow.outputs.testrun }} @@ -2812,47 +2200,11 @@ jobs: runs-on: ubuntu-latest needs: - prepare-workflow - - windows-2016-ci-deps - - windows-2019-ci-deps - - windows-2022-ci-deps - - macos-12-ci-deps - - macos-13-ci-deps - - macos-13-xlarge-ci-deps - - almalinux-8-ci-deps - - almalinux-8-arm64-ci-deps - - almalinux-9-ci-deps - - almalinux-9-arm64-ci-deps - - amazonlinux-2-ci-deps - - amazonlinux-2-arm64-ci-deps - - amazonlinux-2023-ci-deps - - amazonlinux-2023-arm64-ci-deps - - archlinux-lts-ci-deps - - centos-7-ci-deps - - centos-7-arm64-ci-deps - - centosstream-8-ci-deps - - centosstream-8-arm64-ci-deps - - centosstream-9-ci-deps - - centosstream-9-arm64-ci-deps - - debian-10-ci-deps - - debian-11-ci-deps - - debian-11-arm64-ci-deps - - debian-12-ci-deps - - debian-12-arm64-ci-deps - - fedora-37-ci-deps - - fedora-37-arm64-ci-deps - - fedora-38-ci-deps - - fedora-38-arm64-ci-deps - - opensuse-15-ci-deps - - photonos-3-ci-deps - - photonos-3-arm64-ci-deps - - photonos-4-ci-deps - - photonos-4-arm64-ci-deps - - photonos-5-ci-deps - - photonos-5-arm64-ci-deps - - ubuntu-2004-ci-deps - - ubuntu-2004-arm64-ci-deps - - ubuntu-2204-ci-deps - - ubuntu-2204-arm64-ci-deps + - windows-amd64-ci-deps + - macos-x86_64-ci-deps + - macos-arm64-ci-deps + - linux-x86_64-ci-deps + - linux-arm64-ci-deps - windows-2016 - windows-2019 - windows-2022 @@ -3015,47 +2367,11 @@ jobs: - build-windows-pkgs-src - build-macos-pkgs-src - combine-all-code-coverage - - windows-2016-ci-deps - - windows-2019-ci-deps - - windows-2022-ci-deps - - macos-12-ci-deps - - macos-13-ci-deps - - macos-13-xlarge-ci-deps - - almalinux-8-ci-deps - - almalinux-8-arm64-ci-deps - - almalinux-9-ci-deps - - almalinux-9-arm64-ci-deps - - amazonlinux-2-ci-deps - - amazonlinux-2-arm64-ci-deps - - amazonlinux-2023-ci-deps - - amazonlinux-2023-arm64-ci-deps - - archlinux-lts-ci-deps - - centos-7-ci-deps - - centos-7-arm64-ci-deps - - centosstream-8-ci-deps - - centosstream-8-arm64-ci-deps - - centosstream-9-ci-deps - - centosstream-9-arm64-ci-deps - - debian-10-ci-deps - - debian-11-ci-deps - - debian-11-arm64-ci-deps - - debian-12-ci-deps - - debian-12-arm64-ci-deps - - fedora-37-ci-deps - - fedora-37-arm64-ci-deps - - fedora-38-ci-deps - - fedora-38-arm64-ci-deps - - opensuse-15-ci-deps - - photonos-3-ci-deps - - photonos-3-arm64-ci-deps - - photonos-4-ci-deps - - photonos-4-arm64-ci-deps - - photonos-5-ci-deps - - photonos-5-arm64-ci-deps - - ubuntu-2004-ci-deps - - ubuntu-2004-arm64-ci-deps - - ubuntu-2204-ci-deps - - ubuntu-2204-arm64-ci-deps + - windows-amd64-ci-deps + - macos-x86_64-ci-deps + - macos-arm64-ci-deps + - linux-x86_64-ci-deps + - linux-arm64-ci-deps - windows-2016 - windows-2019 - windows-2022 diff --git a/.github/workflows/staging.yml b/.github/workflows/staging.yml index 43147cae346..b39ba8635ae 100644 --- a/.github/workflows/staging.yml +++ b/.github/workflows/staging.yml @@ -666,47 +666,13 @@ jobs: sign-packages: true secrets: inherit - windows-2016-ci-deps: - name: Windows 2016 Deps + windows-amd64-ci-deps: + name: Windows amd64 CI Deps if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - build-salt-onedir-windows - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: windows-2016 - nox-session: ci-test-onedir - platform: windows - arch: amd64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - windows-2019-ci-deps: - name: Windows 2019 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-windows - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: windows-2019 - nox-session: ci-test-onedir - platform: windows - arch: amd64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - windows-2022-ci-deps: - name: Windows 2022 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-windows - uses: ./.github/workflows/build-deps-ci-action.yml + uses: ./.github/workflows/build-deps-ci-action-windows.yml with: distro-slug: windows-2022 nox-session: ci-test-onedir @@ -717,8 +683,8 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - macos-12-ci-deps: - name: macOS 12 Deps + macos-x86_64-ci-deps: + name: MacOS x86_64 CI Deps if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} needs: - prepare-workflow @@ -734,25 +700,8 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - macos-13-ci-deps: - name: macOS 13 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-macos - uses: ./.github/workflows/build-deps-ci-action-macos.yml - with: - distro-slug: macos-13 - nox-session: ci-test-onedir - platform: darwin - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - macos-13-xlarge-ci-deps: - name: macOS 13 Arm64 Deps + macos-arm64-ci-deps: + name: MacOS arm64 CI Deps if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} needs: - prepare-workflow @@ -762,172 +711,19 @@ jobs: distro-slug: macos-13-xlarge nox-session: ci-test-onedir platform: darwin - arch: aarch64 + arch: arm64 nox-version: 2022.8.7 python-version: "3.10" salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - almalinux-8-ci-deps: - name: Alma Linux 8 Deps + linux-x86_64-ci-deps: + name: Linux x86_64 CI Deps if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: almalinux-8 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - almalinux-8-arm64-ci-deps: - name: Alma Linux 8 Arm64 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: almalinux-8-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - almalinux-9-ci-deps: - name: Alma Linux 9 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: almalinux-9 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - almalinux-9-arm64-ci-deps: - name: Alma Linux 9 Arm64 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: almalinux-9-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - amazonlinux-2-ci-deps: - name: Amazon Linux 2 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: amazonlinux-2 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - amazonlinux-2-arm64-ci-deps: - name: Amazon Linux 2 Arm64 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: amazonlinux-2-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - amazonlinux-2023-ci-deps: - name: Amazon Linux 2023 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: amazonlinux-2023 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - amazonlinux-2023-arm64-ci-deps: - name: Amazon Linux 2023 Arm64 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: amazonlinux-2023-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - archlinux-lts-ci-deps: - name: Arch Linux LTS Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: archlinux-lts - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - centos-7-ci-deps: - name: CentOS 7 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml + uses: ./.github/workflows/build-deps-ci-action-linux.yml with: distro-slug: centos-7 nox-session: ci-test-onedir @@ -938,426 +734,18 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - centos-7-arm64-ci-deps: - name: CentOS 7 Arm64 Deps + linux-arm64-ci-deps: + name: Linux arm64 CI Deps if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml + uses: ./.github/workflows/build-deps-ci-action-linux.yml with: distro-slug: centos-7-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - centosstream-8-ci-deps: - name: CentOS Stream 8 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: centosstream-8 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - centosstream-8-arm64-ci-deps: - name: CentOS Stream 8 Arm64 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: centosstream-8-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - centosstream-9-ci-deps: - name: CentOS Stream 9 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: centosstream-9 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - centosstream-9-arm64-ci-deps: - name: CentOS Stream 9 Arm64 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: centosstream-9-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - debian-10-ci-deps: - name: Debian 10 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: debian-10 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - debian-11-ci-deps: - name: Debian 11 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: debian-11 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - debian-11-arm64-ci-deps: - name: Debian 11 Arm64 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: debian-11-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - debian-12-ci-deps: - name: Debian 12 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: debian-12 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - debian-12-arm64-ci-deps: - name: Debian 12 Arm64 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: debian-12-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - fedora-37-ci-deps: - name: Fedora 37 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: fedora-37 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - fedora-37-arm64-ci-deps: - name: Fedora 37 Arm64 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: fedora-37-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - fedora-38-ci-deps: - name: Fedora 38 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: fedora-38 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - fedora-38-arm64-ci-deps: - name: Fedora 38 Arm64 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: fedora-38-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - opensuse-15-ci-deps: - name: Opensuse 15 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: opensuse-15 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - photonos-3-ci-deps: - name: Photon OS 3 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: photonos-3 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - photonos-3-arm64-ci-deps: - name: Photon OS 3 Arm64 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: photonos-3-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - photonos-4-ci-deps: - name: Photon OS 4 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: photonos-4 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - photonos-4-arm64-ci-deps: - name: Photon OS 4 Arm64 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: photonos-4-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - photonos-5-ci-deps: - name: Photon OS 5 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: photonos-5 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - photonos-5-arm64-ci-deps: - name: Photon OS 5 Arm64 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: photonos-5-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - ubuntu-2004-ci-deps: - name: Ubuntu 20.04 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: ubuntu-20.04 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - ubuntu-2004-arm64-ci-deps: - name: Ubuntu 20.04 Arm64 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: ubuntu-20.04-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - ubuntu-2204-ci-deps: - name: Ubuntu 22.04 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: ubuntu-22.04 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - ubuntu-2204-arm64-ci-deps: - name: Ubuntu 22.04 Arm64 Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action.yml - with: - distro-slug: ubuntu-22.04-arm64 - nox-session: ci-test-onedir - platform: linux - arch: aarch64 + arch: arm64 nox-version: 2022.8.7 python-version: "3.10" salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" @@ -1369,8 +757,8 @@ jobs: needs: - prepare-workflow - build-rpm-pkgs-onedir - - amazonlinux-2-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: amazonlinux-2 nox-session: ci-test-onedir @@ -1391,13 +779,13 @@ jobs: needs: - prepare-workflow - build-rpm-pkgs-onedir - - amazonlinux-2-arm64-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: amazonlinux-2-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" pkg-type: rpm nox-version: 2022.8.7 @@ -1413,8 +801,8 @@ jobs: needs: - prepare-workflow - build-rpm-pkgs-onedir - - amazonlinux-2023-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: amazonlinux-2023 nox-session: ci-test-onedir @@ -1435,13 +823,13 @@ jobs: needs: - prepare-workflow - build-rpm-pkgs-onedir - - amazonlinux-2023-arm64-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: amazonlinux-2023-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" pkg-type: rpm nox-version: 2022.8.7 @@ -1457,8 +845,8 @@ jobs: needs: - prepare-workflow - build-rpm-pkgs-onedir - - centos-7-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: centos-7 nox-session: ci-test-onedir @@ -1479,8 +867,8 @@ jobs: needs: - prepare-workflow - build-rpm-pkgs-onedir - - centosstream-8-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: centosstream-8 nox-session: ci-test-onedir @@ -1501,8 +889,8 @@ jobs: needs: - prepare-workflow - build-rpm-pkgs-onedir - - centosstream-9-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: centosstream-9 nox-session: ci-test-onedir @@ -1523,13 +911,13 @@ jobs: needs: - prepare-workflow - build-rpm-pkgs-onedir - - centosstream-9-arm64-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: centosstream-9-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" pkg-type: rpm nox-version: 2022.8.7 @@ -1545,8 +933,8 @@ jobs: needs: - prepare-workflow - build-deb-pkgs-onedir - - debian-10-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: debian-10 nox-session: ci-test-onedir @@ -1567,8 +955,8 @@ jobs: needs: - prepare-workflow - build-deb-pkgs-onedir - - debian-11-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: debian-11 nox-session: ci-test-onedir @@ -1589,13 +977,13 @@ jobs: needs: - prepare-workflow - build-deb-pkgs-onedir - - debian-11-arm64-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: debian-11-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" pkg-type: deb nox-version: 2022.8.7 @@ -1611,8 +999,8 @@ jobs: needs: - prepare-workflow - build-deb-pkgs-onedir - - debian-12-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: debian-12 nox-session: ci-test-onedir @@ -1633,13 +1021,13 @@ jobs: needs: - prepare-workflow - build-deb-pkgs-onedir - - debian-12-arm64-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: debian-12-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" pkg-type: deb nox-version: 2022.8.7 @@ -1655,8 +1043,8 @@ jobs: needs: - prepare-workflow - build-rpm-pkgs-onedir - - photonos-3-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: photonos-3 nox-session: ci-test-onedir @@ -1677,13 +1065,13 @@ jobs: needs: - prepare-workflow - build-rpm-pkgs-onedir - - photonos-3-arm64-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: photonos-3-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" pkg-type: rpm nox-version: 2022.8.7 @@ -1699,8 +1087,8 @@ jobs: needs: - prepare-workflow - build-rpm-pkgs-onedir - - photonos-4-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: photonos-4 nox-session: ci-test-onedir @@ -1722,13 +1110,13 @@ jobs: needs: - prepare-workflow - build-rpm-pkgs-onedir - - photonos-4-arm64-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: photonos-4-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" pkg-type: rpm nox-version: 2022.8.7 @@ -1745,8 +1133,8 @@ jobs: needs: - prepare-workflow - build-rpm-pkgs-onedir - - photonos-5-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: photonos-5 nox-session: ci-test-onedir @@ -1768,13 +1156,13 @@ jobs: needs: - prepare-workflow - build-rpm-pkgs-onedir - - photonos-5-arm64-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: photonos-5-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" pkg-type: rpm nox-version: 2022.8.7 @@ -1791,8 +1179,8 @@ jobs: needs: - prepare-workflow - build-deb-pkgs-onedir - - ubuntu-2004-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: ubuntu-20.04 nox-session: ci-test-onedir @@ -1813,13 +1201,13 @@ jobs: needs: - prepare-workflow - build-deb-pkgs-onedir - - ubuntu-2004-arm64-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: ubuntu-20.04-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" pkg-type: deb nox-version: 2022.8.7 @@ -1835,8 +1223,8 @@ jobs: needs: - prepare-workflow - build-deb-pkgs-onedir - - ubuntu-2204-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: ubuntu-22.04 nox-session: ci-test-onedir @@ -1857,13 +1245,13 @@ jobs: needs: - prepare-workflow - build-deb-pkgs-onedir - - ubuntu-2204-arm64-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: ubuntu-22.04-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" pkg-type: deb nox-version: 2022.8.7 @@ -1879,7 +1267,7 @@ jobs: needs: - prepare-workflow - build-macos-pkgs-onedir - - macos-12-ci-deps + - macos-x86_64-ci-deps uses: ./.github/workflows/test-packages-action-macos.yml with: distro-slug: macos-12 @@ -1901,7 +1289,7 @@ jobs: needs: - prepare-workflow - build-macos-pkgs-onedir - - macos-13-ci-deps + - macos-x86_64-ci-deps uses: ./.github/workflows/test-packages-action-macos.yml with: distro-slug: macos-13 @@ -1923,13 +1311,13 @@ jobs: needs: - prepare-workflow - build-macos-pkgs-onedir - - macos-13-xlarge-ci-deps + - macos-arm64-ci-deps uses: ./.github/workflows/test-packages-action-macos.yml with: distro-slug: macos-13-xlarge nox-session: ci-test-onedir platform: darwin - arch: aarch64 + arch: arm64 salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" pkg-type: macos nox-version: 2022.8.7 @@ -1945,8 +1333,8 @@ jobs: needs: - prepare-workflow - build-windows-pkgs-onedir - - windows-2016-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - windows-amd64-ci-deps + uses: ./.github/workflows/test-packages-action-windows.yml with: distro-slug: windows-2016 nox-session: ci-test-onedir @@ -1967,8 +1355,8 @@ jobs: needs: - prepare-workflow - build-windows-pkgs-onedir - - windows-2016-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - windows-amd64-ci-deps + uses: ./.github/workflows/test-packages-action-windows.yml with: distro-slug: windows-2016 nox-session: ci-test-onedir @@ -1989,8 +1377,8 @@ jobs: needs: - prepare-workflow - build-windows-pkgs-onedir - - windows-2019-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - windows-amd64-ci-deps + uses: ./.github/workflows/test-packages-action-windows.yml with: distro-slug: windows-2019 nox-session: ci-test-onedir @@ -2011,8 +1399,8 @@ jobs: needs: - prepare-workflow - build-windows-pkgs-onedir - - windows-2019-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - windows-amd64-ci-deps + uses: ./.github/workflows/test-packages-action-windows.yml with: distro-slug: windows-2019 nox-session: ci-test-onedir @@ -2033,8 +1421,8 @@ jobs: needs: - prepare-workflow - build-windows-pkgs-onedir - - windows-2022-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - windows-amd64-ci-deps + uses: ./.github/workflows/test-packages-action-windows.yml with: distro-slug: windows-2022 nox-session: ci-test-onedir @@ -2055,8 +1443,8 @@ jobs: needs: - prepare-workflow - build-windows-pkgs-onedir - - windows-2022-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - windows-amd64-ci-deps + uses: ./.github/workflows/test-packages-action-windows.yml with: distro-slug: windows-2022 nox-session: ci-test-onedir @@ -2076,8 +1464,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - windows-2016-ci-deps - uses: ./.github/workflows/test-action.yml + - windows-amd64-ci-deps + uses: ./.github/workflows/test-action-windows.yml with: distro-slug: windows-2016 nox-session: ci-test-onedir @@ -2098,8 +1486,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - windows-2019-ci-deps - uses: ./.github/workflows/test-action.yml + - windows-amd64-ci-deps + uses: ./.github/workflows/test-action-windows.yml with: distro-slug: windows-2019 nox-session: ci-test-onedir @@ -2120,8 +1508,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - windows-2022-ci-deps - uses: ./.github/workflows/test-action.yml + - windows-amd64-ci-deps + uses: ./.github/workflows/test-action-windows.yml with: distro-slug: windows-2022 nox-session: ci-test-onedir @@ -2142,7 +1530,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} needs: - prepare-workflow - - macos-12-ci-deps + - macos-x86_64-ci-deps uses: ./.github/workflows/test-action-macos.yml with: distro-slug: macos-12 @@ -2164,7 +1552,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} needs: - prepare-workflow - - macos-13-ci-deps + - macos-x86_64-ci-deps uses: ./.github/workflows/test-action-macos.yml with: distro-slug: macos-13 @@ -2186,13 +1574,13 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} needs: - prepare-workflow - - macos-13-xlarge-ci-deps + - macos-arm64-ci-deps uses: ./.github/workflows/test-action-macos.yml with: distro-slug: macos-13-xlarge nox-session: ci-test-onedir platform: darwin - arch: aarch64 + arch: arm64 nox-version: 2022.8.7 gh-actions-python-version: "3.10" testrun: ${{ needs.prepare-workflow.outputs.testrun }} @@ -2208,8 +1596,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - almalinux-8-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: almalinux-8 nox-session: ci-test-onedir @@ -2230,8 +1618,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - almalinux-9-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: almalinux-9 nox-session: ci-test-onedir @@ -2252,8 +1640,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - amazonlinux-2-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: amazonlinux-2 nox-session: ci-test-onedir @@ -2274,13 +1662,13 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - amazonlinux-2-arm64-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: amazonlinux-2-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 nox-version: 2022.8.7 gh-actions-python-version: "3.10" testrun: ${{ needs.prepare-workflow.outputs.testrun }} @@ -2296,8 +1684,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - amazonlinux-2023-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: amazonlinux-2023 nox-session: ci-test-onedir @@ -2318,13 +1706,13 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - amazonlinux-2023-arm64-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: amazonlinux-2023-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 nox-version: 2022.8.7 gh-actions-python-version: "3.10" testrun: ${{ needs.prepare-workflow.outputs.testrun }} @@ -2340,8 +1728,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - archlinux-lts-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: archlinux-lts nox-session: ci-test-onedir @@ -2362,8 +1750,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - centos-7-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: centos-7 nox-session: ci-test-onedir @@ -2384,8 +1772,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - centosstream-8-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: centosstream-8 nox-session: ci-test-onedir @@ -2406,8 +1794,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - centosstream-9-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: centosstream-9 nox-session: ci-test-onedir @@ -2428,8 +1816,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - debian-10-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: debian-10 nox-session: ci-test-onedir @@ -2450,8 +1838,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - debian-11-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: debian-11 nox-session: ci-test-onedir @@ -2472,13 +1860,13 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - debian-11-arm64-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: debian-11-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 nox-version: 2022.8.7 gh-actions-python-version: "3.10" testrun: ${{ needs.prepare-workflow.outputs.testrun }} @@ -2494,8 +1882,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - debian-12-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: debian-12 nox-session: ci-test-onedir @@ -2516,13 +1904,13 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - debian-12-arm64-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: debian-12-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 nox-version: 2022.8.7 gh-actions-python-version: "3.10" testrun: ${{ needs.prepare-workflow.outputs.testrun }} @@ -2538,8 +1926,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - fedora-37-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: fedora-37 nox-session: ci-test-onedir @@ -2560,8 +1948,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - fedora-38-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: fedora-38 nox-session: ci-test-onedir @@ -2582,8 +1970,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - opensuse-15-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: opensuse-15 nox-session: ci-test-onedir @@ -2604,8 +1992,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - photonos-3-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: photonos-3 nox-session: ci-test-onedir @@ -2626,13 +2014,13 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - photonos-3-arm64-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: photonos-3-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 nox-version: 2022.8.7 gh-actions-python-version: "3.10" testrun: ${{ needs.prepare-workflow.outputs.testrun }} @@ -2648,8 +2036,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - photonos-4-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: photonos-4 nox-session: ci-test-onedir @@ -2671,13 +2059,13 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - photonos-4-arm64-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: photonos-4-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 nox-version: 2022.8.7 gh-actions-python-version: "3.10" testrun: ${{ needs.prepare-workflow.outputs.testrun }} @@ -2694,8 +2082,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - photonos-5-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: photonos-5 nox-session: ci-test-onedir @@ -2717,13 +2105,13 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - photonos-5-arm64-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: photonos-5-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 nox-version: 2022.8.7 gh-actions-python-version: "3.10" testrun: ${{ needs.prepare-workflow.outputs.testrun }} @@ -2740,8 +2128,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - ubuntu-2004-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: ubuntu-20.04 nox-session: ci-test-onedir @@ -2762,13 +2150,13 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - ubuntu-2004-arm64-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: ubuntu-20.04-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 nox-version: 2022.8.7 gh-actions-python-version: "3.10" testrun: ${{ needs.prepare-workflow.outputs.testrun }} @@ -2784,8 +2172,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - ubuntu-2204-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-x86_64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: ubuntu-22.04 nox-session: ci-test-onedir @@ -2806,13 +2194,13 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - ubuntu-2204-arm64-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-arm64-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: ubuntu-22.04-arm64 nox-session: ci-test-onedir platform: linux - arch: aarch64 + arch: arm64 nox-version: 2022.8.7 gh-actions-python-version: "3.10" testrun: ${{ needs.prepare-workflow.outputs.testrun }} @@ -3724,43 +3112,11 @@ jobs: needs: - prepare-workflow - publish-repositories - - almalinux-8-arm64-ci-deps - - almalinux-8-ci-deps - - almalinux-9-arm64-ci-deps - - almalinux-9-ci-deps - - amazonlinux-2-arm64-ci-deps - - amazonlinux-2-ci-deps - - amazonlinux-2023-arm64-ci-deps - - amazonlinux-2023-ci-deps - - centos-7-arm64-ci-deps - - centos-7-ci-deps - - centosstream-8-arm64-ci-deps - - centosstream-8-ci-deps - - centosstream-9-arm64-ci-deps - - centosstream-9-ci-deps - - debian-10-ci-deps - - debian-11-arm64-ci-deps - - debian-11-ci-deps - - debian-12-arm64-ci-deps - - debian-12-ci-deps - - fedora-37-arm64-ci-deps - - fedora-37-ci-deps - - fedora-38-arm64-ci-deps - - fedora-38-ci-deps - - macos-12-ci-deps - - macos-13-ci-deps - - macos-13-xlarge-ci-deps - - photonos-3-arm64-ci-deps - - photonos-3-ci-deps - - photonos-4-arm64-ci-deps - - photonos-4-ci-deps - - photonos-5-arm64-ci-deps - - photonos-5-ci-deps - - ubuntu-2004-arm64-ci-deps - - ubuntu-2004-ci-deps - - ubuntu-2204-arm64-ci-deps - - ubuntu-2204-ci-deps - - windows-2022-ci-deps + - linux-arm64-ci-deps + - linux-x86_64-ci-deps + - macos-arm64-ci-deps + - macos-x86_64-ci-deps + - windows-amd64-ci-deps - build-salt-onedir-linux - build-salt-onedir-macos - build-salt-onedir-windows @@ -3782,47 +3138,11 @@ jobs: needs: - prepare-workflow - upload-release-artifacts - - windows-2016-ci-deps - - windows-2019-ci-deps - - windows-2022-ci-deps - - macos-12-ci-deps - - macos-13-ci-deps - - macos-13-xlarge-ci-deps - - almalinux-8-ci-deps - - almalinux-8-arm64-ci-deps - - almalinux-9-ci-deps - - almalinux-9-arm64-ci-deps - - amazonlinux-2-ci-deps - - amazonlinux-2-arm64-ci-deps - - amazonlinux-2023-ci-deps - - amazonlinux-2023-arm64-ci-deps - - archlinux-lts-ci-deps - - centos-7-ci-deps - - centos-7-arm64-ci-deps - - centosstream-8-ci-deps - - centosstream-8-arm64-ci-deps - - centosstream-9-ci-deps - - centosstream-9-arm64-ci-deps - - debian-10-ci-deps - - debian-11-ci-deps - - debian-11-arm64-ci-deps - - debian-12-ci-deps - - debian-12-arm64-ci-deps - - fedora-37-ci-deps - - fedora-37-arm64-ci-deps - - fedora-38-ci-deps - - fedora-38-arm64-ci-deps - - opensuse-15-ci-deps - - photonos-3-ci-deps - - photonos-3-arm64-ci-deps - - photonos-4-ci-deps - - photonos-4-arm64-ci-deps - - photonos-5-ci-deps - - photonos-5-arm64-ci-deps - - ubuntu-2004-ci-deps - - ubuntu-2004-arm64-ci-deps - - ubuntu-2204-ci-deps - - ubuntu-2204-arm64-ci-deps + - windows-amd64-ci-deps + - macos-x86_64-ci-deps + - macos-arm64-ci-deps + - linux-x86_64-ci-deps + - linux-arm64-ci-deps - windows-2016 - windows-2019 - windows-2022 diff --git a/.github/workflows/templates/build-ci-deps.yml.jinja b/.github/workflows/templates/build-ci-deps.yml.jinja index eb3622eb52f..fa5a0bc971f 100644 --- a/.github/workflows/templates/build-ci-deps.yml.jinja +++ b/.github/workflows/templates/build-ci-deps.yml.jinja @@ -1,9 +1,9 @@ - <%- for slug, display_name, arch in build_ci_deps_listing["windows"] %> + <%- for arch, build_distro_slug in build_ci_deps_listing["windows"] %> - <{ slug.replace(".", "") }>-ci-deps: - <%- do test_salt_needs.append(slug.replace(".", "") + "-ci-deps") %> - name: <{ display_name }> Deps + windows-<{ arch }>-ci-deps: + <%- do test_salt_needs.append("windows-" + arch + "-ci-deps") %> + name: Windows <{ arch }> CI Deps <%- if workflow_slug != 'release' %> if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} <%- endif %> @@ -14,12 +14,12 @@ <%- else %> - download-onedir-artifact <%- endif %> - uses: ./.github/workflows/build-deps-ci-action.yml + uses: ./.github/workflows/build-deps-ci-action-windows.yml with: - distro-slug: <{ slug }> + distro-slug: <{ build_distro_slug }> nox-session: ci-test-onedir platform: windows - arch: amd64 + arch: <{ arch }> nox-version: <{ nox_version }> python-version: "<{ gh_actions_workflows_python_version }>" salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" @@ -28,11 +28,11 @@ <%- endfor %> - <%- for slug, display_name, arch in build_ci_deps_listing["macos"] %> + <%- for arch, build_distro_slug in build_ci_deps_listing["macos"] %> - <{ slug.replace(".", "") }>-ci-deps: - <%- do test_salt_needs.append(slug.replace(".", "") + "-ci-deps") %> - name: <{ display_name }> Deps + macos-<{ arch }>-ci-deps: + <%- do test_salt_needs.append("macos-" + arch + "-ci-deps") %> + name: MacOS <{ arch }> CI Deps <%- if workflow_slug != 'release' %> if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} <%- endif %> @@ -45,7 +45,7 @@ <%- endif %> uses: ./.github/workflows/build-deps-ci-action-macos.yml with: - distro-slug: <{ slug }> + distro-slug: <{ build_distro_slug }> nox-session: ci-test-onedir platform: darwin arch: <{ arch }> @@ -57,11 +57,11 @@ <%- endfor %> - <%- for slug, display_name, arch in build_ci_deps_listing["linux"] %> + <%- for arch, build_distro_slug in build_ci_deps_listing["linux"] %> - <{ slug.replace(".", "") }>-ci-deps: - <%- do test_salt_needs.append(slug.replace(".", "") + "-ci-deps") %> - name: <{ display_name }> Deps + linux-<{ arch }>-ci-deps: + <%- do test_salt_needs.append("linux-" + arch + "-ci-deps") %> + name: Linux <{ arch }> CI Deps <%- if workflow_slug != 'release' %> if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} <%- endif %> @@ -72,9 +72,9 @@ <%- else %> - download-onedir-artifact <%- endif %> - uses: ./.github/workflows/build-deps-ci-action.yml + uses: ./.github/workflows/build-deps-ci-action-linux.yml with: - distro-slug: <{ slug }> + distro-slug: <{ build_distro_slug }> nox-session: ci-test-onedir platform: linux arch: <{ arch }> diff --git a/.github/workflows/templates/test-package-downloads-action.yml.jinja b/.github/workflows/templates/test-package-downloads-action.yml.jinja index 4f9502d7aae..d92b2540e25 100644 --- a/.github/workflows/templates/test-package-downloads-action.yml.jinja +++ b/.github/workflows/templates/test-package-downloads-action.yml.jinja @@ -94,11 +94,11 @@ jobs: cd artifacts tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-linux-${{ matrix.arch == 'arm64' && 'aarch64' || matrix.arch }}.tar.xz - - name: Download cached nox.${{ matrix.distro-slug }}.tar.* for session ${{ inputs.nox-session }} + - name: Download cached nox.linux.${{ matrix.arch }}.tar.* for session ${{ inputs.nox-session }} uses: actions/cache@v3.3.1 with: - path: nox.${{ matrix.distro-slug }}.tar.* - key: ${{ inputs.cache-prefix }}|testrun-deps|${{ matrix.arch == 'arm64' && 'aarch64' || matrix.arch }}|${{ matrix.distro-slug }}|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ + path: nox.linux.${{ matrix.arch }}.tar.* + key: ${{ inputs.cache-prefix }}|testrun-deps|${{ matrix.arch }}|linux|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py') }} # If we get a cache miss here it means the dependencies step failed to save the cache @@ -342,11 +342,11 @@ jobs: run: | python3 -m pip install 'nox==${{ inputs.nox-version }}' - - name: Download cached nox.${{ matrix.distro-slug }}.tar.* for session ${{ inputs.nox-session }} + - name: Download cached nox.macos.${{ matrix.arch }}.tar.* for session ${{ inputs.nox-session }} uses: actions/cache@v3.3.1 with: - path: nox.${{ matrix.distro-slug }}.tar.* - key: ${{ inputs.cache-prefix }}|testrun-deps|${{ matrix.arch == 'arm64' && 'aarch64' || matrix.arch }}|${{ matrix.distro-slug }}|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ + path: nox.macos.${{ matrix.arch }}.tar.* + key: ${{ inputs.cache-prefix }}|testrun-deps|${{ matrix.arch }}|macos|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py') }} # If we get a cache miss here it means the dependencies step failed to save the cache @@ -354,7 +354,7 @@ jobs: - name: Decompress .nox Directory run: | - nox --force-color -e decompress-dependencies -- ${{ matrix.distro-slug }} + nox --force-color -e decompress-dependencies -- macos ${{ matrix.arch }} - name: Show System Info & Test Plan env: @@ -545,11 +545,11 @@ jobs: cd artifacts tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-windows-${{ matrix.arch }}.tar.xz - - name: Download cached nox.${{ matrix.distro-slug }}.tar.* for session ${{ inputs.nox-session }} + - name: Download cached nox.windows.${{ matrix.arch }}.tar.* for session ${{ inputs.nox-session }} uses: actions/cache@v3.3.1 with: - path: nox.${{ matrix.distro-slug }}.tar.* - key: ${{ inputs.cache-prefix }}|testrun-deps|${{ matrix.arch }}|${{ matrix.distro-slug }}|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ + path: nox.windows.${{ matrix.arch }}.tar.* + key: ${{ inputs.cache-prefix }}|testrun-deps|${{ matrix.arch }}|windows|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py') }} # If we get a cache miss here it means the dependencies step failed to save the cache diff --git a/.github/workflows/templates/test-salt-pkg.yml.jinja b/.github/workflows/templates/test-salt-pkg.yml.jinja index eb8b43d071f..935dbe1cd38 100644 --- a/.github/workflows/templates/test-salt-pkg.yml.jinja +++ b/.github/workflows/templates/test-salt-pkg.yml.jinja @@ -8,8 +8,8 @@ needs: - prepare-workflow - build-<{ pkg_type }>-pkgs-onedir - - <{ slug.replace(".", "") }>-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - linux-<{ arch }>-ci-deps + uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: <{ slug }> nox-session: ci-test-onedir @@ -41,7 +41,7 @@ needs: - prepare-workflow - build-macos-pkgs-onedir - - <{ slug.replace(".", "") }>-ci-deps + - macos-<{ arch }>-ci-deps uses: ./.github/workflows/test-packages-action-macos.yml with: distro-slug: <{ slug }> @@ -71,8 +71,8 @@ needs: - prepare-workflow - build-windows-pkgs-onedir - - <{ slug.replace(".", "") }>-ci-deps - uses: ./.github/workflows/test-packages-action.yml + - windows-<{ arch }>-ci-deps + uses: ./.github/workflows/test-packages-action-windows.yml with: distro-slug: <{ slug }> nox-session: ci-test-onedir diff --git a/.github/workflows/templates/test-salt.yml.jinja b/.github/workflows/templates/test-salt.yml.jinja index 9c25d7f0a8c..5d9e0355f97 100644 --- a/.github/workflows/templates/test-salt.yml.jinja +++ b/.github/workflows/templates/test-salt.yml.jinja @@ -12,8 +12,8 @@ if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - <{ slug.replace(".", "") }>-ci-deps - uses: ./.github/workflows/test-action.yml + - windows-<{ arch }>-ci-deps + uses: ./.github/workflows/test-action-windows.yml with: distro-slug: <{ slug }> nox-session: ci-test-onedir @@ -40,7 +40,7 @@ if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} needs: - prepare-workflow - - <{ slug.replace(".", "") }>-ci-deps + - macos-<{ arch }>-ci-deps uses: ./.github/workflows/test-action-macos.yml with: distro-slug: <{ slug }> @@ -67,8 +67,8 @@ if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - <{ slug.replace(".", "") }>-ci-deps - uses: ./.github/workflows/test-action.yml + - linux-<{ arch }>-ci-deps + uses: ./.github/workflows/test-action-linux.yml with: distro-slug: <{ slug }> nox-session: ci-test-onedir diff --git a/.github/workflows/test-action.yml b/.github/workflows/test-action-linux.yml similarity index 98% rename from .github/workflows/test-action.yml rename to .github/workflows/test-action-linux.yml index f8635539cbd..6a5ba0ae951 100644 --- a/.github/workflows/test-action.yml +++ b/.github/workflows/test-action-linux.yml @@ -155,11 +155,11 @@ jobs: cd artifacts tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-${{ inputs.platform }}-${{ inputs.arch }}.tar.xz - - name: Download cached nox.${{ inputs.distro-slug }}.tar.* for session ${{ inputs.nox-session }} + - name: Download cached nox.linux.${{ inputs.arch }}.tar.* for session ${{ inputs.nox-session }} uses: actions/cache@v3.3.1 with: - path: nox.${{ inputs.distro-slug }}.tar.* - key: ${{ inputs.cache-prefix }}|testrun-deps|${{ inputs.arch }}|${{ inputs.distro-slug }}|${{ inputs.nox-session }}|${{ inputs.gh-actions-python-version }}|${{ + path: nox.linux.${{ inputs.arch }}.tar.* + key: ${{ inputs.cache-prefix }}|testrun-deps|${{ inputs.arch }}|linux|${{ inputs.nox-session }}|${{ inputs.gh-actions-python-version }}|${{ hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py') }} # If we get a cache miss here it means the dependencies step failed to save the cache diff --git a/.github/workflows/test-action-macos.yml b/.github/workflows/test-action-macos.yml index 5c113f26489..605f16fc61f 100644 --- a/.github/workflows/test-action-macos.yml +++ b/.github/workflows/test-action-macos.yml @@ -145,11 +145,11 @@ jobs: run: | brew install tree - - name: Download cached nox.${{ inputs.distro-slug }}.tar.* for session ${{ inputs.nox-session }} + - name: Download cached nox.macos.${{ inputs.arch }}.tar.* for session ${{ inputs.nox-session }} uses: actions/cache@v3.3.1 with: - path: nox.${{ inputs.distro-slug }}.tar.* - key: ${{ inputs.cache-prefix }}|testrun-deps|${{ inputs.arch }}|${{ inputs.distro-slug }}|${{ inputs.nox-session }}|${{ inputs.gh-actions-python-version }}|${{ + path: nox.macos.${{ inputs.arch }}.tar.* + key: ${{ inputs.cache-prefix }}|testrun-deps|${{ inputs.arch }}|macos|${{ inputs.nox-session }}|${{ inputs.gh-actions-python-version }}|${{ hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py') }} # If we get a cache miss here it means the dependencies step failed to save the cache @@ -166,7 +166,7 @@ jobs: - name: Decompress .nox Directory run: | - nox --force-color -e decompress-dependencies -- ${{ inputs.distro-slug }} + nox --force-color -e decompress-dependencies -- macos ${{ inputs.arch }} - name: Download testrun-changed-files.txt if: ${{ fromJSON(inputs.testrun)['type'] != 'full' }} diff --git a/.github/workflows/test-action-windows.yml b/.github/workflows/test-action-windows.yml new file mode 100644 index 00000000000..769bc03f48b --- /dev/null +++ b/.github/workflows/test-action-windows.yml @@ -0,0 +1,399 @@ +--- +name: Test Artifact + +on: + workflow_call: + inputs: + distro-slug: + required: true + type: string + description: The OS slug to run tests against + nox-session: + required: true + type: string + description: The nox session to run + testrun: + required: true + type: string + description: JSON string containing information about what and how to run the test suite + salt-version: + type: string + required: true + description: The Salt version to set prior to running tests. + cache-prefix: + required: true + type: string + description: Seed used to invalidate caches + platform: + required: true + type: string + description: The platform being tested + arch: + required: true + type: string + description: The platform arch being tested + nox-version: + required: true + type: string + description: The nox version to install + gh-actions-python-version: + required: false + type: string + description: The python version to run tests with + default: "3.10" + fips: + required: false + type: boolean + default: false + description: Test run with FIPS enabled + package-name: + required: false + type: string + description: The onedir package name to use + default: salt + skip-code-coverage: + required: false + type: boolean + description: Skip code coverage + default: false + skip-junit-reports: + required: false + type: boolean + description: Skip Publishing JUnit Reports + default: false + workflow-slug: + required: false + type: string + description: Which workflow is running. + default: ci + default-timeout: + required: false + type: number + description: Timeout, in minutes, for the test job(Default 360, 6 hours). + default: 360 + +env: + COLUMNS: 190 + AWS_MAX_ATTEMPTS: "10" + AWS_RETRY_MODE: "adaptive" + PIP_INDEX_URL: https://pypi-proxy.saltstack.net/root/local/+simple/ + PIP_EXTRA_INDEX_URL: https://pypi.org/simple + +jobs: + + generate-matrix: + name: Test Matrix + runs-on: + - self-hosted + - linux + - x86_64 + outputs: + matrix-include: ${{ steps.generate-matrix.outputs.matrix }} + steps: + + - name: "Throttle Builds" + shell: bash + run: | + t=$(shuf -i 1-30 -n 1); echo "Sleeping $t seconds"; sleep "$t" + + - name: Checkout Source Code + uses: actions/checkout@v4 + + - name: Setup Python Tools Scripts + uses: ./.github/actions/setup-python-tools-scripts + with: + cache-prefix: ${{ inputs.cache-prefix }} + + - name: Generate Test Matrix + id: generate-matrix + run: | + tools ci matrix --workflow=${{ inputs.workflow-slug }} ${{ fromJSON(inputs.testrun)['type'] == 'full' && '--full ' || '' }}${{ inputs.fips && '--fips ' || '' }}${{ inputs.distro-slug }} + + test: + name: Test + runs-on: + - self-hosted + - linux + - bastion + # Full test runs. Each chunk should never take more than 2 hours. + # Partial test runs(no chunk parallelization), 6 Hours + timeout-minutes: ${{ fromJSON(inputs.testrun)['type'] == 'full' && inputs.default-timeout || 360 }} + needs: + - generate-matrix + strategy: + fail-fast: false + matrix: + include: ${{ fromJSON(needs.generate-matrix.outputs.matrix-include) }} + env: + SALT_TRANSPORT: ${{ matrix.transport }} + TEST_GROUP: ${{ matrix.test-group || 1 }} + + steps: + + - name: "Throttle Builds" + shell: bash + run: | + t=$(python3 -c 'import random, sys; sys.stdout.write(str(random.randint(1, 15)))'); echo "Sleeping $t seconds"; sleep "$t" + + - name: Checkout Source Code + uses: actions/checkout@v4 + + - name: Setup Salt Version + run: | + echo "${{ inputs.salt-version }}" > salt/_version.txt + + - name: Download Onedir Tarball as an Artifact + uses: actions/download-artifact@v3 + with: + name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-${{ inputs.platform }}-${{ inputs.arch }}.tar.xz + path: artifacts/ + + - name: Decompress Onedir Tarball + shell: bash + run: | + python3 -c "import os; os.makedirs('artifacts', exist_ok=True)" + cd artifacts + tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-${{ inputs.platform }}-${{ inputs.arch }}.tar.xz + + - name: Download cached nox.windows.${{ inputs.arch }}.tar.* for session ${{ inputs.nox-session }} + uses: actions/cache@v3.3.1 + with: + path: nox.windows.${{ inputs.arch }}.tar.* + key: ${{ inputs.cache-prefix }}|testrun-deps|${{ inputs.arch }}|windows|${{ inputs.nox-session }}|${{ inputs.gh-actions-python-version }}|${{ + hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py') + }} + # If we get a cache miss here it means the dependencies step failed to save the cache + fail-on-cache-miss: true + + - name: PyPi Proxy + run: | + sed -i '7s;^;--index-url=https://pypi-proxy.saltstack.net/root/local/+simple/ --extra-index-url=https://pypi.org/simple\n;' requirements/static/ci/*/*.txt + + - name: Setup Python Tools Scripts + uses: ./.github/actions/setup-python-tools-scripts + with: + cache-prefix: ${{ inputs.cache-prefix }} + + - name: Download testrun-changed-files.txt + if: ${{ fromJSON(inputs.testrun)['type'] != 'full' }} + uses: actions/download-artifact@v3 + with: + name: testrun-changed-files.txt + + - name: Get Salt Project GitHub Actions Bot Environment + run: | + TOKEN=$(curl -sS -f -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 30") + SPB_ENVIRONMENT=$(curl -sS -f -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/tags/instance/spb:environment) + echo "SPB_ENVIRONMENT=$SPB_ENVIRONMENT" >> "$GITHUB_ENV" + + - name: Start VM + id: spin-up-vm + env: + TESTS_CHUNK: ${{ matrix.tests-chunk }} + run: | + tools --timestamps vm create --environment "${SPB_ENVIRONMENT}" --retries=2 ${{ inputs.distro-slug }} + + - name: List Free Space + run: | + tools --timestamps vm ssh ${{ inputs.distro-slug }} -- df -h || true + + - name: Upload Checkout To VM + run: | + tools --timestamps vm rsync ${{ inputs.distro-slug }} + + - name: Decompress .nox Directory + run: | + tools --timestamps vm decompress-dependencies ${{ inputs.distro-slug }} + + - name: Show System Info & Test Plan + run: | + tools --timestamps --timeout-secs=1800 vm testplan --skip-requirements-install \ + --nox-session=${{ inputs.nox-session }} ${{ inputs.distro-slug }} \ + ${{ matrix.tests-chunk }} + + - name: Run Fast/Changed Tests + id: run-fast-changed-tests + if: ${{ fromJSON(inputs.testrun)['type'] != 'full' && fromJSON(inputs.testrun)['selected_tests']['fast'] == false }} + run: | + tools --timestamps --no-output-timeout-secs=1800 --timeout-secs=14400 vm test --skip-requirements-install \ + --nox-session=${{ inputs.nox-session }} --rerun-failures -E SALT_TRANSPORT ${{ matrix.fips && '--fips ' || '' }}${{ inputs.distro-slug }} \ + ${{ matrix.tests-chunk }} -- --suppress-no-test-exit-code \ + --from-filenames=testrun-changed-files.txt + + - name: Run Slow/Changed Tests + id: run-slow-changed-tests + if: ${{ fromJSON(inputs.testrun)['type'] != 'full' && fromJSON(inputs.testrun)['selected_tests']['slow'] == false }} + run: | + tools --timestamps --no-output-timeout-secs=1800 --timeout-secs=14400 vm test --skip-requirements-install \ + --nox-session=${{ inputs.nox-session }} --rerun-failures -E SALT_TRANSPORT ${{ matrix.fips && '--fips ' || '' }}${{ inputs.distro-slug }} \ + ${{ matrix.tests-chunk }} -- --no-fast-tests --slow-tests --suppress-no-test-exit-code \ + --from-filenames=testrun-changed-files.txt + + - name: Run Core/Changed Tests + id: run-core-changed-tests + if: ${{ fromJSON(inputs.testrun)['type'] != 'full' && fromJSON(inputs.testrun)['selected_tests']['core'] == false }} + run: | + tools --timestamps --no-output-timeout-secs=1800 --timeout-secs=14400 vm test --skip-requirements-install \ + --nox-session=${{ inputs.nox-session }} --rerun-failures -E SALT_TRANSPORT ${{ matrix.fips && '--fips ' || '' }}${{ inputs.distro-slug }} \ + ${{ matrix.tests-chunk }} -- --no-fast-tests --core-tests --suppress-no-test-exit-code \ + --from-filenames=testrun-changed-files.txt + + - name: Run Fast Tests + id: run-fast-tests + if: ${{ fromJSON(inputs.testrun)['type'] != 'full' && fromJSON(inputs.testrun)['selected_tests']['fast'] }} + run: | + tools --timestamps --no-output-timeout-secs=1800 --timeout-secs=14400 vm test --skip-requirements-install \ + --nox-session=${{ inputs.nox-session }} --rerun-failures -E SALT_TRANSPORT ${{ (inputs.skip-code-coverage && matrix.tests-chunk != 'unit') && '--skip-code-coverage' || '' }} \ + ${{ matrix.fips && '--fips ' || '' }}${{ inputs.distro-slug }} ${{ matrix.tests-chunk }} + + - name: Run Slow Tests + id: run-slow-tests + if: ${{ fromJSON(inputs.testrun)['type'] != 'full' && fromJSON(inputs.testrun)['selected_tests']['slow'] }} + run: | + tools --timestamps --no-output-timeout-secs=1800 --timeout-secs=14400 vm test --skip-requirements-install \ + --nox-session=${{ inputs.nox-session }} --rerun-failures -E SALT_TRANSPORT ${{ matrix.fips && '--fips ' || '' }}${{ inputs.distro-slug }} \ + ${{ matrix.tests-chunk }} -- --no-fast-tests --slow-tests + + - name: Run Core Tests + id: run-core-tests + if: ${{ fromJSON(inputs.testrun)['type'] != 'full' && fromJSON(inputs.testrun)['selected_tests']['core'] }} + run: | + tools --timestamps --no-output-timeout-secs=1800 --timeout-secs=14400 vm test --skip-requirements-install \ + --nox-session=${{ inputs.nox-session }} --rerun-failures -E SALT_TRANSPORT ${{ matrix.fips && '--fips ' || '' }}${{ inputs.distro-slug }} \ + ${{ matrix.tests-chunk }} -- --no-fast-tests --core-tests + + - name: Run Flaky Tests + id: run-flaky-tests + if: ${{ fromJSON(inputs.testrun)['selected_tests']['flaky'] }} + run: | + tools --timestamps --no-output-timeout-secs=1800 --timeout-secs=14400 vm test --skip-requirements-install \ + --nox-session=${{ inputs.nox-session }} --rerun-failures -E SALT_TRANSPORT ${{ matrix.fips && '--fips ' || '' }}${{ inputs.distro-slug }} \ + ${{ matrix.tests-chunk }} -- --no-fast-tests --flaky-jail + + - name: Run Full Tests + id: run-full-tests + if: ${{ fromJSON(inputs.testrun)['type'] == 'full' }} + run: | + tools --timestamps --no-output-timeout-secs=1800 --timeout-secs=14400 vm test --skip-requirements-install \ + --nox-session=${{ inputs.nox-session }} --rerun-failures -E SALT_TRANSPORT ${{ (inputs.skip-code-coverage && matrix.tests-chunk != 'unit') && '--skip-code-coverage' || '' }} \ + -E TEST_GROUP ${{ matrix.fips && '--fips ' || '' }}${{ inputs.distro-slug }} ${{ matrix.tests-chunk }} -- --slow-tests --core-tests \ + --test-group-count=${{ matrix.test-group-count || 1 }} --test-group=${{ matrix.test-group || 1 }} + + - name: Combine Coverage Reports + if: always() && inputs.skip-code-coverage == false && steps.spin-up-vm.outcome == 'success' + run: | + tools --timestamps vm combine-coverage ${{ inputs.distro-slug }} + + - name: Download Test Run Artifacts + id: download-artifacts-from-vm + if: always() && steps.spin-up-vm.outcome == 'success' + run: | + tools --timestamps vm download-artifacts ${{ inputs.distro-slug }} + # Delete the salt onedir, we won't need it anymore and it will prevent + # from it showing in the tree command below + rm -rf artifacts/salt* + tree -a artifacts + if [ "${{ inputs.skip-code-coverage }}" != "true" ]; then + mv artifacts/coverage/.coverage artifacts/coverage/.coverage.${{ inputs.distro-slug }}.${{ inputs.nox-session }}.${{ matrix.transport }}.${{ matrix.tests-chunk }}.grp${{ matrix.test-group || '1' }} + fi + + - name: Destroy VM + if: always() + run: | + tools --timestamps vm destroy --no-wait ${{ inputs.distro-slug }} || true + + - name: Upload Code Coverage Test Run Artifacts + if: always() && inputs.skip-code-coverage == false && steps.download-artifacts-from-vm.outcome == 'success' && job.status != 'cancelled' + uses: actions/upload-artifact@v3 + with: + name: testrun-coverage-artifacts-${{ inputs.distro-slug }}-${{ inputs.nox-session }} + path: | + artifacts/coverage/ + + - name: Upload JUnit XML Test Run Artifacts + if: always() && steps.download-artifacts-from-vm.outcome == 'success' + uses: actions/upload-artifact@v3 + with: + name: testrun-junit-artifacts-${{ inputs.distro-slug }}-${{ inputs.nox-session }}-${{ matrix.transport }} + path: | + artifacts/xml-unittests-output/ + + - name: Upload Test Run Log Artifacts + if: always() && steps.download-artifacts-from-vm.outcome == 'success' + uses: actions/upload-artifact@v3 + with: + name: testrun-log-artifacts-${{ inputs.distro-slug }}-${{ inputs.nox-session }}-${{ matrix.transport }} + path: | + artifacts/logs + + - name: Publish Test Report + uses: mikepenz/action-junit-report@v3 + # always run even if the previous steps fails + if: always() && inputs.skip-junit-reports == false && job.status != 'cancelled' + with: + check_name: Test Results(${{ inputs.distro-slug }}, transport=${{ matrix.transport }}, tests-chunk=${{ matrix.tests-chunk }}, group=${{ matrix.test-group || '1' }}) + report_paths: 'artifacts/xml-unittests-output/*.xml' + annotate_only: true + + + report: + name: Test Reports + if: always() && inputs.skip-code-coverage == false && needs.test.result != 'cancelled' && needs.test.result != 'skipped' + runs-on: + - self-hosted + - linux + - x86_64 + needs: + - test + + steps: + - name: Checkout Source Code + uses: actions/checkout@v4 + + - name: Download Code Coverage Test Run Artifacts + uses: actions/download-artifact@v3 + if: ${{ inputs.skip-code-coverage == false }} + id: download-coverage-artifacts + with: + name: testrun-coverage-artifacts-${{ inputs.distro-slug }}-${{ inputs.nox-session }} + path: artifacts/coverage/ + + - name: Show Downloaded Test Run Artifacts + run: | + tree -a artifacts + + - name: Install Nox + run: | + python3 -m pip install 'nox==${{ inputs.nox-version }}' + + - name: Create XML Coverage Reports + if: always() && inputs.skip-code-coverage == false && steps.download-coverage-artifacts.outcome == 'success' && job.status != 'cancelled' + run: | + nox --force-color -e create-xml-coverage-reports + mv artifacts/coverage/salt.xml artifacts/coverage/salt..${{ inputs.distro-slug }}..${{ inputs.nox-session }}.xml + mv artifacts/coverage/tests.xml artifacts/coverage/tests..${{ inputs.distro-slug }}..${{ inputs.nox-session }}.xml + + - name: Report Salt Code Coverage + if: always() && inputs.skip-code-coverage == false && steps.download-coverage-artifacts.outcome == 'success' + continue-on-error: true + run: | + nox --force-color -e report-coverage -- salt + + - name: Report Combined Code Coverage + if: always() && inputs.skip-code-coverage == false && steps.download-coverage-artifacts.outcome == 'success' + continue-on-error: true + run: | + nox --force-color -e report-coverage + + - name: Rename Code Coverage DB + if: always() && inputs.skip-code-coverage == false && steps.download-coverage-artifacts.outcome == 'success' + continue-on-error: true + run: | + mv artifacts/coverage/.coverage artifacts/coverage/.coverage.${{ inputs.distro-slug }}.${{ inputs.nox-session }} + + - name: Upload Code Coverage DB + if: always() && inputs.skip-code-coverage == false && steps.download-coverage-artifacts.outcome == 'success' + uses: actions/upload-artifact@v3 + with: + name: all-testrun-coverage-artifacts + path: artifacts/coverage diff --git a/.github/workflows/test-package-downloads-action.yml b/.github/workflows/test-package-downloads-action.yml index 6bed0c6a01c..c6661849724 100644 --- a/.github/workflows/test-package-downloads-action.yml +++ b/.github/workflows/test-package-downloads-action.yml @@ -68,66 +68,30 @@ jobs: - distro-slug: almalinux-8 arch: x86_64 pkg-type: package - - distro-slug: almalinux-8-arm64 - arch: aarch64 - pkg-type: package - - distro-slug: almalinux-8-arm64 - arch: arm64 - pkg-type: package - distro-slug: almalinux-9 arch: x86_64 pkg-type: package - - distro-slug: almalinux-9-arm64 - arch: aarch64 - pkg-type: package - - distro-slug: almalinux-9-arm64 - arch: arm64 - pkg-type: package - distro-slug: amazonlinux-2 arch: x86_64 pkg-type: package - - distro-slug: amazonlinux-2-arm64 - arch: aarch64 - pkg-type: package - distro-slug: amazonlinux-2-arm64 arch: arm64 pkg-type: package - distro-slug: amazonlinux-2023 arch: x86_64 pkg-type: package - - distro-slug: amazonlinux-2023-arm64 - arch: aarch64 - pkg-type: package - distro-slug: amazonlinux-2023-arm64 arch: arm64 pkg-type: package - distro-slug: centos-7 arch: x86_64 pkg-type: package - - distro-slug: centos-7-arm64 - arch: aarch64 - pkg-type: package - - distro-slug: centos-7-arm64 - arch: arm64 - pkg-type: package - distro-slug: centosstream-8 arch: x86_64 pkg-type: package - - distro-slug: centosstream-8-arm64 - arch: aarch64 - pkg-type: package - - distro-slug: centosstream-8-arm64 - arch: arm64 - pkg-type: package - distro-slug: centosstream-9 arch: x86_64 pkg-type: package - - distro-slug: centosstream-9-arm64 - arch: aarch64 - pkg-type: package - - distro-slug: centosstream-9-arm64 - arch: arm64 - pkg-type: package - distro-slug: debian-10 arch: x86_64 pkg-type: package @@ -135,56 +99,35 @@ jobs: arch: x86_64 pkg-type: package - distro-slug: debian-11-arm64 - arch: aarch64 + arch: arm64 pkg-type: package - distro-slug: debian-12 arch: x86_64 pkg-type: package - distro-slug: debian-12-arm64 - arch: aarch64 + arch: arm64 pkg-type: package - distro-slug: fedora-37 arch: x86_64 pkg-type: package - - distro-slug: fedora-37-arm64 - arch: aarch64 - pkg-type: package - - distro-slug: fedora-37-arm64 - arch: arm64 - pkg-type: package - distro-slug: fedora-38 arch: x86_64 pkg-type: package - - distro-slug: fedora-38-arm64 - arch: aarch64 - pkg-type: package - - distro-slug: fedora-38-arm64 - arch: arm64 - pkg-type: package - distro-slug: photonos-3 arch: x86_64 pkg-type: package - - distro-slug: photonos-3-arm64 - arch: aarch64 - pkg-type: package - distro-slug: photonos-3-arm64 arch: arm64 pkg-type: package - distro-slug: photonos-4 arch: x86_64 pkg-type: package - - distro-slug: photonos-4-arm64 - arch: aarch64 - pkg-type: package - distro-slug: photonos-4-arm64 arch: arm64 pkg-type: package - distro-slug: photonos-5 arch: x86_64 pkg-type: package - - distro-slug: photonos-5-arm64 - arch: aarch64 - pkg-type: package - distro-slug: photonos-5-arm64 arch: arm64 pkg-type: package @@ -192,19 +135,19 @@ jobs: arch: x86_64 pkg-type: package - distro-slug: ubuntu-20.04-arm64 - arch: aarch64 + arch: arm64 pkg-type: package - distro-slug: ubuntu-22.04 arch: x86_64 pkg-type: package - distro-slug: ubuntu-22.04-arm64 - arch: aarch64 + arch: arm64 pkg-type: package - distro-slug: ubuntu-22.04 arch: x86_64 pkg-type: onedir - distro-slug: ubuntu-22.04-arm64 - arch: aarch64 + arch: arm64 pkg-type: onedir steps: @@ -230,11 +173,11 @@ jobs: cd artifacts tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-linux-${{ matrix.arch == 'arm64' && 'aarch64' || matrix.arch }}.tar.xz - - name: Download cached nox.${{ matrix.distro-slug }}.tar.* for session ${{ inputs.nox-session }} + - name: Download cached nox.linux.${{ matrix.arch }}.tar.* for session ${{ inputs.nox-session }} uses: actions/cache@v3.3.1 with: - path: nox.${{ matrix.distro-slug }}.tar.* - key: ${{ inputs.cache-prefix }}|testrun-deps|${{ matrix.arch == 'arm64' && 'aarch64' || matrix.arch }}|${{ matrix.distro-slug }}|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ + path: nox.linux.${{ matrix.arch }}.tar.* + key: ${{ inputs.cache-prefix }}|testrun-deps|${{ matrix.arch }}|linux|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py') }} # If we get a cache miss here it means the dependencies step failed to save the cache @@ -445,7 +388,7 @@ jobs: arch: arm64 pkg-type: package - distro-slug: macos-13-xlarge - arch: aarch64 + arch: arm64 pkg-type: onedir steps: @@ -485,11 +428,11 @@ jobs: run: | python3 -m pip install 'nox==${{ inputs.nox-version }}' - - name: Download cached nox.${{ matrix.distro-slug }}.tar.* for session ${{ inputs.nox-session }} + - name: Download cached nox.macos.${{ matrix.arch }}.tar.* for session ${{ inputs.nox-session }} uses: actions/cache@v3.3.1 with: - path: nox.${{ matrix.distro-slug }}.tar.* - key: ${{ inputs.cache-prefix }}|testrun-deps|${{ matrix.arch == 'arm64' && 'aarch64' || matrix.arch }}|${{ matrix.distro-slug }}|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ + path: nox.macos.${{ matrix.arch }}.tar.* + key: ${{ inputs.cache-prefix }}|testrun-deps|${{ matrix.arch }}|macos|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py') }} # If we get a cache miss here it means the dependencies step failed to save the cache @@ -497,7 +440,7 @@ jobs: - name: Decompress .nox Directory run: | - nox --force-color -e decompress-dependencies -- ${{ matrix.distro-slug }} + nox --force-color -e decompress-dependencies -- macos ${{ matrix.arch }} - name: Show System Info & Test Plan env: @@ -692,11 +635,11 @@ jobs: cd artifacts tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-windows-${{ matrix.arch }}.tar.xz - - name: Download cached nox.${{ matrix.distro-slug }}.tar.* for session ${{ inputs.nox-session }} + - name: Download cached nox.windows.${{ matrix.arch }}.tar.* for session ${{ inputs.nox-session }} uses: actions/cache@v3.3.1 with: - path: nox.${{ matrix.distro-slug }}.tar.* - key: ${{ inputs.cache-prefix }}|testrun-deps|${{ matrix.arch }}|${{ matrix.distro-slug }}|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ + path: nox.windows.${{ matrix.arch }}.tar.* + key: ${{ inputs.cache-prefix }}|testrun-deps|${{ matrix.arch }}|windows|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py') }} # If we get a cache miss here it means the dependencies step failed to save the cache diff --git a/.github/workflows/test-packages-action.yml b/.github/workflows/test-packages-action-linux.yml similarity index 97% rename from .github/workflows/test-packages-action.yml rename to .github/workflows/test-packages-action-linux.yml index 726565cc568..8d34e2b9093 100644 --- a/.github/workflows/test-packages-action.yml +++ b/.github/workflows/test-packages-action-linux.yml @@ -152,11 +152,11 @@ jobs: run: | tree pkg/artifacts - - name: Download cached nox.${{ inputs.distro-slug }}.tar.* for session ${{ inputs.nox-session }} + - name: Download cached nox.linux.${{ inputs.arch }}.tar.* for session ${{ inputs.nox-session }} uses: actions/cache@v3.3.1 with: - path: nox.${{ inputs.distro-slug }}.tar.* - key: ${{ inputs.cache-prefix }}|testrun-deps|${{ inputs.arch }}|${{ inputs.distro-slug }}|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ + path: nox.linux.${{ inputs.arch }}.tar.* + key: ${{ inputs.cache-prefix }}|testrun-deps|${{ inputs.arch }}|linux|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py') }} # If we get a cache miss here it means the dependencies step failed to save the cache diff --git a/.github/workflows/test-packages-action-macos.yml b/.github/workflows/test-packages-action-macos.yml index 023e48ace5a..2592c1cff99 100644 --- a/.github/workflows/test-packages-action-macos.yml +++ b/.github/workflows/test-packages-action-macos.yml @@ -154,11 +154,11 @@ jobs: run: | python3 -m pip install 'nox==${{ inputs.nox-version }}' - - name: Download cached nox.${{ inputs.distro-slug }}.tar.* for session ${{ inputs.nox-session }} + - name: Download cached nox.macos.${{ inputs.arch }}.tar.* for session ${{ inputs.nox-session }} uses: actions/cache@v3.3.1 with: - path: nox.${{ inputs.distro-slug }}.tar.* - key: ${{ inputs.cache-prefix }}|testrun-deps|${{ inputs.arch }}|${{ inputs.distro-slug }}|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ + path: nox.macos.${{ inputs.arch }}.tar.* + key: ${{ inputs.cache-prefix }}|testrun-deps|${{ inputs.arch }}|macos|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py') }} # If we get a cache miss here it means the dependencies step failed to save the cache @@ -166,7 +166,7 @@ jobs: - name: Decompress .nox Directory run: | - nox --force-color -e decompress-dependencies -- ${{ inputs.distro-slug }} + nox --force-color -e decompress-dependencies -- macos ${{ inputs.arch }} - name: Show System Info & Test Plan env: diff --git a/.github/workflows/test-packages-action-windows.yml b/.github/workflows/test-packages-action-windows.yml new file mode 100644 index 00000000000..9e84c8906f1 --- /dev/null +++ b/.github/workflows/test-packages-action-windows.yml @@ -0,0 +1,275 @@ +name: Test Artifact + +on: + workflow_call: + inputs: + distro-slug: + required: true + type: string + description: The OS slug to run tests against + platform: + required: true + type: string + description: The platform being tested + arch: + required: true + type: string + description: The platform arch being tested + pkg-type: + required: true + type: string + description: The platform arch being tested + salt-version: + type: string + required: true + description: The Salt version of the packages to install and test + cache-prefix: + required: true + type: string + description: Seed used to invalidate caches + testing-releases: + required: true + type: string + description: A JSON list of releases to test upgrades against + nox-version: + required: true + type: string + description: The nox version to install + python-version: + required: false + type: string + description: The python version to run tests with + default: "3.10" + fips: + required: false + type: boolean + default: false + description: Test run with FIPS enabled + package-name: + required: false + type: string + description: The onedir package name to use + default: salt + nox-session: + required: false + type: string + description: The nox session to run + default: ci-test-onedir + skip-code-coverage: + required: false + type: boolean + description: Skip code coverage + default: false + skip-junit-reports: + required: false + type: boolean + description: Skip Publishing JUnit Reports + default: false + +env: + COLUMNS: 190 + AWS_MAX_ATTEMPTS: "10" + AWS_RETRY_MODE: "adaptive" + PIP_INDEX_URL: https://pypi-proxy.saltstack.net/root/local/+simple/ + PIP_EXTRA_INDEX_URL: https://pypi.org/simple + +jobs: + + generate-matrix: + name: Generate Matrix + runs-on: + - self-hosted + - linux + - x86_64 + outputs: + pkg-matrix-include: ${{ steps.generate-pkg-matrix.outputs.matrix }} + steps: + + - name: "Throttle Builds" + shell: bash + run: | + t=$(shuf -i 1-30 -n 1); echo "Sleeping $t seconds"; sleep "$t" + + - name: Checkout Source Code + uses: actions/checkout@v4 + + - name: Setup Python Tools Scripts + uses: ./.github/actions/setup-python-tools-scripts + with: + cache-prefix: ${{ inputs.cache-prefix }} + + - name: Generate Package Test Matrix + id: generate-pkg-matrix + run: | + tools ci pkg-matrix ${{ inputs.fips && '--fips ' || '' }}${{ inputs.distro-slug }} \ + ${{ inputs.pkg-type }} --testing-releases ${{ join(fromJSON(inputs.testing-releases), ' ') }} + + + test: + name: Test + runs-on: + - self-hosted + - linux + - bastion + timeout-minutes: 120 # 2 Hours - More than this and something is wrong + needs: + - generate-matrix + strategy: + fail-fast: false + matrix: + include: ${{ fromJSON(needs.generate-matrix.outputs.pkg-matrix-include) }} + + steps: + + - name: "Throttle Builds" + shell: bash + run: | + t=$(python3 -c 'import random, sys; sys.stdout.write(str(random.randint(1, 15)))'); echo "Sleeping $t seconds"; sleep "$t" + + - name: Checkout Source Code + uses: actions/checkout@v4 + + - name: Download Packages + uses: actions/download-artifact@v3 + with: + name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-${{ inputs.arch }}-${{ inputs.pkg-type }} + path: artifacts/pkg/ + + - name: Download Onedir Tarball as an Artifact + uses: actions/download-artifact@v3 + with: + name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-${{ inputs.platform }}-${{ inputs.arch }}.tar.xz + path: artifacts/ + + - name: Decompress Onedir Tarball + shell: bash + run: | + python3 -c "import os; os.makedirs('artifacts', exist_ok=True)" + cd artifacts + tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-${{ inputs.platform }}-${{ inputs.arch }}.tar.xz + + - name: List Packages + run: | + tree artifacts/pkg/ + + - name: Download cached nox.windows.${{ inputs.arch }}.tar.* for session ${{ inputs.nox-session }} + uses: actions/cache@v3.3.1 + with: + path: nox.windows.${{ inputs.arch }}.tar.* + key: ${{ inputs.cache-prefix }}|testrun-deps|${{ inputs.arch }}|windows|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ + hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py') + }} + # If we get a cache miss here it means the dependencies step failed to save the cache + fail-on-cache-miss: true + + - name: Setup Python Tools Scripts + uses: ./.github/actions/setup-python-tools-scripts + with: + cache-prefix: ${{ inputs.cache-prefix }} + + - name: Get Salt Project GitHub Actions Bot Environment + run: | + TOKEN=$(curl -sS -f -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 30") + SPB_ENVIRONMENT=$(curl -sS -f -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/tags/instance/spb:environment) + echo "SPB_ENVIRONMENT=$SPB_ENVIRONMENT" >> "$GITHUB_ENV" + + - name: Start VM + id: spin-up-vm + run: | + tools --timestamps vm create --environment "${SPB_ENVIRONMENT}" --retries=2 ${{ inputs.distro-slug }} + + - name: List Free Space + run: | + tools --timestamps vm ssh ${{ inputs.distro-slug }} -- df -h || true + + - name: Upload Checkout To VM + run: | + tools --timestamps vm rsync ${{ inputs.distro-slug }} + + - name: Decompress .nox Directory + run: | + tools --timestamps vm decompress-dependencies ${{ inputs.distro-slug }} + + - name: Downgrade importlib-metadata + if: ${{ contains(fromJSON('["amazonlinux-2", "centos-7", "debian-10"]'), inputs.distro-slug) && contains(fromJSON('["upgrade-classic", "downgrade-classic"]'), matrix.tests-chunk) }} + run: | + # This step can go away once we stop testing classic packages upgrade/downgrades to/from 3005.x + tools --timestamps vm ssh ${{ inputs.distro-slug }} -- "sudo python3 -m pip install -U 'importlib-metadata<=4.13.0' 'virtualenv<=20.21.1'" + + - name: Show System Info & Test Plan + run: | + tools --timestamps --timeout-secs=1800 vm testplan --skip-requirements-install \ + --nox-session=${{ inputs.nox-session }}-pkgs ${{ inputs.distro-slug }} -- ${{ matrix.tests-chunk }} \ + ${{ matrix.version && format('--prev-version {0}', matrix.version) || ''}} + + - name: Run Package Tests + run: | + tools --timestamps --no-output-timeout-secs=1800 --timeout-secs=14400 vm test --skip-requirements-install ${{ matrix.fips && '--fips ' || '' }}\ + --nox-session=${{ inputs.nox-session }}-pkgs --rerun-failures ${{ inputs.distro-slug }} -- ${{ matrix.tests-chunk }} \ + ${{ matrix.version && format('--prev-version {0}', matrix.version) || ''}} + + - name: Download Test Run Artifacts + id: download-artifacts-from-vm + if: always() && steps.spin-up-vm.outcome == 'success' + run: | + tools --timestamps vm download-artifacts ${{ inputs.distro-slug }} + # Delete the salt onedir, we won't need it anymore and it will prevent + # from it showing in the tree command below + rm -rf artifacts/salt* + tree -a artifacts + + - name: Destroy VM + if: always() + run: | + tools --timestamps vm destroy --no-wait ${{ inputs.distro-slug }} || true + + - name: Upload Test Run Artifacts + if: always() && steps.download-artifacts-from-vm.outcome == 'success' + uses: actions/upload-artifact@v3 + with: + name: pkg-testrun-artifacts-${{ inputs.distro-slug }}-${{ matrix.tests-chunk }} + path: | + artifacts + !artifacts/pkg/* + !artifacts/salt/* + !artifacts/salt-*.tar.* + + report: + name: Report + runs-on: + - self-hosted + - linux + - x86_64 + if: always() && (inputs.skip-code-coverage == false || inputs.skip-junit-reports == false) && needs.test.result != 'cancelled' && needs.test.result != 'skipped' + needs: + - test + - generate-matrix + strategy: + fail-fast: false + matrix: + include: ${{ fromJSON(needs.generate-matrix.outputs.pkg-matrix-include) }} + + steps: + - name: Checkout Source Code + uses: actions/checkout@v4 + + - name: Download Test Run Artifacts + id: download-test-run-artifacts + uses: actions/download-artifact@v3 + with: + name: pkg-testrun-artifacts-${{ inputs.distro-slug }}-${{ matrix.tests-chunk }} + path: artifacts + + - name: Show Test Run Artifacts + if: always() && steps.download-test-run-artifacts.outcome == 'success' + run: | + tree -a artifacts + + - name: Publish Test Report + uses: mikepenz/action-junit-report@v3 + # always run even if the previous steps fails + if: always() && inputs.skip-junit-reports == false && steps.download-test-run-artifacts.outcome == 'success' + with: + check_name: Overall Test Results(${{ inputs.distro-slug }} ${{ matrix.tests-chunk }}) + report_paths: 'artifacts/xml-unittests-output/*.xml' + annotate_only: true diff --git a/noxfile.py b/noxfile.py index ad97e3ead0e..e3999ce8293 100644 --- a/noxfile.py +++ b/noxfile.py @@ -1218,14 +1218,29 @@ def coverage_report(session): def decompress_dependencies(session): if not session.posargs: session.error( - "Please pass the distro-slug to run tests against. " - "Check cicd/images.yml for what's available." + "The 'decompress-dependencies' session target needs " + "two arguments, ' '." ) - distro_slug = session.posargs.pop(0) - if "windows" in distro_slug: - nox_dependencies_tarball = f"nox.{distro_slug}.tar.gz" + try: + platform = session.posargs.pop(0) + arch = session.posargs.pop(0) + if session.posargs: + session.error( + "The 'decompress-dependencies' session target only accepts " + "two arguments, ' '." + ) + except IndexError: + session.error( + "The 'decompress-dependencies' session target needs " + "two arguments, ' '." + ) + if platform == "windows": + extension = "tar.gz" + scripts_dir_name = "Scripts" else: - nox_dependencies_tarball = f"nox.{distro_slug}.tar.xz" + extension = "tar.xz" + scripts_dir_name = "bin" + nox_dependencies_tarball = f"nox.{platform}.{arch}.{extension}" nox_dependencies_tarball_path = REPO_ROOT / nox_dependencies_tarball if not nox_dependencies_tarball_path.exists(): session.error( @@ -1239,10 +1254,7 @@ def decompress_dependencies(session): session.log("Finding broken 'python' symlinks under '.nox/' ...") for dirname in os.scandir(REPO_ROOT / ".nox"): - if "windows" not in distro_slug: - scan_path = REPO_ROOT.joinpath(".nox", dirname, "bin") - else: - scan_path = REPO_ROOT.joinpath(".nox", dirname, "Scripts") + scan_path = REPO_ROOT.joinpath(".nox", dirname, scripts_dir_name) script_paths = {str(p): p for p in os.scandir(scan_path)} fixed_shebang = f"#!{scan_path / 'python'}" for key in sorted(script_paths): @@ -1273,7 +1285,7 @@ def decompress_dependencies(session): continue if not path.is_file(): continue - if "windows" not in distro_slug: + if platform != "windows": # Let's try to fix shebang's try: fpath = pathlib.Path(path) @@ -1296,14 +1308,27 @@ def decompress_dependencies(session): def compress_dependencies(session): if not session.posargs: session.error( - "Please pass the distro-slug to run tests against. " - "Check cicd/images.yml for what's available." + "The 'compress-dependencies' session target needs " + "two arguments, ' '." ) - distro_slug = session.posargs.pop(0) - if IS_WINDOWS: - nox_dependencies_tarball = f"nox.{distro_slug}.tar.gz" + try: + platform = session.posargs.pop(0) + arch = session.posargs.pop(0) + if session.posargs: + session.error( + "The 'compress-dependencies' session target only accepts " + "two arguments, ' '." + ) + except IndexError: + session.error( + "The 'compress-dependencies' session target needs " + "two arguments, ' '." + ) + if platform == "windows": + extension = "tar.gz" else: - nox_dependencies_tarball = f"nox.{distro_slug}.tar.xz" + extension = "tar.xz" + nox_dependencies_tarball = f"nox.{platform}.{arch}.{extension}" nox_dependencies_tarball_path = REPO_ROOT / nox_dependencies_tarball if nox_dependencies_tarball_path.exists(): session_warn( diff --git a/tools/precommit/workflows.py b/tools/precommit/workflows.py index 4a75dba2148..45251ad1617 100644 --- a/tools/precommit/workflows.py +++ b/tools/precommit/workflows.py @@ -88,41 +88,41 @@ def generate_workflows(ctx: Context): "template": "test-package-downloads-action.yml", }, } - test_salt_listing = { + test_salt_listing: dict[str, list[tuple[str, ...]]] = { "linux": [ ("almalinux-8", "Alma Linux 8", "x86_64", "no-fips"), ("almalinux-9", "Alma Linux 9", "x86_64", "no-fips"), ("amazonlinux-2", "Amazon Linux 2", "x86_64", "no-fips"), - ("amazonlinux-2-arm64", "Amazon Linux 2 Arm64", "aarch64", "no-fips"), + ("amazonlinux-2-arm64", "Amazon Linux 2 Arm64", "arm64", "no-fips"), ("amazonlinux-2023", "Amazon Linux 2023", "x86_64", "no-fips"), - ("amazonlinux-2023-arm64", "Amazon Linux 2023 Arm64", "aarch64", "no-fips"), + ("amazonlinux-2023-arm64", "Amazon Linux 2023 Arm64", "arm64", "no-fips"), ("archlinux-lts", "Arch Linux LTS", "x86_64", "no-fips"), ("centos-7", "CentOS 7", "x86_64", "no-fips"), ("centosstream-8", "CentOS Stream 8", "x86_64", "no-fips"), ("centosstream-9", "CentOS Stream 9", "x86_64", "no-fips"), ("debian-10", "Debian 10", "x86_64", "no-fips"), ("debian-11", "Debian 11", "x86_64", "no-fips"), - ("debian-11-arm64", "Debian 11 Arm64", "aarch64", "no-fips"), + ("debian-11-arm64", "Debian 11 Arm64", "arm64", "no-fips"), ("debian-12", "Debian 12", "x86_64", "no-fips"), - ("debian-12-arm64", "Debian 12 Arm64", "aarch64", "no-fips"), + ("debian-12-arm64", "Debian 12 Arm64", "arm64", "no-fips"), ("fedora-37", "Fedora 37", "x86_64", "no-fips"), ("fedora-38", "Fedora 38", "x86_64", "no-fips"), ("opensuse-15", "Opensuse 15", "x86_64", "no-fips"), ("photonos-3", "Photon OS 3", "x86_64", "no-fips"), - ("photonos-3-arm64", "Photon OS 3 Arm64", "aarch64", "no-fips"), + ("photonos-3-arm64", "Photon OS 3 Arm64", "arm64", "no-fips"), ("photonos-4", "Photon OS 4", "x86_64", "fips"), - ("photonos-4-arm64", "Photon OS 4 Arm64", "aarch64", "fips"), + ("photonos-4-arm64", "Photon OS 4 Arm64", "arm64", "fips"), ("photonos-5", "Photon OS 5", "x86_64", "fips"), - ("photonos-5-arm64", "Photon OS 5 Arm64", "aarch64", "fips"), + ("photonos-5-arm64", "Photon OS 5 Arm64", "arm64", "fips"), ("ubuntu-20.04", "Ubuntu 20.04", "x86_64", "no-fips"), - ("ubuntu-20.04-arm64", "Ubuntu 20.04 Arm64", "aarch64", "no-fips"), + ("ubuntu-20.04-arm64", "Ubuntu 20.04 Arm64", "arm64", "no-fips"), ("ubuntu-22.04", "Ubuntu 22.04", "x86_64", "no-fips"), - ("ubuntu-22.04-arm64", "Ubuntu 22.04 Arm64", "aarch64", "no-fips"), + ("ubuntu-22.04-arm64", "Ubuntu 22.04 Arm64", "arm64", "no-fips"), ], "macos": [ ("macos-12", "macOS 12", "x86_64"), ("macos-13", "macOS 13", "x86_64"), - ("macos-13-xlarge", "macOS 13 Arm64", "aarch64"), + ("macos-13-xlarge", "macOS 13 Arm64", "arm64"), ], "windows": [ ("windows-2016", "Windows 2016", "amd64"), @@ -137,7 +137,7 @@ def generate_workflows(ctx: Context): ( "amazonlinux-2-arm64", "Amazon Linux 2 Arm64", - "aarch64", + "arm64", "rpm", "no-fips", ), @@ -145,7 +145,7 @@ def generate_workflows(ctx: Context): ( "amazonlinux-2023-arm64", "Amazon Linux 2023 Arm64", - "aarch64", + "arm64", "rpm", "no-fips", ), @@ -155,30 +155,30 @@ def generate_workflows(ctx: Context): ( "centosstream-9-arm64", "CentOS Stream 9 Arm64", - "aarch64", + "arm64", "rpm", "no-fips", ), ("debian-10", "Debian 10", "x86_64", "deb", "no-fips"), ("debian-11", "Debian 11", "x86_64", "deb", "no-fips"), - ("debian-11-arm64", "Debian 11 Arm64", "aarch64", "deb", "no-fips"), + ("debian-11-arm64", "Debian 11 Arm64", "arm64", "deb", "no-fips"), ("debian-12", "Debian 12", "x86_64", "deb", "no-fips"), - ("debian-12-arm64", "Debian 12 Arm64", "aarch64", "deb", "no-fips"), + ("debian-12-arm64", "Debian 12 Arm64", "arm64", "deb", "no-fips"), ("photonos-3", "Photon OS 3", "x86_64", "rpm", "no-fips"), - ("photonos-3-arm64", "Photon OS 3 Arm64", "aarch64", "rpm", "no-fips"), + ("photonos-3-arm64", "Photon OS 3 Arm64", "arm64", "rpm", "no-fips"), ("photonos-4", "Photon OS 4", "x86_64", "rpm", "fips"), - ("photonos-4-arm64", "Photon OS 4 Arm64", "aarch64", "rpm", "fips"), + ("photonos-4-arm64", "Photon OS 4 Arm64", "arm64", "rpm", "fips"), ("photonos-5", "Photon OS 5", "x86_64", "rpm", "fips"), - ("photonos-5-arm64", "Photon OS 5 Arm64", "aarch64", "rpm", "fips"), + ("photonos-5-arm64", "Photon OS 5 Arm64", "arm64", "rpm", "fips"), ("ubuntu-20.04", "Ubuntu 20.04", "x86_64", "deb", "no-fips"), - ("ubuntu-20.04-arm64", "Ubuntu 20.04 Arm64", "aarch64", "deb", "no-fips"), + ("ubuntu-20.04-arm64", "Ubuntu 20.04 Arm64", "arm64", "deb", "no-fips"), ("ubuntu-22.04", "Ubuntu 22.04", "x86_64", "deb", "no-fips"), - ("ubuntu-22.04-arm64", "Ubuntu 22.04 Arm64", "aarch64", "deb", "no-fips"), + ("ubuntu-22.04-arm64", "Ubuntu 22.04 Arm64", "arm64", "deb", "no-fips"), ], "macos": [ ("macos-12", "macOS 12", "x86_64"), ("macos-13", "macOS 13", "x86_64"), - ("macos-13-xlarge", "macOS 13 Arm64", "aarch64"), + ("macos-13-xlarge", "macOS 13 Arm64", "arm64"), ], "windows": [ ("windows-2016", "Windows 2016", "amd64"), @@ -189,51 +189,15 @@ def generate_workflows(ctx: Context): build_ci_deps_listing = { "linux": [ - ("almalinux-8", "Alma Linux 8", "x86_64"), - ("almalinux-8-arm64", "Alma Linux 8 Arm64", "aarch64"), - ("almalinux-9", "Alma Linux 9", "x86_64"), - ("almalinux-9-arm64", "Alma Linux 9 Arm64", "aarch64"), - ("amazonlinux-2", "Amazon Linux 2", "x86_64"), - ("amazonlinux-2-arm64", "Amazon Linux 2 Arm64", "aarch64"), - ("amazonlinux-2023", "Amazon Linux 2023", "x86_64"), - ("amazonlinux-2023-arm64", "Amazon Linux 2023 Arm64", "aarch64"), - ("archlinux-lts", "Arch Linux LTS", "x86_64"), - ("centos-7", "CentOS 7", "x86_64"), - ("centos-7-arm64", "CentOS 7 Arm64", "aarch64"), - ("centosstream-8", "CentOS Stream 8", "x86_64"), - ("centosstream-8-arm64", "CentOS Stream 8 Arm64", "aarch64"), - ("centosstream-9", "CentOS Stream 9", "x86_64"), - ("centosstream-9-arm64", "CentOS Stream 9 Arm64", "aarch64"), - ("debian-10", "Debian 10", "x86_64"), - ("debian-11", "Debian 11", "x86_64"), - ("debian-11-arm64", "Debian 11 Arm64", "aarch64"), - ("debian-12", "Debian 12", "x86_64"), - ("debian-12-arm64", "Debian 12 Arm64", "aarch64"), - ("fedora-37", "Fedora 37", "x86_64"), - ("fedora-37-arm64", "Fedora 37 Arm64", "aarch64"), - ("fedora-38", "Fedora 38", "x86_64"), - ("fedora-38-arm64", "Fedora 38 Arm64", "aarch64"), - ("opensuse-15", "Opensuse 15", "x86_64"), - ("photonos-3", "Photon OS 3", "x86_64"), - ("photonos-3-arm64", "Photon OS 3 Arm64", "aarch64"), - ("photonos-4", "Photon OS 4", "x86_64"), - ("photonos-4-arm64", "Photon OS 4 Arm64", "aarch64"), - ("photonos-5", "Photon OS 5", "x86_64"), - ("photonos-5-arm64", "Photon OS 5 Arm64", "aarch64"), - ("ubuntu-20.04", "Ubuntu 20.04", "x86_64"), - ("ubuntu-20.04-arm64", "Ubuntu 20.04 Arm64", "aarch64"), - ("ubuntu-22.04", "Ubuntu 22.04", "x86_64"), - ("ubuntu-22.04-arm64", "Ubuntu 22.04 Arm64", "aarch64"), + ("x86_64", "centos-7"), + ("arm64", "centos-7-arm64"), ], "macos": [ - ("macos-12", "macOS 12", "x86_64"), - ("macos-13", "macOS 13", "x86_64"), - ("macos-13-xlarge", "macOS 13 Arm64", "aarch64"), + ("x86_64", "macos-12"), + ("arm64", "macos-13-xlarge"), ], "windows": [ - ("windows-2016", "Windows 2016", "amd64"), - ("windows-2019", "Windows 2019", "amd64"), - ("windows-2022", "Windows 2022", "amd64"), + ("amd64", "windows-2022"), ], } test_salt_pkg_downloads_listing: dict[str, list[tuple[str, str, str]]] = { @@ -249,36 +213,26 @@ def generate_workflows(ctx: Context): "fedora", "photon", ] - for slug, display_name, arch in build_ci_deps_listing["linux"]: + for slug, display_name, arch, fips in test_salt_listing["linux"]: if slug in ("archlinux-lts", "opensuse-15"): continue test_salt_pkg_downloads_listing["linux"].append((slug, arch, "package")) - # Account for old arm64 repo paths - if arch == "aarch64": - for test_slug in rpm_slugs: - if slug.startswith(test_slug): - test_salt_pkg_downloads_listing["linux"].append( - (slug, "arm64", "package") - ) - break - for slug, display_name, arch in build_ci_deps_listing["linux"][-2:]: + for slug, display_name, arch, fips in test_salt_listing["linux"][-2:]: if slug in ("archlinux-lts", "opensuse-15"): continue test_salt_pkg_downloads_listing["linux"].append((slug, arch, "onedir")) - for slug, display_name, arch in build_ci_deps_listing["macos"]: - if arch == "aarch64": - arch = "arm64" + for slug, display_name, arch in test_salt_listing["macos"]: test_salt_pkg_downloads_listing["macos"].append((slug, arch, "package")) - for slug, display_name, arch in build_ci_deps_listing["macos"][-1:]: + for slug, display_name, arch in test_salt_listing["macos"][-1:]: test_salt_pkg_downloads_listing["macos"].append((slug, arch, "onedir")) - for slug, display_name, arch in build_ci_deps_listing["windows"][-1:]: + for slug, display_name, arch in test_salt_listing["windows"][-1:]: for pkg_type in ("nsis", "msi", "onedir"): test_salt_pkg_downloads_listing["windows"].append((slug, arch, pkg_type)) test_salt_pkg_downloads_needs_slugs = set() for platform in test_salt_pkg_downloads_listing: - for slug, _, _ in test_salt_pkg_downloads_listing[platform]: - test_salt_pkg_downloads_needs_slugs.add(f"{slug.replace('.', '')}-ci-deps") + for _, arch, _ in test_salt_pkg_downloads_listing[platform]: + test_salt_pkg_downloads_needs_slugs.add(f"{platform}-{arch}-ci-deps") env = Environment( block_start_string="<%", diff --git a/tools/utils/__init__.py b/tools/utils/__init__.py index bebc9c98eb3..78913a43754 100644 --- a/tools/utils/__init__.py +++ b/tools/utils/__init__.py @@ -259,3 +259,24 @@ def download_file( if chunk: f.write(chunk) return dest + + +def get_platform_and_arch_from_slug(slug: str) -> tuple[str, str]: + if "windows" in slug: + platform = "windows" + arch = "amd64" + elif "macos" in slug: + platform = "macos" + if "macos-13" in slug and "xlarge" in slug: + arch = "arm64" + else: + arch = "x86_64" + else: + platform = "linux" + if "arm64" in slug: + arch = "arm64" + elif "aarch64" in slug: + arch = "arm64" + else: + arch = "x86_64" + return platform, arch diff --git a/tools/vm.py b/tools/vm.py index a8fa51ea748..9fb48ebcc36 100644 --- a/tools/vm.py +++ b/tools/vm.py @@ -1468,15 +1468,17 @@ class VM: """ Compress .nox/ into nox..tar.* in the VM """ - return self.run_nox("compress-dependencies", session_args=[self.name]) + platform, arch = tools.utils.get_platform_and_arch_from_slug(self.name) + return self.run_nox("compress-dependencies", session_args=[platform, arch]) def decompress_dependencies(self): """ Decompress nox..tar.* if it exists in the VM """ env = {"DELETE_NOX_ARCHIVE": "1"} + platform, arch = tools.utils.get_platform_and_arch_from_slug(self.name) return self.run_nox( - "decompress-dependencies", session_args=[self.name], env=env + "decompress-dependencies", session_args=[platform, arch], env=env ) def download_dependencies(self): @@ -1484,9 +1486,11 @@ class VM: Download nox..tar.* from VM """ if self.is_windows: - dependencies_filename = f"nox.{self.name}.tar.gz" + extension = "tar.gz" else: - dependencies_filename = f"nox.{self.name}.tar.xz" + extension = "tar.xz" + platform, arch = tools.utils.get_platform_and_arch_from_slug(self.name) + dependencies_filename = f"nox.{platform}.{arch}.{extension}" remote_path = self.upload_path.joinpath(dependencies_filename).as_posix() if self.is_windows: for drive in ("c:", "C:"): From 602aa0cbf7188e2d2e139f284655316c51702d87 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Tue, 2 Jan 2024 10:44:25 +0000 Subject: [PATCH 011/146] Reduce the number of workflows referenced Signed-off-by: Pedro Algarvio --- .github/workflows/build-deb-packages.yml | 132 ----- .../workflows/build-deps-ci-action-linux.yml | 160 ------ .../workflows/build-deps-ci-action-macos.yml | 135 ----- .../build-deps-ci-action-windows.yml | 160 ------ .github/workflows/build-deps-ci-action.yml | 358 +++++++++++++ .github/workflows/build-deps-onedir-linux.yml | 83 --- .github/workflows/build-deps-onedir-macos.yml | 88 ---- .../workflows/build-deps-onedir-windows.yml | 86 --- .github/workflows/build-deps-onedir.yml | 181 +++++++ .github/workflows/build-macos-packages.yml | 158 ------ .github/workflows/build-packages.yml | 461 ++++++++++++++++ .github/workflows/build-rpm-packages.yml | 114 ---- .github/workflows/build-salt-onedir-linux.yml | 90 ---- .github/workflows/build-salt-onedir-macos.yml | 93 ---- .../workflows/build-salt-onedir-windows.yml | 93 ---- .github/workflows/build-salt-onedir.yml | 200 +++++++ .github/workflows/build-windows-packages.yml | 164 ------ .github/workflows/ci.yml | 467 +++++----------- .github/workflows/nightly.yml | 493 +++++------------ .github/workflows/release.yml | 86 +-- .github/workflows/scheduled.yml | 467 +++++----------- .github/workflows/staging.yml | 497 +++++------------- .../templates/build-ci-deps.yml.jinja | 75 +-- .../templates/build-deps-ci-action.yml.jinja | 360 +++++++++++++ .../templates/build-packages.yml.jinja | 25 +- .../workflows/templates/build-repos.yml.jinja | 6 +- .github/workflows/templates/ci.yml.jinja | 20 +- .../test-salt-pkg-repo-downloads.yml.jinja | 4 +- .../templates/test-salt-pkg.yml.jinja | 12 +- .../workflows/templates/test-salt.yml.jinja | 6 +- tools/precommit/workflows.py | 5 +- 31 files changed, 2093 insertions(+), 3186 deletions(-) delete mode 100644 .github/workflows/build-deb-packages.yml delete mode 100644 .github/workflows/build-deps-ci-action-linux.yml delete mode 100644 .github/workflows/build-deps-ci-action-macos.yml delete mode 100644 .github/workflows/build-deps-ci-action-windows.yml create mode 100644 .github/workflows/build-deps-ci-action.yml delete mode 100644 .github/workflows/build-deps-onedir-linux.yml delete mode 100644 .github/workflows/build-deps-onedir-macos.yml delete mode 100644 .github/workflows/build-deps-onedir-windows.yml create mode 100644 .github/workflows/build-deps-onedir.yml delete mode 100644 .github/workflows/build-macos-packages.yml create mode 100644 .github/workflows/build-packages.yml delete mode 100644 .github/workflows/build-rpm-packages.yml delete mode 100644 .github/workflows/build-salt-onedir-linux.yml delete mode 100644 .github/workflows/build-salt-onedir-macos.yml delete mode 100644 .github/workflows/build-salt-onedir-windows.yml create mode 100644 .github/workflows/build-salt-onedir.yml delete mode 100644 .github/workflows/build-windows-packages.yml create mode 100644 .github/workflows/templates/build-deps-ci-action.yml.jinja diff --git a/.github/workflows/build-deb-packages.yml b/.github/workflows/build-deb-packages.yml deleted file mode 100644 index 4d7bbdcc824..00000000000 --- a/.github/workflows/build-deb-packages.yml +++ /dev/null @@ -1,132 +0,0 @@ ---- -name: Build DEB Packages - -on: - workflow_call: - inputs: - salt-version: - type: string - required: true - description: The Salt version to set prior to building packages. - relenv-version: - type: string - required: true - description: The relenv version to set prior to building packages. - python-version: - required: true - type: string - description: The version of python to use with relenv - source: - required: true - type: string - description: The backend to build the packages with - cache-prefix: - required: true - type: string - description: Seed used to invalidate caches - -env: - COLUMNS: 190 - AWS_MAX_ATTEMPTS: "10" - AWS_RETRY_MODE: "adaptive" - PIP_INDEX_URL: https://pypi-proxy.saltstack.net/root/local/+simple/ - PIP_EXTRA_INDEX_URL: https://pypi.org/simple - -jobs: - build: - name: DEB - runs-on: - - self-hosted - - linux - - ${{ matrix.arch }} - strategy: - fail-fast: false - matrix: - arch: - - x86_64 - - aarch64 - source: - - ${{ inputs.source }} - - container: - image: ghcr.io/saltstack/salt-ci-containers/packaging:debian-12 - - steps: - # Checkout here so we can easily use custom actions - - uses: actions/checkout@v4 - - # Checkout here for the build process - - name: Checkout in build directory - uses: actions/checkout@v4 - with: - path: - pkgs/checkout/ - - - name: Download Onedir Tarball as an Artifact - uses: actions/download-artifact@v3 - with: - name: salt-${{ inputs.salt-version }}-onedir-linux-${{ matrix.arch }}.tar.xz - path: pkgs/checkout/artifacts/ - - - name: Download Release Patch - if: ${{ startsWith(github.event.ref, 'refs/tags') == false }} - uses: actions/download-artifact@v3 - with: - name: salt-${{ inputs.salt-version }}.patch - path: pkgs/checkout/ - - - name: Setup Python Tools Scripts - uses: ./.github/actions/setup-python-tools-scripts - with: - cwd: pkgs/checkout/ - cache-prefix: ${{ inputs.cache-prefix }} - - - name: Setup Salt Version - id: setup-salt-version - uses: ./.github/actions/setup-salt-version - with: - salt-version: "${{ inputs.salt-version }}" - cwd: pkgs/checkout/ - - - name: Configure Git - if: ${{ startsWith(github.event.ref, 'refs/tags') == false }} - working-directory: pkgs/checkout/ - run: | - tools pkg configure-git - - - name: Apply release patch - if: ${{ startsWith(github.event.ref, 'refs/tags') == false }} - working-directory: pkgs/checkout/ - run: | - tools pkg apply-release-patch salt-${{ inputs.salt-version }}.patch --delete - - - name: Build Deb - working-directory: pkgs/checkout/ - run: | - tools pkg build deb --relenv-version=${{ inputs.relenv-version }} --python-version=${{ inputs.python-version }} ${{ - inputs.source == 'onedir' && - format('--onedir=salt-{0}-onedir-linux-{1}.tar.xz', inputs.salt-version, matrix.arch) - || - format('--arch={0}', matrix.arch) - }} - - - name: Cleanup - run: | - rm -rf pkgs/checkout/ - - - name: Set Artifact Name - id: set-artifact-name - run: | - if [ "${{ inputs.source }}" != "src" ]; then - echo "artifact-name=salt-${{ inputs.salt-version }}-${{ matrix.arch }}-deb" >> "$GITHUB_OUTPUT" - else - echo "artifact-name=salt-${{ inputs.salt-version }}-${{ matrix.arch }}-deb-from-src" >> "$GITHUB_OUTPUT" - fi - - - name: Upload DEBs - uses: actions/upload-artifact@v3 - with: - name: ${{ steps.set-artifact-name.outputs.artifact-name }} - path: ${{ github.workspace }}/pkgs/* - retention-days: 7 - if-no-files-found: error diff --git a/.github/workflows/build-deps-ci-action-linux.yml b/.github/workflows/build-deps-ci-action-linux.yml deleted file mode 100644 index a20c08a56ff..00000000000 --- a/.github/workflows/build-deps-ci-action-linux.yml +++ /dev/null @@ -1,160 +0,0 @@ ---- -name: Install Test Dependencies - -on: - workflow_call: - inputs: - distro-slug: - required: true - type: string - description: The OS slug to run tests against - nox-session: - required: true - type: string - description: The nox session to run - salt-version: - type: string - required: true - description: The Salt version to set prior to running tests. - cache-prefix: - required: true - type: string - description: Seed used to invalidate caches - platform: - required: true - type: string - description: The platform being tested - arch: - required: true - type: string - description: The platform arch being tested - nox-version: - required: true - type: string - description: The nox version to install - python-version: - required: false - type: string - description: The python version to run tests with - default: "3.10" - package-name: - required: false - type: string - description: The onedir package name to use - default: salt - - -env: - COLUMNS: 190 - AWS_MAX_ATTEMPTS: "10" - AWS_RETRY_MODE: "adaptive" - PIP_INDEX_URL: https://pypi-proxy.saltstack.net/root/local/+simple/ - PIP_EXTRA_INDEX_URL: https://pypi.org/simple - -jobs: - - dependencies: - name: Install - runs-on: - - self-hosted - - linux - - bastion - timeout-minutes: 90 - steps: - - - name: "Throttle Builds" - shell: bash - run: | - t=$(shuf -i 1-30 -n 1); echo "Sleeping $t seconds"; sleep "$t" - - - name: Checkout Source Code - uses: actions/checkout@v4 - - - name: Cache nox.linux.${{ inputs.arch }}.tar.* for session ${{ inputs.nox-session }} - id: nox-dependencies-cache - uses: actions/cache@v3.3.1 - with: - path: nox.linux.${{ inputs.arch }}.tar.* - key: ${{ inputs.cache-prefix }}|testrun-deps|${{ inputs.arch }}|linux|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ - hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py') - }} - - - name: Download Onedir Tarball as an Artifact - if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' - uses: actions/download-artifact@v3 - with: - name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-${{ inputs.platform }}-${{ inputs.arch }}.tar.xz - path: artifacts/ - - - name: Decompress Onedir Tarball - if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' - shell: bash - run: | - python3 -c "import os; os.makedirs('artifacts', exist_ok=True)" - cd artifacts - tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-${{ inputs.platform }}-${{ inputs.arch }}.tar.xz - - - name: PyPi Proxy - if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' - run: | - sed -i '7s;^;--index-url=https://pypi-proxy.saltstack.net/root/local/+simple/ --extra-index-url=https://pypi.org/simple\n;' requirements/static/ci/*/*.txt - - - name: Setup Python Tools Scripts - if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' - uses: ./.github/actions/setup-python-tools-scripts - with: - cache-prefix: ${{ inputs.cache-prefix }}-build-deps-ci - - - name: Get Salt Project GitHub Actions Bot Environment - if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' - run: | - TOKEN=$(curl -sS -f -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 30") - SPB_ENVIRONMENT=$(curl -sS -f -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/tags/instance/spb:environment) - echo "SPB_ENVIRONMENT=$SPB_ENVIRONMENT" >> "$GITHUB_ENV" - - - name: Start VM - if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' - id: spin-up-vm - run: | - tools --timestamps vm create --environment "${SPB_ENVIRONMENT}" --retries=2 ${{ inputs.distro-slug }} - - - name: List Free Space - if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' - run: | - tools --timestamps vm ssh ${{ inputs.distro-slug }} -- df -h || true - - - name: Upload Checkout To VM - if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' - run: | - tools --timestamps vm rsync ${{ inputs.distro-slug }} - - - name: Install Dependencies - if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' - run: | - tools --timestamps vm install-dependencies --nox-session=${{ inputs.nox-session }} ${{ inputs.distro-slug }} - - - name: Cleanup .nox Directory - if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' - run: | - tools --timestamps vm pre-archive-cleanup ${{ inputs.distro-slug }} - - - name: Compress .nox Directory - if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' - run: | - tools --timestamps vm compress-dependencies ${{ inputs.distro-slug }} - - - name: Download Compressed .nox Directory - if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' - run: | - tools --timestamps vm download-dependencies ${{ inputs.distro-slug }} - - - name: Destroy VM - if: always() && steps.nox-dependencies-cache.outputs.cache-hit != 'true' - run: | - tools --timestamps vm destroy --no-wait ${{ inputs.distro-slug }} - - - name: Upload Nox Requirements Tarball - uses: actions/upload-artifact@v3 - with: - name: nox-linux-${{ inputs.arch }}-${{ inputs.nox-session }} - path: nox.linux.${{ inputs.arch }}.tar.* diff --git a/.github/workflows/build-deps-ci-action-macos.yml b/.github/workflows/build-deps-ci-action-macos.yml deleted file mode 100644 index fec65ad6bcb..00000000000 --- a/.github/workflows/build-deps-ci-action-macos.yml +++ /dev/null @@ -1,135 +0,0 @@ ---- -name: Install Test Dependencies - -on: - workflow_call: - inputs: - distro-slug: - required: true - type: string - description: The OS slug to run tests against - nox-session: - required: true - type: string - description: The nox session to run - salt-version: - type: string - required: true - description: The Salt version to set prior to running tests. - cache-prefix: - required: true - type: string - description: Seed used to invalidate caches - platform: - required: true - type: string - description: The platform being tested - arch: - required: true - type: string - description: The platform arch being tested - nox-version: - required: true - type: string - description: The nox version to install - python-version: - required: false - type: string - description: The python version to run tests with - default: "3.10" - package-name: - required: false - type: string - description: The onedir package name to use - default: salt - - -env: - COLUMNS: 190 - PIP_INDEX_URL: "https://pypi-proxy.saltstack.net/root/local/+simple/" - PIP_EXTRA_INDEX_URL: "https://pypi.org/simple" - GITHUB_ACTIONS_PIPELINE: "1" - -jobs: - - dependencies: - name: Install - runs-on: ${{ inputs.distro-slug }} - timeout-minutes: 90 - steps: - - - name: "Throttle Builds" - shell: bash - run: | - t=$(python3 -c 'import random, sys; sys.stdout.write(str(random.randint(1, 15)))'); echo "Sleeping $t seconds"; sleep "$t" - - - name: Checkout Source Code - uses: actions/checkout@v4 - - - name: Cache nox.macos.${{ inputs.arch }}.tar.* for session ${{ inputs.nox-session }} - id: nox-dependencies-cache - uses: actions/cache@v3.3.1 - with: - path: nox.macos.${{ inputs.arch }}.tar.* - key: ${{ inputs.cache-prefix }}|testrun-deps|${{ inputs.arch }}|macos|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ - hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py') - }} - - - name: Download Onedir Tarball as an Artifact - if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' - uses: actions/download-artifact@v3 - with: - name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-${{ inputs.platform }}-${{ inputs.arch }}.tar.xz - path: artifacts/ - - - name: Decompress Onedir Tarball - if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' - shell: bash - run: | - python3 -c "import os; os.makedirs('artifacts', exist_ok=True)" - cd artifacts - tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-${{ inputs.platform }}-${{ inputs.arch }}.tar.xz - - - name: Set up Python ${{ inputs.python-version }} - if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' - uses: actions/setup-python@v4 - with: - python-version: "${{ inputs.python-version }}" - - - name: Install System Dependencies - if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' - run: | - brew install openssl@3 - - - name: Install Nox - if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' - run: | - python3 -m pip install 'nox==${{ inputs.nox-version }}' - - - name: Install Dependencies - if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' - env: - PRINT_TEST_SELECTION: "0" - PRINT_SYSTEM_INFO: "0" - run: | - export PYCURL_SSL_LIBRARY=openssl - export LDFLAGS="-L/usr/local/opt/openssl@3/lib" - export CPPFLAGS="-I/usr/local/opt/openssl@3/include" - export PKG_CONFIG_PATH="/usr/local/opt/openssl@3/lib/pkgconfig" - nox --install-only -e ${{ inputs.nox-session }} - - - name: Cleanup .nox Directory - if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' - run: | - nox --force-color -e "pre-archive-cleanup(pkg=False)" - - - name: Compress .nox Directory - if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' - run: | - nox --force-color -e compress-dependencies -- macos ${{ inputs.arch }} - - - name: Upload Nox Requirements Tarball - uses: actions/upload-artifact@v3 - with: - name: nox-macos-${{ inputs.arch }}-${{ inputs.nox-session }} - path: nox.macos.${{ inputs.arch }}.tar.* diff --git a/.github/workflows/build-deps-ci-action-windows.yml b/.github/workflows/build-deps-ci-action-windows.yml deleted file mode 100644 index 5bff2d825ce..00000000000 --- a/.github/workflows/build-deps-ci-action-windows.yml +++ /dev/null @@ -1,160 +0,0 @@ ---- -name: Install Test Dependencies - -on: - workflow_call: - inputs: - distro-slug: - required: true - type: string - description: The OS slug to run tests against - nox-session: - required: true - type: string - description: The nox session to run - salt-version: - type: string - required: true - description: The Salt version to set prior to running tests. - cache-prefix: - required: true - type: string - description: Seed used to invalidate caches - platform: - required: true - type: string - description: The platform being tested - arch: - required: true - type: string - description: The platform arch being tested - nox-version: - required: true - type: string - description: The nox version to install - python-version: - required: false - type: string - description: The python version to run tests with - default: "3.10" - package-name: - required: false - type: string - description: The onedir package name to use - default: salt - - -env: - COLUMNS: 190 - AWS_MAX_ATTEMPTS: "10" - AWS_RETRY_MODE: "adaptive" - PIP_INDEX_URL: https://pypi-proxy.saltstack.net/root/local/+simple/ - PIP_EXTRA_INDEX_URL: https://pypi.org/simple - -jobs: - - dependencies: - name: Install - runs-on: - - self-hosted - - linux - - bastion - timeout-minutes: 90 - steps: - - - name: "Throttle Builds" - shell: bash - run: | - t=$(shuf -i 1-30 -n 1); echo "Sleeping $t seconds"; sleep "$t" - - - name: Checkout Source Code - uses: actions/checkout@v4 - - - name: Cache nox.windows.${{ inputs.arch }}.tar.* for session ${{ inputs.nox-session }} - id: nox-dependencies-cache - uses: actions/cache@v3.3.1 - with: - path: nox.windows.${{ inputs.arch }}.tar.* - key: ${{ inputs.cache-prefix }}|testrun-deps|${{ inputs.arch }}|windows|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ - hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py') - }} - - - name: Download Onedir Tarball as an Artifact - if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' - uses: actions/download-artifact@v3 - with: - name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-${{ inputs.platform }}-${{ inputs.arch }}.tar.xz - path: artifacts/ - - - name: Decompress Onedir Tarball - if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' - shell: bash - run: | - python3 -c "import os; os.makedirs('artifacts', exist_ok=True)" - cd artifacts - tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-${{ inputs.platform }}-${{ inputs.arch }}.tar.xz - - - name: PyPi Proxy - if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' - run: | - sed -i '7s;^;--index-url=https://pypi-proxy.saltstack.net/root/local/+simple/ --extra-index-url=https://pypi.org/simple\n;' requirements/static/ci/*/*.txt - - - name: Setup Python Tools Scripts - if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' - uses: ./.github/actions/setup-python-tools-scripts - with: - cache-prefix: ${{ inputs.cache-prefix }}-build-deps-ci - - - name: Get Salt Project GitHub Actions Bot Environment - if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' - run: | - TOKEN=$(curl -sS -f -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 30") - SPB_ENVIRONMENT=$(curl -sS -f -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/tags/instance/spb:environment) - echo "SPB_ENVIRONMENT=$SPB_ENVIRONMENT" >> "$GITHUB_ENV" - - - name: Start VM - if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' - id: spin-up-vm - run: | - tools --timestamps vm create --environment "${SPB_ENVIRONMENT}" --retries=2 ${{ inputs.distro-slug }} - - - name: List Free Space - if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' - run: | - tools --timestamps vm ssh ${{ inputs.distro-slug }} -- df -h || true - - - name: Upload Checkout To VM - if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' - run: | - tools --timestamps vm rsync ${{ inputs.distro-slug }} - - - name: Install Dependencies - if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' - run: | - tools --timestamps vm install-dependencies --nox-session=${{ inputs.nox-session }} ${{ inputs.distro-slug }} - - - name: Cleanup .nox Directory - if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' - run: | - tools --timestamps vm pre-archive-cleanup ${{ inputs.distro-slug }} - - - name: Compress .nox Directory - if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' - run: | - tools --timestamps vm compress-dependencies ${{ inputs.distro-slug }} - - - name: Download Compressed .nox Directory - if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' - run: | - tools --timestamps vm download-dependencies ${{ inputs.distro-slug }} - - - name: Destroy VM - if: always() && steps.nox-dependencies-cache.outputs.cache-hit != 'true' - run: | - tools --timestamps vm destroy --no-wait ${{ inputs.distro-slug }} - - - name: Upload Nox Requirements Tarball - uses: actions/upload-artifact@v3 - with: - name: nox-windows-${{ inputs.arch }}-${{ inputs.nox-session }} - path: nox.windows.${{ inputs.arch }}.tar.* diff --git a/.github/workflows/build-deps-ci-action.yml b/.github/workflows/build-deps-ci-action.yml new file mode 100644 index 00000000000..5e6ef722af4 --- /dev/null +++ b/.github/workflows/build-deps-ci-action.yml @@ -0,0 +1,358 @@ +--- +name: Install Test Dependencies + +on: + workflow_call: + inputs: + nox-session: + required: true + type: string + description: The nox session to run + salt-version: + type: string + required: true + description: The Salt version to set prior to running tests. + cache-prefix: + required: true + type: string + description: Seed used to invalidate caches + nox-version: + required: true + type: string + description: The nox version to install + python-version: + required: false + type: string + description: The python version to run tests with + default: "3.10" + package-name: + required: false + type: string + description: The onedir package name to use + default: salt + + +env: + COLUMNS: 190 + AWS_MAX_ATTEMPTS: "10" + AWS_RETRY_MODE: "adaptive" + PIP_INDEX_URL: https://pypi-proxy.saltstack.net/root/local/+simple/ + PIP_EXTRA_INDEX_URL: https://pypi.org/simple + +jobs: + + linux-dependencies: + name: Linux + runs-on: + - self-hosted + - linux + - bastion + timeout-minutes: 90 + strategy: + fail-fast: false + matrix: + include: + - distro-slug: centos-7 + arch: x86_64 + - distro-slug: centos-7-arm64 + arch: arm64 + steps: + + - name: "Throttle Builds" + shell: bash + run: | + t=$(shuf -i 1-30 -n 1); echo "Sleeping $t seconds"; sleep "$t" + + - name: Checkout Source Code + uses: actions/checkout@v4 + + - name: Cache nox.linux.${{ matrix.arch }}.tar.* for session ${{ inputs.nox-session }} + id: nox-dependencies-cache + uses: actions/cache@v3.3.1 + with: + path: nox.linux.${{ matrix.arch }}.tar.* + key: ${{ inputs.cache-prefix }}|testrun-deps|${{ matrix.arch }}|linux|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ + hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py') + }} + + - name: Download Onedir Tarball as an Artifact + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + uses: actions/download-artifact@v3 + with: + name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-linux-${{ matrix.arch }}.tar.xz + path: artifacts/ + + - name: Decompress Onedir Tarball + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + shell: bash + run: | + python3 -c "import os; os.makedirs('artifacts', exist_ok=True)" + cd artifacts + tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-linux-${{ matrix.arch }}.tar.xz + + - name: PyPi Proxy + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + sed -i '7s;^;--index-url=https://pypi-proxy.saltstack.net/root/local/+simple/ --extra-index-url=https://pypi.org/simple\n;' requirements/static/ci/*/*.txt + + - name: Setup Python Tools Scripts + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + uses: ./.github/actions/setup-python-tools-scripts + with: + cache-prefix: ${{ inputs.cache-prefix }}-build-deps-ci + + - name: Get Salt Project GitHub Actions Bot Environment + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + TOKEN=$(curl -sS -f -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 30") + SPB_ENVIRONMENT=$(curl -sS -f -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/tags/instance/spb:environment) + echo "SPB_ENVIRONMENT=$SPB_ENVIRONMENT" >> "$GITHUB_ENV" + + - name: Start VM + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + id: spin-up-vm + run: | + tools --timestamps vm create --environment "${SPB_ENVIRONMENT}" --retries=2 ${{ matrix.distro-slug }} + + - name: List Free Space + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + tools --timestamps vm ssh ${{ matrix.distro-slug }} -- df -h || true + + - name: Upload Checkout To VM + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + tools --timestamps vm rsync ${{ matrix.distro-slug }} + + - name: Install Dependencies + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + tools --timestamps vm install-dependencies --nox-session=${{ inputs.nox-session }} ${{ matrix.distro-slug }} + + - name: Cleanup .nox Directory + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + tools --timestamps vm pre-archive-cleanup ${{ matrix.distro-slug }} + + - name: Compress .nox Directory + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + tools --timestamps vm compress-dependencies ${{ matrix.distro-slug }} + + - name: Download Compressed .nox Directory + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + tools --timestamps vm download-dependencies ${{ matrix.distro-slug }} + + - name: Destroy VM + if: always() && steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + tools --timestamps vm destroy --no-wait ${{ matrix.distro-slug }} + + - name: Upload Nox Requirements Tarball + uses: actions/upload-artifact@v3 + with: + name: nox-linux-${{ matrix.arch }}-${{ inputs.nox-session }} + path: nox.linux.${{ matrix.arch }}.tar.* + + macos-dependencies: + name: MacOS + runs-on: ${{ matrix.distro-slug }} + timeout-minutes: 90 + strategy: + fail-fast: false + matrix: + include: + - distro-slug: macos-12 + arch: x86_64 + - distro-slug: macos-13-xlarge + arch: arm64 + steps: + + - name: "Throttle Builds" + shell: bash + run: | + t=$(python3 -c 'import random, sys; sys.stdout.write(str(random.randint(1, 15)))'); echo "Sleeping $t seconds"; sleep "$t" + + - name: Checkout Source Code + uses: actions/checkout@v4 + + - name: Cache nox.macos.${{ matrix.arch }}.tar.* for session ${{ inputs.nox-session }} + id: nox-dependencies-cache + uses: actions/cache@v3.3.1 + with: + path: nox.macos.${{ matrix.arch }}.tar.* + key: ${{ inputs.cache-prefix }}|testrun-deps|${{ matrix.arch }}|macos|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ + hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py') + }} + + - name: Download Onedir Tarball as an Artifact + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + uses: actions/download-artifact@v3 + with: + name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-darwin-${{ matrix.arch }}.tar.xz + path: artifacts/ + + - name: Decompress Onedir Tarball + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + shell: bash + run: | + python3 -c "import os; os.makedirs('artifacts', exist_ok=True)" + cd artifacts + tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-darwin-${{ matrix.arch }}.tar.xz + + - name: Set up Python ${{ inputs.python-version }} + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + uses: actions/setup-python@v4 + with: + python-version: "${{ inputs.python-version }}" + + - name: Install System Dependencies + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + brew install openssl@3 + + - name: Install Nox + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + python3 -m pip install 'nox==${{ inputs.nox-version }}' + + - name: Install Dependencies + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + env: + PRINT_TEST_SELECTION: "0" + PRINT_SYSTEM_INFO: "0" + run: | + export PYCURL_SSL_LIBRARY=openssl + export LDFLAGS="-L/usr/local/opt/openssl@3/lib" + export CPPFLAGS="-I/usr/local/opt/openssl@3/include" + export PKG_CONFIG_PATH="/usr/local/opt/openssl@3/lib/pkgconfig" + nox --install-only -e ${{ inputs.nox-session }} + + - name: Cleanup .nox Directory + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + nox --force-color -e "pre-archive-cleanup(pkg=False)" + + - name: Compress .nox Directory + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + nox --force-color -e compress-dependencies -- macos ${{ matrix.arch }} + + - name: Upload Nox Requirements Tarball + uses: actions/upload-artifact@v3 + with: + name: nox-macos-${{ matrix.arch }}-${{ inputs.nox-session }} + path: nox.macos.${{ matrix.arch }}.tar.* + + windows-dependencies: + name: Windows + runs-on: + - self-hosted + - linux + - bastion + timeout-minutes: 90 + strategy: + fail-fast: false + matrix: + include: + - distro-slug: windows-2022 + arch: amd64 + steps: + + - name: "Throttle Builds" + shell: bash + run: | + t=$(shuf -i 1-30 -n 1); echo "Sleeping $t seconds"; sleep "$t" + + - name: Checkout Source Code + uses: actions/checkout@v4 + + - name: Cache nox.windows.${{ matrix.arch }}.tar.* for session ${{ inputs.nox-session }} + id: nox-dependencies-cache + uses: actions/cache@v3.3.1 + with: + path: nox.windows.${{ matrix.arch }}.tar.* + key: ${{ inputs.cache-prefix }}|testrun-deps|${{ matrix.arch }}|windows|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ + hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py') + }} + + - name: Download Onedir Tarball as an Artifact + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + uses: actions/download-artifact@v3 + with: + name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-windows-${{ matrix.arch }}.tar.xz + path: artifacts/ + + - name: Decompress Onedir Tarball + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + shell: bash + run: | + python3 -c "import os; os.makedirs('artifacts', exist_ok=True)" + cd artifacts + tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-windows-${{ matrix.arch }}.tar.xz + + - name: PyPi Proxy + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + sed -i '7s;^;--index-url=https://pypi-proxy.saltstack.net/root/local/+simple/ --extra-index-url=https://pypi.org/simple\n;' requirements/static/ci/*/*.txt + + - name: Setup Python Tools Scripts + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + uses: ./.github/actions/setup-python-tools-scripts + with: + cache-prefix: ${{ inputs.cache-prefix }}-build-deps-ci + + - name: Get Salt Project GitHub Actions Bot Environment + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + TOKEN=$(curl -sS -f -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 30") + SPB_ENVIRONMENT=$(curl -sS -f -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/tags/instance/spb:environment) + echo "SPB_ENVIRONMENT=$SPB_ENVIRONMENT" >> "$GITHUB_ENV" + + - name: Start VM + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + id: spin-up-vm + run: | + tools --timestamps vm create --environment "${SPB_ENVIRONMENT}" --retries=2 ${{ matrix.distro-slug }} + + - name: List Free Space + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + tools --timestamps vm ssh ${{ matrix.distro-slug }} -- df -h || true + + - name: Upload Checkout To VM + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + tools --timestamps vm rsync ${{ matrix.distro-slug }} + + - name: Install Dependencies + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + tools --timestamps vm install-dependencies --nox-session=${{ inputs.nox-session }} ${{ matrix.distro-slug }} + + - name: Cleanup .nox Directory + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + tools --timestamps vm pre-archive-cleanup ${{ matrix.distro-slug }} + + - name: Compress .nox Directory + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + tools --timestamps vm compress-dependencies ${{ matrix.distro-slug }} + + - name: Download Compressed .nox Directory + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + tools --timestamps vm download-dependencies ${{ matrix.distro-slug }} + + - name: Destroy VM + if: always() && steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + tools --timestamps vm destroy --no-wait ${{ matrix.distro-slug }} + + - name: Upload Nox Requirements Tarball + uses: actions/upload-artifact@v3 + with: + name: nox-windows-${{ matrix.arch }}-${{ inputs.nox-session }} + path: nox.windows.${{ matrix.arch }}.tar.* diff --git a/.github/workflows/build-deps-onedir-linux.yml b/.github/workflows/build-deps-onedir-linux.yml deleted file mode 100644 index 8d149c46261..00000000000 --- a/.github/workflows/build-deps-onedir-linux.yml +++ /dev/null @@ -1,83 +0,0 @@ ---- -name: Build Packaging Dependencies Onedir - -on: - workflow_call: - inputs: - salt-version: - type: string - required: true - description: The Salt version to set prior to building packages. - github-hosted-runners: - type: boolean - required: true - self-hosted-runners: - type: boolean - required: true - cache-seed: - required: true - type: string - description: Seed used to invalidate caches - relenv-version: - required: true - type: string - description: The version of relenv to use - python-version: - required: true - type: string - description: The version of python to use with relenv - -env: - RELENV_DATA: "${{ github.workspace }}/.relenv" - COLUMNS: 190 - AWS_MAX_ATTEMPTS: "10" - AWS_RETRY_MODE: "adaptive" - PIP_INDEX_URL: https://pypi-proxy.saltstack.net/root/local/+simple/ - PIP_EXTRA_INDEX_URL: https://pypi.org/simple - -jobs: - - build-deps-linux: - name: Linux - if: ${{ inputs.self-hosted-runners }} - strategy: - fail-fast: false - matrix: - arch: - - x86_64 - - aarch64 - runs-on: - - self-hosted - - linux - - ${{ matrix.arch }} - steps: - - - name: "Throttle Builds" - shell: bash - run: | - t=$(python3 -c 'import random, sys; sys.stdout.write(str(random.randint(1, 15)))'); echo "Sleeping $t seconds"; sleep "$t" - - - uses: actions/checkout@v4 - - - name: Setup Python Tools Scripts - uses: ./.github/actions/setup-python-tools-scripts - with: - cache-prefix: ${{ inputs.cache-seed }}-build-deps-linux-${{ matrix.arch }} - - - name: Setup Relenv - id: setup-relenv - uses: ./.github/actions/setup-relenv - with: - platform: linux - arch: ${{ matrix.arch }} - version: ${{ inputs.relenv-version }} - cache-seed: ${{ inputs.cache-seed }} - python-version: ${{ inputs.python-version }} - - - name: Install Salt Packaging Dependencies into Relenv Onedir - uses: ./.github/actions/build-onedir-deps - with: - platform: linux - arch: ${{ matrix.arch }} - python-version: "${{ inputs.python-version }}" - cache-prefix: ${{ inputs.cache-seed }}|relenv|${{ steps.setup-relenv.outputs.version }} diff --git a/.github/workflows/build-deps-onedir-macos.yml b/.github/workflows/build-deps-onedir-macos.yml deleted file mode 100644 index 2886c3f993d..00000000000 --- a/.github/workflows/build-deps-onedir-macos.yml +++ /dev/null @@ -1,88 +0,0 @@ ---- -name: Build Packaging Dependencies Onedir - -on: - workflow_call: - inputs: - salt-version: - type: string - required: true - description: The Salt version to set prior to building packages. - github-hosted-runners: - type: boolean - required: true - self-hosted-runners: - type: boolean - required: true - cache-seed: - required: true - type: string - description: Seed used to invalidate caches - relenv-version: - required: true - type: string - description: The version of relenv to use - python-version: - required: true - type: string - description: The version of python to use with relenv - -env: - RELENV_DATA: "${{ github.workspace }}/.relenv" - COLUMNS: 190 - AWS_MAX_ATTEMPTS: "10" - AWS_RETRY_MODE: "adaptive" - PIP_INDEX_URL: https://pypi-proxy.saltstack.net/root/local/+simple/ - PIP_EXTRA_INDEX_URL: https://pypi.org/simple - -jobs: - - build-deps-macos: - name: macOS - if: ${{ inputs.github-hosted-runners }} - strategy: - fail-fast: false - max-parallel: 2 - matrix: - arch: - - x86_64 - - aarch64 - runs-on: - - ${{ matrix.arch == 'aarch64' && 'macos-13-xlarge' || 'macos-12' }} - - steps: - - - name: "Throttle Builds" - shell: bash - run: | - t=$(python3 -c 'import random, sys; sys.stdout.write(str(random.randint(1, 15)))'); echo "Sleeping $t seconds"; sleep "$t" - - - uses: actions/checkout@v4 - - - name: Set up Python 3.10 - uses: actions/setup-python@v4 - with: - python-version: "3.10" - - - name: Setup Python Tools Scripts - uses: ./.github/actions/setup-python-tools-scripts - with: - cache-prefix: ${{ inputs.cache-seed }}-build-deps-macos - - - name: Setup Relenv - id: setup-relenv - uses: ./.github/actions/setup-relenv - with: - platform: darwin - arch: ${{ matrix.arch == 'aarch64' && 'arm64' || matrix.arch }} - version: ${{ inputs.relenv-version }} - cache-seed: ${{ inputs.cache-seed }} - python-version: ${{ inputs.python-version }} - - - name: Install Salt Packaging Dependencies into Relenv Onedir - uses: ./.github/actions/build-onedir-deps - with: - platform: darwin - arch: ${{ matrix.arch }} - python-version: "${{ inputs.python-version }}" - cache-prefix: ${{ inputs.cache-seed }}|relenv|${{ steps.setup-relenv.outputs.version }} diff --git a/.github/workflows/build-deps-onedir-windows.yml b/.github/workflows/build-deps-onedir-windows.yml deleted file mode 100644 index af741e06224..00000000000 --- a/.github/workflows/build-deps-onedir-windows.yml +++ /dev/null @@ -1,86 +0,0 @@ ---- -name: Build Packaging Dependencies Onedir - -on: - workflow_call: - inputs: - salt-version: - type: string - required: true - description: The Salt version to set prior to building packages. - github-hosted-runners: - type: boolean - required: true - self-hosted-runners: - type: boolean - required: true - cache-seed: - required: true - type: string - description: Seed used to invalidate caches - relenv-version: - required: true - type: string - description: The version of relenv to use - python-version: - required: true - type: string - description: The version of python to use with relenv - -env: - RELENV_DATA: "${{ github.workspace }}/.relenv" - COLUMNS: 190 - AWS_MAX_ATTEMPTS: "10" - AWS_RETRY_MODE: "adaptive" - PIP_INDEX_URL: https://pypi-proxy.saltstack.net/root/local/+simple/ - PIP_EXTRA_INDEX_URL: https://pypi.org/simple - -jobs: - - build-deps-windows: - name: Windows - if: ${{ inputs.github-hosted-runners }} - strategy: - fail-fast: false - max-parallel: 2 - matrix: - arch: - - x86 - - amd64 - runs-on: windows-latest - steps: - - - name: "Throttle Builds" - shell: bash - run: | - t=$(python3 -c 'import random, sys; sys.stdout.write(str(random.randint(1, 15)))'); echo "Sleeping $t seconds"; sleep "$t" - - - uses: actions/checkout@v4 - - - name: Set up Python 3.10 - uses: actions/setup-python@v4 - with: - python-version: "3.10" - - - name: Setup Python Tools Scripts - uses: ./.github/actions/setup-python-tools-scripts - with: - cache-prefix: ${{ inputs.cache-seed }}-build-deps-windows-${{ matrix.arch }} - - - name: Setup Relenv - id: setup-relenv - uses: ./.github/actions/setup-relenv - with: - platform: windows - arch: ${{ matrix.arch }} - version: ${{ inputs.relenv-version }} - cache-seed: ${{ inputs.cache-seed }} - python-version: ${{ inputs.python-version }} - - - name: Install Salt Packaging Dependencies into Relenv Onedir - uses: ./.github/actions/build-onedir-deps - with: - platform: windows - arch: ${{ matrix.arch }} - python-version: "${{ inputs.python-version }}" - cache-prefix: ${{ inputs.cache-seed }}|relenv|${{ steps.setup-relenv.outputs.version }} diff --git a/.github/workflows/build-deps-onedir.yml b/.github/workflows/build-deps-onedir.yml new file mode 100644 index 00000000000..438ab3c6ae9 --- /dev/null +++ b/.github/workflows/build-deps-onedir.yml @@ -0,0 +1,181 @@ +--- +name: Build Packaging Dependencies Onedir + +on: + workflow_call: + inputs: + salt-version: + type: string + required: true + description: The Salt version to set prior to building packages. + github-hosted-runners: + type: boolean + required: true + self-hosted-runners: + type: boolean + required: true + cache-seed: + required: true + type: string + description: Seed used to invalidate caches + relenv-version: + required: true + type: string + description: The version of relenv to use + python-version: + required: true + type: string + description: The version of python to use with relenv + +env: + RELENV_DATA: "${{ github.workspace }}/.relenv" + COLUMNS: 190 + AWS_MAX_ATTEMPTS: "10" + AWS_RETRY_MODE: "adaptive" + PIP_INDEX_URL: https://pypi-proxy.saltstack.net/root/local/+simple/ + PIP_EXTRA_INDEX_URL: https://pypi.org/simple + +jobs: + + build-deps-linux: + name: Linux + if: ${{ inputs.self-hosted-runners }} + strategy: + fail-fast: false + matrix: + arch: + - x86_64 + - aarch64 + runs-on: + - self-hosted + - linux + - ${{ matrix.arch }} + steps: + + - name: "Throttle Builds" + shell: bash + run: | + t=$(python3 -c 'import random, sys; sys.stdout.write(str(random.randint(1, 15)))'); echo "Sleeping $t seconds"; sleep "$t" + + - uses: actions/checkout@v4 + + - name: Setup Python Tools Scripts + uses: ./.github/actions/setup-python-tools-scripts + with: + cache-prefix: ${{ inputs.cache-seed }}-build-deps-linux-${{ matrix.arch }} + + - name: Setup Relenv + id: setup-relenv + uses: ./.github/actions/setup-relenv + with: + platform: linux + arch: ${{ matrix.arch }} + version: ${{ inputs.relenv-version }} + cache-seed: ${{ inputs.cache-seed }} + python-version: ${{ inputs.python-version }} + + - name: Install Salt Packaging Dependencies into Relenv Onedir + uses: ./.github/actions/build-onedir-deps + with: + platform: linux + arch: ${{ matrix.arch }} + python-version: "${{ inputs.python-version }}" + cache-prefix: ${{ inputs.cache-seed }}|relenv|${{ steps.setup-relenv.outputs.version }} + + build-deps-macos: + name: macOS + if: ${{ inputs.github-hosted-runners }} + strategy: + fail-fast: false + max-parallel: 2 + matrix: + arch: + - x86_64 + - aarch64 + runs-on: + - ${{ matrix.arch == 'aarch64' && 'macos-13-xlarge' || 'macos-12' }} + + steps: + + - name: "Throttle Builds" + shell: bash + run: | + t=$(python3 -c 'import random, sys; sys.stdout.write(str(random.randint(1, 15)))'); echo "Sleeping $t seconds"; sleep "$t" + + - uses: actions/checkout@v4 + + - name: Set up Python 3.10 + uses: actions/setup-python@v4 + with: + python-version: "3.10" + + - name: Setup Python Tools Scripts + uses: ./.github/actions/setup-python-tools-scripts + with: + cache-prefix: ${{ inputs.cache-seed }}-build-deps-macos + + - name: Setup Relenv + id: setup-relenv + uses: ./.github/actions/setup-relenv + with: + platform: darwin + arch: ${{ matrix.arch == 'aarch64' && 'arm64' || matrix.arch }} + version: ${{ inputs.relenv-version }} + cache-seed: ${{ inputs.cache-seed }} + python-version: ${{ inputs.python-version }} + + - name: Install Salt Packaging Dependencies into Relenv Onedir + uses: ./.github/actions/build-onedir-deps + with: + platform: darwin + arch: ${{ matrix.arch }} + python-version: "${{ inputs.python-version }}" + cache-prefix: ${{ inputs.cache-seed }}|relenv|${{ steps.setup-relenv.outputs.version }} + + build-deps-windows: + name: Windows + if: ${{ inputs.github-hosted-runners }} + strategy: + fail-fast: false + max-parallel: 2 + matrix: + arch: + - x86 + - amd64 + runs-on: windows-latest + steps: + + - name: "Throttle Builds" + shell: bash + run: | + t=$(python3 -c 'import random, sys; sys.stdout.write(str(random.randint(1, 15)))'); echo "Sleeping $t seconds"; sleep "$t" + + - uses: actions/checkout@v4 + + - name: Set up Python 3.10 + uses: actions/setup-python@v4 + with: + python-version: "3.10" + + - name: Setup Python Tools Scripts + uses: ./.github/actions/setup-python-tools-scripts + with: + cache-prefix: ${{ inputs.cache-seed }}-build-deps-windows-${{ matrix.arch }} + + - name: Setup Relenv + id: setup-relenv + uses: ./.github/actions/setup-relenv + with: + platform: windows + arch: ${{ matrix.arch }} + version: ${{ inputs.relenv-version }} + cache-seed: ${{ inputs.cache-seed }} + python-version: ${{ inputs.python-version }} + + - name: Install Salt Packaging Dependencies into Relenv Onedir + uses: ./.github/actions/build-onedir-deps + with: + platform: windows + arch: ${{ matrix.arch }} + python-version: "${{ inputs.python-version }}" + cache-prefix: ${{ inputs.cache-seed }}|relenv|${{ steps.setup-relenv.outputs.version }} diff --git a/.github/workflows/build-macos-packages.yml b/.github/workflows/build-macos-packages.yml deleted file mode 100644 index 9b3324893ab..00000000000 --- a/.github/workflows/build-macos-packages.yml +++ /dev/null @@ -1,158 +0,0 @@ ---- -name: Build macOS Packages - -on: - workflow_call: - inputs: - salt-version: - type: string - required: true - description: The Salt version to set prior to building packages. - relenv-version: - type: string - required: true - description: The relenv version to set prior to building packages. - python-version: - required: true - type: string - description: The version of python to use with relenv - sign-packages: - type: boolean - default: false - description: Sign Packages - environment: - type: string - description: The GitHub Environment where this workflow should run - default: ci - source: - required: true - type: string - description: The backend to build the packages with - cache-prefix: - required: true - type: string - description: Seed used to invalidate caches - -env: - COLUMNS: 190 - PIP_INDEX_URL: https://pypi-proxy.saltstack.net/root/local/+simple/ - PIP_EXTRA_INDEX_URL: https://pypi.org/simple - -jobs: - - build-pkgs: - name: macOS - environment: ${{ inputs.environment }} - strategy: - fail-fast: false - matrix: - arch: - - x86_64 - - aarch64 - source: - - ${{ inputs.source }} - - runs-on: - - ${{ matrix.arch == 'aarch64' && 'macos-13-xlarge' || 'macos-12' }} - - steps: - - name: Check Package Signing Enabled - shell: bash - id: check-pkg-sign - run: | - if [ "${{ inputs.sign-packages }}" == "true" ]; then - if [ "${{ (secrets.MAC_SIGN_APPLE_ACCT != '' && contains(fromJSON('["nightly", "staging"]'), inputs.environment)) && 'true' || 'false' }}" != "true" ]; then - MSG="Secrets for signing packages are not available. The packages created will NOT be signed." - echo "${MSG}" - echo "${MSG}" >> "${GITHUB_STEP_SUMMARY}" - echo "sign-pkgs=false" >> "$GITHUB_OUTPUT" - else - MSG="The packages created WILL be signed." - echo "${MSG}" - echo "${MSG}" >> "${GITHUB_STEP_SUMMARY}" - echo "sign-pkgs=true" >> "$GITHUB_OUTPUT" - fi - else - MSG="The sign-packages input is false. The packages created will NOT be signed." - echo "${MSG}" - echo "${MSG}" >> "${GITHUB_STEP_SUMMARY}" - echo "sign-pkgs=false" >> "$GITHUB_OUTPUT" - fi - - - uses: actions/checkout@v4 - - uses: actions/setup-python@v4 - with: - python-version: 3.11 - - - name: Setup Python Tools Scripts - uses: ./.github/actions/setup-python-tools-scripts - with: - cache-prefix: ${{ inputs.cache-prefix }} - - - name: Setup Salt Version - id: setup-salt-version - uses: ./.github/actions/setup-salt-version - with: - salt-version: "${{ inputs.salt-version }}" - - - name: Download Onedir Tarball as an Artifact - uses: actions/download-artifact@v3 - with: - name: salt-${{ inputs.salt-version }}-onedir-darwin-${{ matrix.arch }}.tar.xz - path: artifacts/ - - - name: Prepare Package Signing - if: ${{ steps.check-pkg-sign.outputs.sign-pkgs == 'true' }} - run: | - echo ${{ secrets.MAC_SIGN_DEV_APP_CERT_B64 }} | base64 --decode > app-cert.p12 - echo ${{ secrets.MAC_SIGN_DEV_INSTALL_CERT_B64 }} | base64 --decode > install-cert.p12 - # Create SaltSigning keychain. This will contain the certificates for signing - security create-keychain -p "${{ secrets.MAC_SIGN_DEV_PASSWORD }}" "${{ secrets.MAC_SIGN_DEV_KEYCHAIN }}" - # Append SaltSigning keychain to the search list - security list-keychains -d user -s "${{ secrets.MAC_SIGN_DEV_KEYCHAIN }}" "$(security list-keychains -d user | sed s/\"//g)" - # Unlock the keychain so we can import certs - security unlock-keychain -p "${{ secrets.MAC_SIGN_DEV_PASSWORD }}" "${{ secrets.MAC_SIGN_DEV_KEYCHAIN }}" - # Developer Application Certificate - security import "app-cert.p12" -t agg -k "${{ secrets.MAC_SIGN_DEV_KEYCHAIN }}" -P "${{ secrets.MAC_SIGN_DEV_PASSWORD }}" -A - rm app-cert.p12 - # Developer Installer Certificate - security import "install-cert.p12" -t agg -k "${{ secrets.MAC_SIGN_DEV_KEYCHAIN }}" -P "${{ secrets.MAC_SIGN_DEV_PASSWORD }}" -A - rm install-cert.p12 - security set-key-partition-list -S apple-tool:,apple: -k "${{ secrets.MAC_SIGN_DEV_PASSWORD }}" "${{ secrets.MAC_SIGN_DEV_KEYCHAIN }}" &> /dev/null - - - name: Build MacOS Package - env: - DEV_APP_CERT: "${{ secrets.MAC_SIGN_DEV_APP_CERT }}" - DEV_INSTALL_CERT: "${{ secrets.MAC_SIGN_DEV_INSTALL_CERT }}" - APPLE_ACCT: "${{ secrets.MAC_SIGN_APPLE_ACCT }}" - APPLE_TEAM_ID: "${{ secrets.MAC_SIGN_APPLE_TEAM_ID }}" - APP_SPEC_PWD: "${{ secrets.MAC_SIGN_APP_SPEC_PWD }}" - run: | - tools pkg build macos --relenv-version=${{ inputs.relenv-version }} --python-version=${{ inputs.python-version }} ${{ - inputs.source == 'onedir' && - format( - '--onedir salt-{0}-onedir-darwin-{1}.tar.xz --salt-version {0} {2}', - inputs.salt-version, - matrix.arch, - steps.check-pkg-sign.outputs.sign-pkgs == 'true' && '--sign' || '' - ) - || - format('--salt-version {0}', inputs.salt-version) - }} - - - name: Set Artifact Name - id: set-artifact-name - run: | - if [ "${{ inputs.source }}" != "src" ]; then - echo "artifact-name=salt-${{ inputs.salt-version }}-${{ matrix.arch }}-macos" >> "$GITHUB_OUTPUT" - else - echo "artifact-name=salt-${{ inputs.salt-version }}-${{ matrix.arch }}-macos-from-src" >> "$GITHUB_OUTPUT" - fi - - - name: Upload ${{ matrix.arch }} Package - uses: actions/upload-artifact@v3 - with: - name: ${{ steps.set-artifact-name.outputs.artifact-name }} - path: pkg/macos/salt-${{ inputs.salt-version }}-py3-*.pkg - retention-days: 7 - if-no-files-found: error diff --git a/.github/workflows/build-packages.yml b/.github/workflows/build-packages.yml new file mode 100644 index 00000000000..7a7f13871e4 --- /dev/null +++ b/.github/workflows/build-packages.yml @@ -0,0 +1,461 @@ +--- +name: Build Packages + +on: + workflow_call: + inputs: + salt-version: + type: string + required: true + description: The Salt version to set prior to building packages. + relenv-version: + type: string + required: true + description: The relenv version to set prior to building packages. + python-version: + required: true + type: string + description: The version of python to use with relenv + sign-macos-packages: + type: boolean + default: false + description: Sign MacOS Packages + sign-windows-packages: + type: boolean + default: false + description: Sign Windows Packages + environment: + type: string + description: The GitHub Environment where this workflow should run + default: ci + source: + required: true + type: string + description: The backend to build the packages with + cache-prefix: + required: true + type: string + description: Seed used to invalidate caches + +env: + COLUMNS: 190 + PIP_INDEX_URL: https://pypi-proxy.saltstack.net/root/local/+simple/ + PIP_EXTRA_INDEX_URL: https://pypi.org/simple + +jobs: + + build-macos-pkgs: + name: macOS + environment: ${{ inputs.environment }} + strategy: + fail-fast: false + matrix: + arch: + - x86_64 + - aarch64 + source: + - ${{ inputs.source }} + + runs-on: + - ${{ matrix.arch == 'aarch64' && 'macos-13-xlarge' || 'macos-12' }} + + steps: + - name: Check Package Signing Enabled + shell: bash + id: check-pkg-sign + run: | + if [ "${{ inputs.sign-macos-packages }}" == "true" ]; then + if [ "${{ (secrets.MAC_SIGN_APPLE_ACCT != '' && contains(fromJSON('["nightly", "staging"]'), inputs.environment)) && 'true' || 'false' }}" != "true" ]; then + MSG="Secrets for signing packages are not available. The packages created will NOT be signed." + echo "${MSG}" + echo "${MSG}" >> "${GITHUB_STEP_SUMMARY}" + echo "sign-pkgs=false" >> "$GITHUB_OUTPUT" + else + MSG="The packages created WILL be signed." + echo "${MSG}" + echo "${MSG}" >> "${GITHUB_STEP_SUMMARY}" + echo "sign-pkgs=true" >> "$GITHUB_OUTPUT" + fi + else + MSG="The sign-macos-packages input is false. The packages created will NOT be signed." + echo "${MSG}" + echo "${MSG}" >> "${GITHUB_STEP_SUMMARY}" + echo "sign-pkgs=false" >> "$GITHUB_OUTPUT" + fi + + - uses: actions/checkout@v4 + - uses: actions/setup-python@v4 + with: + python-version: 3.11 + + - name: Setup Python Tools Scripts + uses: ./.github/actions/setup-python-tools-scripts + with: + cache-prefix: ${{ inputs.cache-prefix }} + + - name: Setup Salt Version + id: setup-salt-version + uses: ./.github/actions/setup-salt-version + with: + salt-version: "${{ inputs.salt-version }}" + + - name: Download Onedir Tarball as an Artifact + uses: actions/download-artifact@v3 + with: + name: salt-${{ inputs.salt-version }}-onedir-darwin-${{ matrix.arch }}.tar.xz + path: artifacts/ + + - name: Prepare Package Signing + if: ${{ steps.check-pkg-sign.outputs.sign-pkgs == 'true' }} + run: | + echo ${{ secrets.MAC_SIGN_DEV_APP_CERT_B64 }} | base64 --decode > app-cert.p12 + echo ${{ secrets.MAC_SIGN_DEV_INSTALL_CERT_B64 }} | base64 --decode > install-cert.p12 + # Create SaltSigning keychain. This will contain the certificates for signing + security create-keychain -p "${{ secrets.MAC_SIGN_DEV_PASSWORD }}" "${{ secrets.MAC_SIGN_DEV_KEYCHAIN }}" + # Append SaltSigning keychain to the search list + security list-keychains -d user -s "${{ secrets.MAC_SIGN_DEV_KEYCHAIN }}" "$(security list-keychains -d user | sed s/\"//g)" + # Unlock the keychain so we can import certs + security unlock-keychain -p "${{ secrets.MAC_SIGN_DEV_PASSWORD }}" "${{ secrets.MAC_SIGN_DEV_KEYCHAIN }}" + # Developer Application Certificate + security import "app-cert.p12" -t agg -k "${{ secrets.MAC_SIGN_DEV_KEYCHAIN }}" -P "${{ secrets.MAC_SIGN_DEV_PASSWORD }}" -A + rm app-cert.p12 + # Developer Installer Certificate + security import "install-cert.p12" -t agg -k "${{ secrets.MAC_SIGN_DEV_KEYCHAIN }}" -P "${{ secrets.MAC_SIGN_DEV_PASSWORD }}" -A + rm install-cert.p12 + security set-key-partition-list -S apple-tool:,apple: -k "${{ secrets.MAC_SIGN_DEV_PASSWORD }}" "${{ secrets.MAC_SIGN_DEV_KEYCHAIN }}" &> /dev/null + + - name: Build MacOS Package + env: + DEV_APP_CERT: "${{ secrets.MAC_SIGN_DEV_APP_CERT }}" + DEV_INSTALL_CERT: "${{ secrets.MAC_SIGN_DEV_INSTALL_CERT }}" + APPLE_ACCT: "${{ secrets.MAC_SIGN_APPLE_ACCT }}" + APPLE_TEAM_ID: "${{ secrets.MAC_SIGN_APPLE_TEAM_ID }}" + APP_SPEC_PWD: "${{ secrets.MAC_SIGN_APP_SPEC_PWD }}" + run: | + tools pkg build macos --relenv-version=${{ inputs.relenv-version }} --python-version=${{ inputs.python-version }} ${{ + inputs.source == 'onedir' && + format( + '--onedir salt-{0}-onedir-darwin-{1}.tar.xz --salt-version {0} {2}', + inputs.salt-version, + matrix.arch, + steps.check-pkg-sign.outputs.sign-pkgs == 'true' && '--sign' || '' + ) + || + format('--salt-version {0}', inputs.salt-version) + }} + + - name: Set Artifact Name + id: set-artifact-name + run: | + if [ "${{ inputs.source }}" != "src" ]; then + echo "artifact-name=salt-${{ inputs.salt-version }}-${{ matrix.arch }}-macos" >> "$GITHUB_OUTPUT" + else + echo "artifact-name=salt-${{ inputs.salt-version }}-${{ matrix.arch }}-macos-from-src" >> "$GITHUB_OUTPUT" + fi + + - name: Upload ${{ matrix.arch }} Package + uses: actions/upload-artifact@v3 + with: + name: ${{ steps.set-artifact-name.outputs.artifact-name }} + path: pkg/macos/salt-${{ inputs.salt-version }}-py3-*.pkg + retention-days: 7 + if-no-files-found: error + + build-deb-packages: + name: DEB + runs-on: + - self-hosted + - linux + - ${{ matrix.arch }} + strategy: + fail-fast: false + matrix: + arch: + - x86_64 + - aarch64 + source: + - ${{ inputs.source }} + + container: + image: ghcr.io/saltstack/salt-ci-containers/packaging:debian-12 + + steps: + # Checkout here so we can easily use custom actions + - uses: actions/checkout@v4 + + # Checkout here for the build process + - name: Checkout in build directory + uses: actions/checkout@v4 + with: + path: + pkgs/checkout/ + + - name: Download Onedir Tarball as an Artifact + uses: actions/download-artifact@v3 + with: + name: salt-${{ inputs.salt-version }}-onedir-linux-${{ matrix.arch }}.tar.xz + path: pkgs/checkout/artifacts/ + + - name: Download Release Patch + if: ${{ startsWith(github.event.ref, 'refs/tags') == false }} + uses: actions/download-artifact@v3 + with: + name: salt-${{ inputs.salt-version }}.patch + path: pkgs/checkout/ + + - name: Setup Python Tools Scripts + uses: ./.github/actions/setup-python-tools-scripts + with: + cwd: pkgs/checkout/ + cache-prefix: ${{ inputs.cache-prefix }} + + - name: Setup Salt Version + id: setup-salt-version + uses: ./.github/actions/setup-salt-version + with: + salt-version: "${{ inputs.salt-version }}" + cwd: pkgs/checkout/ + + - name: Configure Git + if: ${{ startsWith(github.event.ref, 'refs/tags') == false }} + working-directory: pkgs/checkout/ + run: | + tools pkg configure-git + + - name: Apply release patch + if: ${{ startsWith(github.event.ref, 'refs/tags') == false }} + working-directory: pkgs/checkout/ + run: | + tools pkg apply-release-patch salt-${{ inputs.salt-version }}.patch --delete + + - name: Build Deb + working-directory: pkgs/checkout/ + run: | + tools pkg build deb --relenv-version=${{ inputs.relenv-version }} --python-version=${{ inputs.python-version }} ${{ + inputs.source == 'onedir' && + format('--onedir=salt-{0}-onedir-linux-{1}.tar.xz', inputs.salt-version, matrix.arch) + || + format('--arch={0}', matrix.arch) + }} + + - name: Cleanup + run: | + rm -rf pkgs/checkout/ + + - name: Set Artifact Name + id: set-artifact-name + run: | + if [ "${{ inputs.source }}" != "src" ]; then + echo "artifact-name=salt-${{ inputs.salt-version }}-${{ matrix.arch }}-deb" >> "$GITHUB_OUTPUT" + else + echo "artifact-name=salt-${{ inputs.salt-version }}-${{ matrix.arch }}-deb-from-src" >> "$GITHUB_OUTPUT" + fi + + - name: Upload DEBs + uses: actions/upload-artifact@v3 + with: + name: ${{ steps.set-artifact-name.outputs.artifact-name }} + path: ${{ github.workspace }}/pkgs/* + retention-days: 7 + if-no-files-found: error + + build-rpm-packages: + name: RPM + runs-on: + - self-hosted + - linux + - ${{ matrix.arch }} + strategy: + fail-fast: false + matrix: + arch: + - x86_64 + - aarch64 + source: + - ${{ inputs.source }} + + container: + image: ghcr.io/saltstack/salt-ci-containers/packaging:centosstream-9 + + steps: + - uses: actions/checkout@v4 + + - name: Download Onedir Tarball as an Artifact + uses: actions/download-artifact@v3 + with: + name: salt-${{ inputs.salt-version }}-onedir-linux-${{ matrix.arch }}.tar.xz + path: artifacts/ + + - name: Download Release Patch + if: ${{ startsWith(github.event.ref, 'refs/tags') == false }} + uses: actions/download-artifact@v3 + with: + name: salt-${{ inputs.salt-version }}.patch + + - name: Setup Python Tools Scripts + uses: ./.github/actions/setup-python-tools-scripts + with: + cache-prefix: ${{ inputs.cache-prefix }} + + - name: Setup Salt Version + id: setup-salt-version + uses: ./.github/actions/setup-salt-version + with: + salt-version: "${{ inputs.salt-version }}" + + - name: Configure Git + if: ${{ startsWith(github.event.ref, 'refs/tags') == false }} + run: | + tools pkg configure-git + + - name: Apply release patch + if: ${{ startsWith(github.event.ref, 'refs/tags') == false }} + run: | + tools pkg apply-release-patch salt-${{ inputs.salt-version }}.patch --delete + + - name: Build RPM + run: | + tools pkg build rpm --relenv-version=${{ inputs.relenv-version }} --python-version=${{ inputs.python-version }} ${{ + inputs.source == 'onedir' && + format('--onedir=salt-{0}-onedir-linux-{1}.tar.xz', inputs.salt-version, matrix.arch) + || + format('--arch={0}', matrix.arch) + }} + + - name: Set Artifact Name + id: set-artifact-name + run: | + if [ "${{ inputs.source }}" != "src" ]; then + echo "artifact-name=salt-${{ inputs.salt-version }}-${{ matrix.arch }}-rpm" >> "$GITHUB_OUTPUT" + else + echo "artifact-name=salt-${{ inputs.salt-version }}-${{ matrix.arch }}-rpm-from-src" >> "$GITHUB_OUTPUT" + fi + + - name: Upload RPMs + uses: actions/upload-artifact@v3 + with: + name: ${{ steps.set-artifact-name.outputs.artifact-name }} + path: ~/rpmbuild/RPMS/${{ matrix.arch }}/*.rpm + retention-days: 7 + if-no-files-found: error + + build-windows-pkgs: + name: Windows + environment: ${{ inputs.environment }} + strategy: + fail-fast: false + max-parallel: 2 + matrix: + arch: + - x86 + - amd64 + source: + - ${{ inputs.source }} + + runs-on: + - windows-latest + env: + SM_HOST: "${{ secrets.WIN_SIGN_HOST_PROD }}" + SM_API_KEY: "${{ secrets.WIN_SIGN_API_KEY }}" + SM_CLIENT_CERT_FILE: "D:\\Certificate_pkcs12.p12" + SM_CLIENT_CERT_PASSWORD: "${{ secrets.WIN_SIGN_CERT_PASSWORD }}" + SM_CLIENT_CERT_FILE_B64: "${{ secrets.WIN_SIGN_CERT_FILE_B64 }}" + WIN_SIGN_CERT_SHA1_HASH: "${{ secrets.WIN_SIGN_CERT_SHA1_HASH }}" + + steps: + - name: Check Package Signing Enabled + shell: bash + id: check-pkg-sign + run: | + if [ "${{ inputs.sign-windows-packages }}" == "true" ]; then + if [ "${{ (secrets.WIN_SIGN_API_KEY != '' && env.SM_HOST != '' && inputs.environment == 'staging') && 'true' || 'false' }}" != "true" ]; then + MSG="Secrets for signing packages are not available. The packages created will NOT be signed." + echo "${MSG}" + echo "${MSG}" >> "${GITHUB_STEP_SUMMARY}" + echo "sign-pkgs=false" >> "$GITHUB_OUTPUT" + else + MSG="The packages created WILL be signed." + echo "${MSG}" + echo "${MSG}" >> "${GITHUB_STEP_SUMMARY}" + echo "sign-pkgs=true" >> "$GITHUB_OUTPUT" + fi + else + MSG="The sign-windows-packages input is false. The packages created will NOT be signed." + echo "${MSG}" + echo "${MSG}" >> "${GITHUB_STEP_SUMMARY}" + echo "sign-pkgs=false" >> "$GITHUB_OUTPUT" + fi + + - uses: actions/checkout@v4 + - uses: actions/setup-python@v4 + with: + python-version: 3.11 + + - name: Setup Python Tools Scripts + uses: ./.github/actions/setup-python-tools-scripts + with: + cache-prefix: ${{ inputs.cache-prefix }} + + - name: Setup Salt Version + id: setup-salt-version + uses: ./.github/actions/setup-salt-version + with: + salt-version: "${{ inputs.salt-version }}" + + - name: Download Onedir Tarball as an Artifact + uses: actions/download-artifact@v3 + with: + name: salt-${{ inputs.salt-version }}-onedir-windows-${{ matrix.arch }}.zip + path: artifacts/ + + - name: Code signing with Software Trust Manager + if: ${{ steps.check-pkg-sign.outputs.sign-pkgs == 'true' }} + uses: digicert/ssm-code-signing@v0.0.2 + + - name: Setup Certificate + if: ${{ steps.check-pkg-sign.outputs.sign-pkgs == 'true' }} + shell: bash + run: | + echo "${{ secrets.WIN_SIGN_CERT_FILE_B64 }}" | base64 --decode > /d/Certificate_pkcs12.p12 + + - name: Build Windows Packages + run: | + tools pkg build windows --relenv-version=${{ inputs.relenv-version }} --python-version=${{ inputs.python-version }} ${{ + inputs.source == 'onedir' && + format( + '--onedir salt-{0}-onedir-windows-{1}.zip --salt-version {0} --arch {1} {2}', + inputs.salt-version, + matrix.arch, + steps.check-pkg-sign.outputs.sign-pkgs == 'true' && '--sign' || '' + ) + || + format('--salt-version {0} --arch {1}', inputs.salt-version, matrix.arch) + }} + + - name: Set Artifact Name + id: set-artifact-name + shell: bash + run: | + if [ "${{ inputs.source }}" != "src" ]; then + echo "artifact-name-nsis=salt-${{ inputs.salt-version }}-${{ matrix.arch }}-NSIS" >> "$GITHUB_OUTPUT" + echo "artifact-name-msi=salt-${{ inputs.salt-version }}-${{ matrix.arch }}-MSI" >> "$GITHUB_OUTPUT" + else + echo "artifact-name-nsis=salt-${{ inputs.salt-version }}-${{ matrix.arch }}-NSIS-from-src" >> "$GITHUB_OUTPUT" + echo "artifact-name-msi=salt-${{ inputs.salt-version }}-${{ matrix.arch }}-MSI-from-src" >> "$GITHUB_OUTPUT" + fi + + - name: Upload ${{ matrix.arch }} NSIS Packages + uses: actions/upload-artifact@v3 + with: + name: ${{ steps.set-artifact-name.outputs.artifact-name-nsis }} + path: pkg/windows/build/Salt-*.exe + retention-days: 7 + if-no-files-found: error + + - name: Upload ${{ matrix.arch }} MSI Package + uses: actions/upload-artifact@v3 + with: + name: ${{ steps.set-artifact-name.outputs.artifact-name-msi }} + path: pkg/windows/build/Salt-*.msi + retention-days: 7 + if-no-files-found: error diff --git a/.github/workflows/build-rpm-packages.yml b/.github/workflows/build-rpm-packages.yml deleted file mode 100644 index 1b2103700c9..00000000000 --- a/.github/workflows/build-rpm-packages.yml +++ /dev/null @@ -1,114 +0,0 @@ ---- -name: Build RPM Packages - -on: - workflow_call: - inputs: - salt-version: - type: string - required: true - description: The Salt version to set prior to building packages. - relenv-version: - type: string - required: true - description: The relenv version to set prior to building packages. - python-version: - required: true - type: string - description: The version of python to use with relenv - source: - required: true - type: string - description: The backend to build the packages with - cache-prefix: - required: true - type: string - description: Seed used to invalidate caches - -env: - COLUMNS: 190 - AWS_MAX_ATTEMPTS: "10" - AWS_RETRY_MODE: "adaptive" - PIP_INDEX_URL: https://pypi-proxy.saltstack.net/root/local/+simple/ - PIP_EXTRA_INDEX_URL: https://pypi.org/simple - -jobs: - build: - name: RPM - runs-on: - - self-hosted - - linux - - ${{ matrix.arch }} - strategy: - fail-fast: false - matrix: - arch: - - x86_64 - - aarch64 - source: - - ${{ inputs.source }} - - container: - image: ghcr.io/saltstack/salt-ci-containers/packaging:centosstream-9 - - steps: - - uses: actions/checkout@v4 - - - name: Download Onedir Tarball as an Artifact - uses: actions/download-artifact@v3 - with: - name: salt-${{ inputs.salt-version }}-onedir-linux-${{ matrix.arch }}.tar.xz - path: artifacts/ - - - name: Download Release Patch - if: ${{ startsWith(github.event.ref, 'refs/tags') == false }} - uses: actions/download-artifact@v3 - with: - name: salt-${{ inputs.salt-version }}.patch - - - name: Setup Python Tools Scripts - uses: ./.github/actions/setup-python-tools-scripts - with: - cache-prefix: ${{ inputs.cache-prefix }} - - - name: Setup Salt Version - id: setup-salt-version - uses: ./.github/actions/setup-salt-version - with: - salt-version: "${{ inputs.salt-version }}" - - - name: Configure Git - if: ${{ startsWith(github.event.ref, 'refs/tags') == false }} - run: | - tools pkg configure-git - - - name: Apply release patch - if: ${{ startsWith(github.event.ref, 'refs/tags') == false }} - run: | - tools pkg apply-release-patch salt-${{ inputs.salt-version }}.patch --delete - - - name: Build RPM - run: | - tools pkg build rpm --relenv-version=${{ inputs.relenv-version }} --python-version=${{ inputs.python-version }} ${{ - inputs.source == 'onedir' && - format('--onedir=salt-{0}-onedir-linux-{1}.tar.xz', inputs.salt-version, matrix.arch) - || - format('--arch={0}', matrix.arch) - }} - - - name: Set Artifact Name - id: set-artifact-name - run: | - if [ "${{ inputs.source }}" != "src" ]; then - echo "artifact-name=salt-${{ inputs.salt-version }}-${{ matrix.arch }}-rpm" >> "$GITHUB_OUTPUT" - else - echo "artifact-name=salt-${{ inputs.salt-version }}-${{ matrix.arch }}-rpm-from-src" >> "$GITHUB_OUTPUT" - fi - - - name: Upload RPMs - uses: actions/upload-artifact@v3 - with: - name: ${{ steps.set-artifact-name.outputs.artifact-name }} - path: ~/rpmbuild/RPMS/${{ matrix.arch }}/*.rpm - retention-days: 7 - if-no-files-found: error diff --git a/.github/workflows/build-salt-onedir-linux.yml b/.github/workflows/build-salt-onedir-linux.yml deleted file mode 100644 index a7e197b760c..00000000000 --- a/.github/workflows/build-salt-onedir-linux.yml +++ /dev/null @@ -1,90 +0,0 @@ ---- -name: Build Salt Onedir - -on: - workflow_call: - inputs: - salt-version: - type: string - required: true - description: The Salt version to set prior to building packages. - github-hosted-runners: - type: boolean - required: true - self-hosted-runners: - type: boolean - required: true - cache-seed: - required: true - type: string - description: Seed used to invalidate caches - relenv-version: - required: true - type: string - description: The version of relenv to use - python-version: - required: true - type: string - description: The version of python to use with relenv - -env: - RELENV_DATA: "${{ github.workspace }}/.relenv" - COLUMNS: 190 - AWS_MAX_ATTEMPTS: "10" - AWS_RETRY_MODE: "adaptive" - PIP_INDEX_URL: https://pypi-proxy.saltstack.net/root/local/+simple/ - PIP_EXTRA_INDEX_URL: https://pypi.org/simple - -jobs: - - build-salt-linux: - name: Linux - if: ${{ inputs.self-hosted-runners }} - strategy: - fail-fast: false - matrix: - arch: - - x86_64 - - aarch64 - runs-on: - - self-hosted - - linux - - ${{ matrix.arch }} - steps: - - - name: "Throttle Builds" - shell: bash - run: | - t=$(python3 -c 'import random, sys; sys.stdout.write(str(random.randint(1, 15)))'); echo "Sleeping $t seconds"; sleep "$t" - - - uses: actions/checkout@v4 - - - name: Setup Python Tools Scripts - uses: ./.github/actions/setup-python-tools-scripts - with: - cache-prefix: ${{ inputs.cache-seed }}-build-salt-onedir-windows - - - name: Setup Salt Version - id: setup-salt-version - uses: ./.github/actions/setup-salt-version - with: - salt-version: "${{ inputs.salt-version }}" - - - name: Setup Relenv - uses: ./.github/actions/setup-relenv - id: setup-relenv - with: - platform: linux - arch: ${{ matrix.arch }} - version: ${{ inputs.relenv-version }} - cache-seed: ${{ inputs.cache-seed }} - python-version: ${{ inputs.python-version }} - - - name: Install Salt into Relenv Onedir - uses: ./.github/actions/build-onedir-salt - with: - platform: linux - arch: ${{ matrix.arch }} - salt-version: "${{ inputs.salt-version }}" - python-version: "${{ inputs.python-version }}" - cache-prefix: ${{ inputs.cache-seed }}|relenv|${{ steps.setup-relenv.outputs.version }} diff --git a/.github/workflows/build-salt-onedir-macos.yml b/.github/workflows/build-salt-onedir-macos.yml deleted file mode 100644 index 3697e51e3f0..00000000000 --- a/.github/workflows/build-salt-onedir-macos.yml +++ /dev/null @@ -1,93 +0,0 @@ ---- -name: Build Salt Onedir - -on: - workflow_call: - inputs: - salt-version: - type: string - required: true - description: The Salt version to set prior to building packages. - github-hosted-runners: - type: boolean - required: true - self-hosted-runners: - type: boolean - required: true - cache-seed: - required: true - type: string - description: Seed used to invalidate caches - relenv-version: - required: true - type: string - description: The version of relenv to use - python-version: - required: true - type: string - description: The version of python to use with relenv - -env: - RELENV_DATA: "${{ github.workspace }}/.relenv" - COLUMNS: 190 - AWS_MAX_ATTEMPTS: "10" - AWS_RETRY_MODE: "adaptive" - PIP_INDEX_URL: https://pypi-proxy.saltstack.net/root/local/+simple/ - PIP_EXTRA_INDEX_URL: https://pypi.org/simple - -jobs: - - build-salt-macos: - name: macOS - if: ${{ inputs.github-hosted-runners }} - strategy: - fail-fast: false - max-parallel: 2 - matrix: - arch: - - x86_64 - - aarch64 - runs-on: - - ${{ matrix.arch == 'aarch64' && 'macos-13-xlarge' || 'macos-12' }} - - steps: - - name: "Throttle Builds" - shell: bash - run: | - t=$(python3 -c 'import random, sys; sys.stdout.write(str(random.randint(1, 15)))'); echo "Sleeping $t seconds"; sleep "$t" - - - uses: actions/checkout@v4 - - name: Set up Python 3.10 - uses: actions/setup-python@v4 - with: - python-version: "3.10" - - - name: Setup Relenv - id: setup-relenv - uses: ./.github/actions/setup-relenv - with: - platform: darwin - arch: ${{ matrix.arch == 'aarch64' && 'arm64' || matrix.arch }} - version: ${{ inputs.relenv-version }} - cache-seed: ${{ inputs.cache-seed }} - python-version: ${{ inputs.python-version }} - - - name: Setup Python Tools Scripts - uses: ./.github/actions/setup-python-tools-scripts - with: - cache-prefix: ${{ inputs.cache-seed }}-build-salt-onedir-macos - - - name: Setup Salt Version - id: setup-salt-version - uses: ./.github/actions/setup-salt-version - with: - salt-version: "${{ inputs.salt-version }}" - - - name: Install Salt into Relenv Onedir - uses: ./.github/actions/build-onedir-salt - with: - platform: darwin - arch: ${{ matrix.arch }} - salt-version: "${{ inputs.salt-version }}" - python-version: "${{ inputs.python-version }}" - cache-prefix: ${{ inputs.cache-seed }}|relenv|${{ steps.setup-relenv.outputs.version }} diff --git a/.github/workflows/build-salt-onedir-windows.yml b/.github/workflows/build-salt-onedir-windows.yml deleted file mode 100644 index aba0b424553..00000000000 --- a/.github/workflows/build-salt-onedir-windows.yml +++ /dev/null @@ -1,93 +0,0 @@ ---- -name: Build Salt Onedir - -on: - workflow_call: - inputs: - salt-version: - type: string - required: true - description: The Salt version to set prior to building packages. - github-hosted-runners: - type: boolean - required: true - self-hosted-runners: - type: boolean - required: true - cache-seed: - required: true - type: string - description: Seed used to invalidate caches - relenv-version: - required: true - type: string - description: The version of relenv to use - python-version: - required: true - type: string - description: The version of python to use with relenv - -env: - RELENV_DATA: "${{ github.workspace }}/.relenv" - COLUMNS: 190 - AWS_MAX_ATTEMPTS: "10" - AWS_RETRY_MODE: "adaptive" - PIP_INDEX_URL: https://pypi-proxy.saltstack.net/root/local/+simple/ - PIP_EXTRA_INDEX_URL: https://pypi.org/simple - -jobs: - - build-salt-windows: - name: Windows - if: ${{ inputs.github-hosted-runners }} - strategy: - fail-fast: false - max-parallel: 2 - matrix: - arch: - - x86 - - amd64 - runs-on: windows-latest - steps: - - - name: "Throttle Builds" - shell: bash - run: | - t=$(python3 -c 'import random, sys; sys.stdout.write(str(random.randint(1, 15)))'); echo "Sleeping $t seconds"; sleep "$t" - - - uses: actions/checkout@v4 - - - name: Set up Python 3.10 - uses: actions/setup-python@v4 - with: - python-version: "3.10" - - - name: Setup Relenv - id: setup-relenv - uses: ./.github/actions/setup-relenv - with: - platform: windows - arch: ${{ matrix.arch }} - version: ${{ inputs.relenv-version }} - cache-seed: ${{ inputs.cache-seed }} - python-version: ${{ inputs.python-version }} - - - name: Setup Python Tools Scripts - uses: ./.github/actions/setup-python-tools-scripts - with: - cache-prefix: ${{ inputs.cache-seed }}-build-salt-onedir-macos - - - name: Setup Salt Version - id: setup-salt-version - uses: ./.github/actions/setup-salt-version - with: - salt-version: "${{ inputs.salt-version }}" - - - name: Install Salt into Relenv Onedir - uses: ./.github/actions/build-onedir-salt - with: - platform: windows - arch: ${{ matrix.arch }} - salt-version: "${{ inputs.salt-version }}" - python-version: "${{ inputs.python-version }}" - cache-prefix: ${{ inputs.cache-seed }}|relenv|${{ steps.setup-relenv.outputs.version }} diff --git a/.github/workflows/build-salt-onedir.yml b/.github/workflows/build-salt-onedir.yml new file mode 100644 index 00000000000..b95381ae388 --- /dev/null +++ b/.github/workflows/build-salt-onedir.yml @@ -0,0 +1,200 @@ +--- +name: Build Salt Onedir + +on: + workflow_call: + inputs: + salt-version: + type: string + required: true + description: The Salt version to set prior to building packages. + github-hosted-runners: + type: boolean + required: true + self-hosted-runners: + type: boolean + required: true + cache-seed: + required: true + type: string + description: Seed used to invalidate caches + relenv-version: + required: true + type: string + description: The version of relenv to use + python-version: + required: true + type: string + description: The version of python to use with relenv + +env: + RELENV_DATA: "${{ github.workspace }}/.relenv" + COLUMNS: 190 + AWS_MAX_ATTEMPTS: "10" + AWS_RETRY_MODE: "adaptive" + PIP_INDEX_URL: https://pypi-proxy.saltstack.net/root/local/+simple/ + PIP_EXTRA_INDEX_URL: https://pypi.org/simple + +jobs: + + build-salt-linux: + name: Linux + if: ${{ inputs.self-hosted-runners }} + strategy: + fail-fast: false + matrix: + arch: + - x86_64 + - aarch64 + runs-on: + - self-hosted + - linux + - ${{ matrix.arch }} + steps: + + - name: "Throttle Builds" + shell: bash + run: | + t=$(python3 -c 'import random, sys; sys.stdout.write(str(random.randint(1, 15)))'); echo "Sleeping $t seconds"; sleep "$t" + + - uses: actions/checkout@v4 + + - name: Setup Python Tools Scripts + uses: ./.github/actions/setup-python-tools-scripts + with: + cache-prefix: ${{ inputs.cache-seed }}-build-salt-onedir-windows + + - name: Setup Salt Version + id: setup-salt-version + uses: ./.github/actions/setup-salt-version + with: + salt-version: "${{ inputs.salt-version }}" + + - name: Setup Relenv + uses: ./.github/actions/setup-relenv + id: setup-relenv + with: + platform: linux + arch: ${{ matrix.arch }} + version: ${{ inputs.relenv-version }} + cache-seed: ${{ inputs.cache-seed }} + python-version: ${{ inputs.python-version }} + + - name: Install Salt into Relenv Onedir + uses: ./.github/actions/build-onedir-salt + with: + platform: linux + arch: ${{ matrix.arch }} + salt-version: "${{ inputs.salt-version }}" + python-version: "${{ inputs.python-version }}" + cache-prefix: ${{ inputs.cache-seed }}|relenv|${{ steps.setup-relenv.outputs.version }} + + build-salt-macos: + name: macOS + if: ${{ inputs.github-hosted-runners }} + strategy: + fail-fast: false + max-parallel: 2 + matrix: + arch: + - x86_64 + - aarch64 + runs-on: + - ${{ matrix.arch == 'aarch64' && 'macos-13-xlarge' || 'macos-12' }} + + steps: + - name: "Throttle Builds" + shell: bash + run: | + t=$(python3 -c 'import random, sys; sys.stdout.write(str(random.randint(1, 15)))'); echo "Sleeping $t seconds"; sleep "$t" + + - uses: actions/checkout@v4 + - name: Set up Python 3.10 + uses: actions/setup-python@v4 + with: + python-version: "3.10" + + - name: Setup Relenv + id: setup-relenv + uses: ./.github/actions/setup-relenv + with: + platform: darwin + arch: ${{ matrix.arch == 'aarch64' && 'arm64' || matrix.arch }} + version: ${{ inputs.relenv-version }} + cache-seed: ${{ inputs.cache-seed }} + python-version: ${{ inputs.python-version }} + + - name: Setup Python Tools Scripts + uses: ./.github/actions/setup-python-tools-scripts + with: + cache-prefix: ${{ inputs.cache-seed }}-build-salt-onedir-macos + + - name: Setup Salt Version + id: setup-salt-version + uses: ./.github/actions/setup-salt-version + with: + salt-version: "${{ inputs.salt-version }}" + + - name: Install Salt into Relenv Onedir + uses: ./.github/actions/build-onedir-salt + with: + platform: darwin + arch: ${{ matrix.arch }} + salt-version: "${{ inputs.salt-version }}" + python-version: "${{ inputs.python-version }}" + cache-prefix: ${{ inputs.cache-seed }}|relenv|${{ steps.setup-relenv.outputs.version }} + + build-salt-windows: + name: Windows + if: ${{ inputs.github-hosted-runners }} + strategy: + fail-fast: false + max-parallel: 2 + matrix: + arch: + - x86 + - amd64 + runs-on: windows-latest + steps: + + - name: "Throttle Builds" + shell: bash + run: | + t=$(python3 -c 'import random, sys; sys.stdout.write(str(random.randint(1, 15)))'); echo "Sleeping $t seconds"; sleep "$t" + + - uses: actions/checkout@v4 + + - name: Set up Python 3.10 + uses: actions/setup-python@v4 + with: + python-version: "3.10" + + - name: Setup Relenv + id: setup-relenv + uses: ./.github/actions/setup-relenv + with: + platform: windows + arch: ${{ matrix.arch }} + version: ${{ inputs.relenv-version }} + cache-seed: ${{ inputs.cache-seed }} + python-version: ${{ inputs.python-version }} + + - name: Setup Python Tools Scripts + uses: ./.github/actions/setup-python-tools-scripts + with: + cache-prefix: ${{ inputs.cache-seed }}-build-salt-onedir-macos + + - name: Setup Salt Version + id: setup-salt-version + uses: ./.github/actions/setup-salt-version + with: + salt-version: "${{ inputs.salt-version }}" + + - name: Install Salt into Relenv Onedir + uses: ./.github/actions/build-onedir-salt + with: + platform: windows + arch: ${{ matrix.arch }} + salt-version: "${{ inputs.salt-version }}" + python-version: "${{ inputs.python-version }}" + cache-prefix: ${{ inputs.cache-seed }}|relenv|${{ steps.setup-relenv.outputs.version }} diff --git a/.github/workflows/build-windows-packages.yml b/.github/workflows/build-windows-packages.yml deleted file mode 100644 index 5e8e4663525..00000000000 --- a/.github/workflows/build-windows-packages.yml +++ /dev/null @@ -1,164 +0,0 @@ ---- -name: Build Windows Packages - -on: - workflow_call: - inputs: - salt-version: - type: string - required: true - description: The Salt version to set prior to building packages - relenv-version: - type: string - required: true - description: The relenv version to set prior to building packages. - python-version: - required: true - type: string - description: The version of python to use with relenv - sign-packages: - type: boolean - default: false - description: Sign Packages - environment: - type: string - description: The GitHub Environment where this workflow should run - default: ci - source: - required: true - type: string - description: The backend to build the packages with - cache-prefix: - required: true - type: string - description: Seed used to invalidate caches - -env: - COLUMNS: 190 - AWS_MAX_ATTEMPTS: "10" - AWS_RETRY_MODE: "adaptive" - PIP_INDEX_URL: https://pypi-proxy.saltstack.net/root/local/+simple/ - PIP_EXTRA_INDEX_URL: https://pypi.org/simple - -jobs: - - build-pkgs: - name: Windows - environment: ${{ inputs.environment }} - strategy: - fail-fast: false - max-parallel: 2 - matrix: - arch: - - x86 - - amd64 - source: - - ${{ inputs.source }} - - runs-on: - - windows-latest - env: - SM_HOST: "${{ secrets.WIN_SIGN_HOST_PROD }}" - SM_API_KEY: "${{ secrets.WIN_SIGN_API_KEY }}" - SM_CLIENT_CERT_FILE: "D:\\Certificate_pkcs12.p12" - SM_CLIENT_CERT_PASSWORD: "${{ secrets.WIN_SIGN_CERT_PASSWORD }}" - SM_CLIENT_CERT_FILE_B64: "${{ secrets.WIN_SIGN_CERT_FILE_B64 }}" - WIN_SIGN_CERT_SHA1_HASH: "${{ secrets.WIN_SIGN_CERT_SHA1_HASH }}" - - steps: - - name: Check Package Signing Enabled - shell: bash - id: check-pkg-sign - run: | - if [ "${{ inputs.sign-packages }}" == "true" ]; then - if [ "${{ (secrets.WIN_SIGN_API_KEY != '' && env.SM_HOST != '' && inputs.environment == 'staging') && 'true' || 'false' }}" != "true" ]; then - MSG="Secrets for signing packages are not available. The packages created will NOT be signed." - echo "${MSG}" - echo "${MSG}" >> "${GITHUB_STEP_SUMMARY}" - echo "sign-pkgs=false" >> "$GITHUB_OUTPUT" - else - MSG="The packages created WILL be signed." - echo "${MSG}" - echo "${MSG}" >> "${GITHUB_STEP_SUMMARY}" - echo "sign-pkgs=true" >> "$GITHUB_OUTPUT" - fi - else - MSG="The sign-packages input is false. The packages created will NOT be signed." - echo "${MSG}" - echo "${MSG}" >> "${GITHUB_STEP_SUMMARY}" - echo "sign-pkgs=false" >> "$GITHUB_OUTPUT" - fi - - - uses: actions/checkout@v4 - - uses: actions/setup-python@v4 - with: - python-version: 3.11 - - - name: Setup Python Tools Scripts - uses: ./.github/actions/setup-python-tools-scripts - with: - cache-prefix: ${{ inputs.cache-prefix }} - - - name: Setup Salt Version - id: setup-salt-version - uses: ./.github/actions/setup-salt-version - with: - salt-version: "${{ inputs.salt-version }}" - - - name: Download Onedir Tarball as an Artifact - uses: actions/download-artifact@v3 - with: - name: salt-${{ inputs.salt-version }}-onedir-windows-${{ matrix.arch }}.zip - path: artifacts/ - - - name: Code signing with Software Trust Manager - if: ${{ steps.check-pkg-sign.outputs.sign-pkgs == 'true' }} - uses: digicert/ssm-code-signing@v0.0.2 - - - name: Setup Certificate - if: ${{ steps.check-pkg-sign.outputs.sign-pkgs == 'true' }} - shell: bash - run: | - echo "${{ secrets.WIN_SIGN_CERT_FILE_B64 }}" | base64 --decode > /d/Certificate_pkcs12.p12 - - - name: Build Windows Packages - run: | - tools pkg build windows --relenv-version=${{ inputs.relenv-version }} --python-version=${{ inputs.python-version }} ${{ - inputs.source == 'onedir' && - format( - '--onedir salt-{0}-onedir-windows-{1}.zip --salt-version {0} --arch {1} {2}', - inputs.salt-version, - matrix.arch, - steps.check-pkg-sign.outputs.sign-pkgs == 'true' && '--sign' || '' - ) - || - format('--salt-version {0} --arch {1}', inputs.salt-version, matrix.arch) - }} - - - name: Set Artifact Name - id: set-artifact-name - shell: bash - run: | - if [ "${{ inputs.source }}" != "src" ]; then - echo "artifact-name-nsis=salt-${{ inputs.salt-version }}-${{ matrix.arch }}-NSIS" >> "$GITHUB_OUTPUT" - echo "artifact-name-msi=salt-${{ inputs.salt-version }}-${{ matrix.arch }}-MSI" >> "$GITHUB_OUTPUT" - else - echo "artifact-name-nsis=salt-${{ inputs.salt-version }}-${{ matrix.arch }}-NSIS-from-src" >> "$GITHUB_OUTPUT" - echo "artifact-name-msi=salt-${{ inputs.salt-version }}-${{ matrix.arch }}-MSI-from-src" >> "$GITHUB_OUTPUT" - fi - - - name: Upload ${{ matrix.arch }} NSIS Packages - uses: actions/upload-artifact@v3 - with: - name: ${{ steps.set-artifact-name.outputs.artifact-name-nsis }} - path: pkg/windows/build/Salt-*.exe - retention-days: 7 - if-no-files-found: error - - - name: Upload ${{ matrix.arch }} MSI Package - uses: actions/upload-artifact@v3 - with: - name: ${{ steps.set-artifact-name.outputs.artifact-name-msi }} - path: pkg/windows/build/Salt-*.msi - retention-days: 7 - if-no-files-found: error diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index cf6a7ad5117..823166cfe1f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -413,12 +413,12 @@ jobs: with: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - build-deps-onedir-linux: + build-deps-onedir: name: Build Dependencies Onedir if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-onedir'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - uses: ./.github/workflows/build-deps-onedir-linux.yml + uses: ./.github/workflows/build-deps-onedir.yml with: cache-seed: ${{ needs.prepare-workflow.outputs.cache-seed }} salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" @@ -427,42 +427,14 @@ jobs: relenv-version: "0.14.2" python-version: "3.10.13" - build-deps-onedir-windows: - name: Build Dependencies Onedir - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-onedir'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - uses: ./.github/workflows/build-deps-onedir-windows.yml - with: - cache-seed: ${{ needs.prepare-workflow.outputs.cache-seed }} - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - self-hosted-runners: ${{ fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - github-hosted-runners: ${{ fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} - relenv-version: "0.14.2" - python-version: "3.10.13" - - build-deps-onedir-macos: - name: Build Dependencies Onedir - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-onedir'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - uses: ./.github/workflows/build-deps-onedir-macos.yml - with: - cache-seed: ${{ needs.prepare-workflow.outputs.cache-seed }} - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - self-hosted-runners: ${{ fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - github-hosted-runners: ${{ fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} - relenv-version: "0.14.2" - python-version: "3.10.13" - - build-salt-onedir-linux: + build-salt-onedir: name: Build Salt Onedir if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-salt-onedir'] }} needs: - prepare-workflow - - build-deps-onedir-linux + - build-deps-onedir - build-source-tarball - uses: ./.github/workflows/build-salt-onedir-linux.yml + uses: ./.github/workflows/build-salt-onedir.yml with: cache-seed: ${{ needs.prepare-workflow.outputs.cache-seed }} salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" @@ -471,45 +443,13 @@ jobs: relenv-version: "0.14.2" python-version: "3.10.13" - build-salt-onedir-windows: - name: Build Salt Onedir - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-salt-onedir'] }} - needs: - - prepare-workflow - - build-deps-onedir-windows - - build-source-tarball - uses: ./.github/workflows/build-salt-onedir-windows.yml - with: - cache-seed: ${{ needs.prepare-workflow.outputs.cache-seed }} - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - self-hosted-runners: ${{ fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - github-hosted-runners: ${{ fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} - relenv-version: "0.14.2" - python-version: "3.10.13" - - build-salt-onedir-macos: - name: Build Salt Onedir - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-salt-onedir'] }} - needs: - - prepare-workflow - - build-deps-onedir-macos - - build-source-tarball - uses: ./.github/workflows/build-salt-onedir-macos.yml - with: - cache-seed: ${{ needs.prepare-workflow.outputs.cache-seed }} - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - self-hosted-runners: ${{ fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - github-hosted-runners: ${{ fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} - relenv-version: "0.14.2" - python-version: "3.10.13" - - build-rpm-pkgs-onedir: + build-pkgs-onedir: name: Build Packages if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-pkgs'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-rpm-packages.yml + - build-salt-onedir + uses: ./.github/workflows/build-packages.yml with: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }} @@ -517,184 +457,28 @@ jobs: python-version: "3.10.13" source: "onedir" - build-rpm-pkgs-src: + build-pkgs-src: name: Build Packages if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-pkgs'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-rpm-packages.yml + - build-salt-onedir + uses: ./.github/workflows/build-packages.yml with: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }} relenv-version: "0.14.2" python-version: "3.10.13" source: "src" - - build-deb-pkgs-onedir: - name: Build Packages - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-pkgs'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deb-packages.yml - with: - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }} - relenv-version: "0.14.2" - python-version: "3.10.13" - source: "onedir" - - build-deb-pkgs-src: - name: Build Packages - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-pkgs'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deb-packages.yml - with: - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }} - relenv-version: "0.14.2" - python-version: "3.10.13" - source: "src" - - build-windows-pkgs-onedir: - name: Build Packages - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-pkgs'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-windows - uses: ./.github/workflows/build-windows-packages.yml - with: - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }} - relenv-version: "0.14.2" - python-version: "3.10.13" - source: "onedir" - - build-windows-pkgs-src: - name: Build Packages - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-pkgs'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-windows - uses: ./.github/workflows/build-windows-packages.yml - with: - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }} - relenv-version: "0.14.2" - python-version: "3.10.13" - source: "src" - - build-macos-pkgs-onedir: - name: Build Packages - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-pkgs'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-macos - uses: ./.github/workflows/build-macos-packages.yml - with: - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }} - relenv-version: "0.14.2" - python-version: "3.10.13" - source: "onedir" - - build-macos-pkgs-src: - name: Build Packages - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-pkgs'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-macos - uses: ./.github/workflows/build-macos-packages.yml - with: - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }} - relenv-version: "0.14.2" - python-version: "3.10.13" - source: "src" - - windows-amd64-ci-deps: - name: Windows amd64 CI Deps + build-ci-deps: + name: CI Deps if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-salt-onedir-windows - uses: ./.github/workflows/build-deps-ci-action-windows.yml + - build-salt-onedir + uses: ./.github/workflows/build-deps-ci-action.yml with: - distro-slug: windows-2022 nox-session: ci-test-onedir - platform: windows - arch: amd64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - macos-x86_64-ci-deps: - name: MacOS x86_64 CI Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-macos - uses: ./.github/workflows/build-deps-ci-action-macos.yml - with: - distro-slug: macos-12 - nox-session: ci-test-onedir - platform: darwin - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - macos-arm64-ci-deps: - name: MacOS arm64 CI Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-macos - uses: ./.github/workflows/build-deps-ci-action-macos.yml - with: - distro-slug: macos-13-xlarge - nox-session: ci-test-onedir - platform: darwin - arch: arm64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - linux-x86_64-ci-deps: - name: Linux x86_64 CI Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action-linux.yml - with: - distro-slug: centos-7 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - linux-arm64-ci-deps: - name: Linux arm64 CI Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action-linux.yml - with: - distro-slug: centos-7-arm64 - nox-session: ci-test-onedir - platform: linux - arch: arm64 nox-version: 2022.8.7 python-version: "3.10" salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" @@ -705,8 +489,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-rpm-pkgs-onedir - - linux-x86_64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: amazonlinux-2 @@ -727,8 +511,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-rpm-pkgs-onedir - - linux-arm64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: amazonlinux-2-arm64 @@ -749,8 +533,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-rpm-pkgs-onedir - - linux-x86_64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: amazonlinux-2023 @@ -771,8 +555,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-rpm-pkgs-onedir - - linux-arm64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: amazonlinux-2023-arm64 @@ -793,8 +577,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-rpm-pkgs-onedir - - linux-x86_64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: centos-7 @@ -815,8 +599,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-rpm-pkgs-onedir - - linux-x86_64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: centosstream-8 @@ -837,8 +621,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-rpm-pkgs-onedir - - linux-x86_64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: centosstream-9 @@ -859,8 +643,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-rpm-pkgs-onedir - - linux-arm64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: centosstream-9-arm64 @@ -881,8 +665,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-deb-pkgs-onedir - - linux-x86_64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: debian-10 @@ -903,8 +687,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-deb-pkgs-onedir - - linux-x86_64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: debian-11 @@ -925,8 +709,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-deb-pkgs-onedir - - linux-arm64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: debian-11-arm64 @@ -947,8 +731,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-deb-pkgs-onedir - - linux-x86_64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: debian-12 @@ -969,8 +753,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-deb-pkgs-onedir - - linux-arm64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: debian-12-arm64 @@ -991,8 +775,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-rpm-pkgs-onedir - - linux-x86_64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: photonos-3 @@ -1013,8 +797,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-rpm-pkgs-onedir - - linux-arm64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: photonos-3-arm64 @@ -1035,8 +819,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-rpm-pkgs-onedir - - linux-x86_64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: photonos-4 @@ -1058,8 +842,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-rpm-pkgs-onedir - - linux-arm64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: photonos-4-arm64 @@ -1081,8 +865,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-rpm-pkgs-onedir - - linux-x86_64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: photonos-5 @@ -1104,8 +888,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-rpm-pkgs-onedir - - linux-arm64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: photonos-5-arm64 @@ -1127,8 +911,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-deb-pkgs-onedir - - linux-x86_64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: ubuntu-20.04 @@ -1149,8 +933,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-deb-pkgs-onedir - - linux-arm64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: ubuntu-20.04-arm64 @@ -1171,8 +955,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-deb-pkgs-onedir - - linux-x86_64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: ubuntu-22.04 @@ -1193,8 +977,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-deb-pkgs-onedir - - linux-arm64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: ubuntu-22.04-arm64 @@ -1215,8 +999,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} needs: - prepare-workflow - - build-macos-pkgs-onedir - - macos-x86_64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-macos.yml with: distro-slug: macos-12 @@ -1237,8 +1021,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} needs: - prepare-workflow - - build-macos-pkgs-onedir - - macos-x86_64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-macos.yml with: distro-slug: macos-13 @@ -1259,8 +1043,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} needs: - prepare-workflow - - build-macos-pkgs-onedir - - macos-arm64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-macos.yml with: distro-slug: macos-13-xlarge @@ -1281,8 +1065,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-windows-pkgs-onedir - - windows-amd64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-windows.yml with: distro-slug: windows-2016 @@ -1303,8 +1087,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-windows-pkgs-onedir - - windows-amd64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-windows.yml with: distro-slug: windows-2016 @@ -1325,8 +1109,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-windows-pkgs-onedir - - windows-amd64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-windows.yml with: distro-slug: windows-2019 @@ -1347,8 +1131,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-windows-pkgs-onedir - - windows-amd64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-windows.yml with: distro-slug: windows-2019 @@ -1369,8 +1153,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-windows-pkgs-onedir - - windows-amd64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-windows.yml with: distro-slug: windows-2022 @@ -1391,8 +1175,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-windows-pkgs-onedir - - windows-amd64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-windows.yml with: distro-slug: windows-2022 @@ -1413,7 +1197,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - windows-amd64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-windows.yml with: distro-slug: windows-2016 @@ -1435,7 +1219,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - windows-amd64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-windows.yml with: distro-slug: windows-2019 @@ -1457,7 +1241,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - windows-amd64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-windows.yml with: distro-slug: windows-2022 @@ -1479,7 +1263,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} needs: - prepare-workflow - - macos-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-macos.yml with: distro-slug: macos-12 @@ -1501,7 +1285,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} needs: - prepare-workflow - - macos-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-macos.yml with: distro-slug: macos-13 @@ -1523,7 +1307,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} needs: - prepare-workflow - - macos-arm64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-macos.yml with: distro-slug: macos-13-xlarge @@ -1545,7 +1329,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: almalinux-8 @@ -1567,7 +1351,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: almalinux-9 @@ -1589,7 +1373,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: amazonlinux-2 @@ -1611,7 +1395,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-arm64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: amazonlinux-2-arm64 @@ -1633,7 +1417,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: amazonlinux-2023 @@ -1655,7 +1439,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-arm64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: amazonlinux-2023-arm64 @@ -1677,7 +1461,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: archlinux-lts @@ -1699,7 +1483,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: centos-7 @@ -1721,7 +1505,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: centosstream-8 @@ -1743,7 +1527,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: centosstream-9 @@ -1765,7 +1549,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: debian-10 @@ -1787,7 +1571,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: debian-11 @@ -1809,7 +1593,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-arm64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: debian-11-arm64 @@ -1831,7 +1615,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: debian-12 @@ -1853,7 +1637,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-arm64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: debian-12-arm64 @@ -1875,7 +1659,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: fedora-37 @@ -1897,7 +1681,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: fedora-38 @@ -1919,7 +1703,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: opensuse-15 @@ -1941,7 +1725,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: photonos-3 @@ -1963,7 +1747,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-arm64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: photonos-3-arm64 @@ -1985,7 +1769,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: photonos-4 @@ -2008,7 +1792,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-arm64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: photonos-4-arm64 @@ -2031,7 +1815,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: photonos-5 @@ -2054,7 +1838,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-arm64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: photonos-5-arm64 @@ -2077,7 +1861,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: ubuntu-20.04 @@ -2099,7 +1883,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-arm64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: ubuntu-20.04-arm64 @@ -2121,7 +1905,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: ubuntu-22.04 @@ -2143,7 +1927,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-arm64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: ubuntu-22.04-arm64 @@ -2166,11 +1950,7 @@ jobs: runs-on: ubuntu-latest needs: - prepare-workflow - - windows-amd64-ci-deps - - macos-x86_64-ci-deps - - macos-arm64-ci-deps - - linux-x86_64-ci-deps - - linux-arm64-ci-deps + - build-ci-deps - windows-2016 - windows-2019 - windows-2022 @@ -2320,22 +2100,11 @@ jobs: - pre-commit - lint - build-docs - - build-deps-onedir-linux - - build-deps-onedir-windows - - build-deps-onedir-macos - - build-salt-onedir-linux - - build-salt-onedir-windows - - build-salt-onedir-macos - - build-rpm-pkgs-src - - build-deb-pkgs-src - - build-windows-pkgs-src - - build-macos-pkgs-src + - build-deps-onedir + - build-salt-onedir + - build-pkgs-src - combine-all-code-coverage - - windows-amd64-ci-deps - - macos-x86_64-ci-deps - - macos-arm64-ci-deps - - linux-x86_64-ci-deps - - linux-arm64-ci-deps + - build-ci-deps - windows-2016 - windows-2019 - windows-2022 diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 77de8acad97..41383fb4062 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -462,12 +462,12 @@ jobs: with: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - build-deps-onedir-linux: + build-deps-onedir: name: Build Dependencies Onedir if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-onedir'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - uses: ./.github/workflows/build-deps-onedir-linux.yml + uses: ./.github/workflows/build-deps-onedir.yml with: cache-seed: ${{ needs.prepare-workflow.outputs.cache-seed }} salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" @@ -476,42 +476,14 @@ jobs: relenv-version: "0.14.2" python-version: "3.10.13" - build-deps-onedir-windows: - name: Build Dependencies Onedir - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-onedir'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - uses: ./.github/workflows/build-deps-onedir-windows.yml - with: - cache-seed: ${{ needs.prepare-workflow.outputs.cache-seed }} - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - self-hosted-runners: ${{ fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - github-hosted-runners: ${{ fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} - relenv-version: "0.14.2" - python-version: "3.10.13" - - build-deps-onedir-macos: - name: Build Dependencies Onedir - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-onedir'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - uses: ./.github/workflows/build-deps-onedir-macos.yml - with: - cache-seed: ${{ needs.prepare-workflow.outputs.cache-seed }} - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - self-hosted-runners: ${{ fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - github-hosted-runners: ${{ fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} - relenv-version: "0.14.2" - python-version: "3.10.13" - - build-salt-onedir-linux: + build-salt-onedir: name: Build Salt Onedir if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-salt-onedir'] }} needs: - prepare-workflow - - build-deps-onedir-linux + - build-deps-onedir - build-source-tarball - uses: ./.github/workflows/build-salt-onedir-linux.yml + uses: ./.github/workflows/build-salt-onedir.yml with: cache-seed: ${{ needs.prepare-workflow.outputs.cache-seed }} salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" @@ -520,101 +492,13 @@ jobs: relenv-version: "0.14.2" python-version: "3.10.13" - build-salt-onedir-windows: - name: Build Salt Onedir - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-salt-onedir'] }} - needs: - - prepare-workflow - - build-deps-onedir-windows - - build-source-tarball - uses: ./.github/workflows/build-salt-onedir-windows.yml - with: - cache-seed: ${{ needs.prepare-workflow.outputs.cache-seed }} - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - self-hosted-runners: ${{ fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - github-hosted-runners: ${{ fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} - relenv-version: "0.14.2" - python-version: "3.10.13" - - build-salt-onedir-macos: - name: Build Salt Onedir - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-salt-onedir'] }} - needs: - - prepare-workflow - - build-deps-onedir-macos - - build-source-tarball - uses: ./.github/workflows/build-salt-onedir-macos.yml - with: - cache-seed: ${{ needs.prepare-workflow.outputs.cache-seed }} - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - self-hosted-runners: ${{ fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - github-hosted-runners: ${{ fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} - relenv-version: "0.14.2" - python-version: "3.10.13" - - build-rpm-pkgs-onedir: + build-pkgs-onedir: name: Build Packages if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-pkgs'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-rpm-packages.yml - with: - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }} - relenv-version: "0.14.2" - python-version: "3.10.13" - source: "onedir" - - build-rpm-pkgs-src: - name: Build Packages - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-pkgs'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-rpm-packages.yml - with: - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }} - relenv-version: "0.14.2" - python-version: "3.10.13" - source: "src" - - build-deb-pkgs-onedir: - name: Build Packages - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-pkgs'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deb-packages.yml - with: - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }} - relenv-version: "0.14.2" - python-version: "3.10.13" - source: "onedir" - - build-deb-pkgs-src: - name: Build Packages - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-pkgs'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deb-packages.yml - with: - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }} - relenv-version: "0.14.2" - python-version: "3.10.13" - source: "src" - - build-windows-pkgs-onedir: - name: Build Packages - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-pkgs'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-windows - uses: ./.github/workflows/build-windows-packages.yml + - build-salt-onedir + uses: ./.github/workflows/build-packages.yml with: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }} @@ -622,16 +506,17 @@ jobs: python-version: "3.10.13" source: "onedir" environment: nightly - sign-packages: false + sign-macos-packages: true + sign-windows-packages: false secrets: inherit - build-windows-pkgs-src: + build-pkgs-src: name: Build Packages - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-pkgs'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} + if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-pkgs'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-salt-onedir-windows - uses: ./.github/workflows/build-windows-packages.yml + - build-salt-onedir + uses: ./.github/workflows/build-packages.yml with: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }} @@ -639,123 +524,18 @@ jobs: python-version: "3.10.13" source: "src" environment: nightly - sign-packages: false + sign-macos-packages: true + sign-windows-packages: false secrets: inherit - - build-macos-pkgs-onedir: - name: Build Packages - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-pkgs'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-macos - uses: ./.github/workflows/build-macos-packages.yml - with: - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }} - relenv-version: "0.14.2" - python-version: "3.10.13" - source: "onedir" - environment: nightly - sign-packages: true - secrets: inherit - - build-macos-pkgs-src: - name: Build Packages - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-pkgs'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-macos - uses: ./.github/workflows/build-macos-packages.yml - with: - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }} - relenv-version: "0.14.2" - python-version: "3.10.13" - source: "src" - environment: nightly - sign-packages: true - secrets: inherit - - windows-amd64-ci-deps: - name: Windows amd64 CI Deps + build-ci-deps: + name: CI Deps if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-salt-onedir-windows - uses: ./.github/workflows/build-deps-ci-action-windows.yml + - build-salt-onedir + uses: ./.github/workflows/build-deps-ci-action.yml with: - distro-slug: windows-2022 nox-session: ci-test-onedir - platform: windows - arch: amd64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - macos-x86_64-ci-deps: - name: MacOS x86_64 CI Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-macos - uses: ./.github/workflows/build-deps-ci-action-macos.yml - with: - distro-slug: macos-12 - nox-session: ci-test-onedir - platform: darwin - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - macos-arm64-ci-deps: - name: MacOS arm64 CI Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-macos - uses: ./.github/workflows/build-deps-ci-action-macos.yml - with: - distro-slug: macos-13-xlarge - nox-session: ci-test-onedir - platform: darwin - arch: arm64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - linux-x86_64-ci-deps: - name: Linux x86_64 CI Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action-linux.yml - with: - distro-slug: centos-7 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - linux-arm64-ci-deps: - name: Linux arm64 CI Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action-linux.yml - with: - distro-slug: centos-7-arm64 - nox-session: ci-test-onedir - platform: linux - arch: arm64 nox-version: 2022.8.7 python-version: "3.10" salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" @@ -766,8 +546,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-rpm-pkgs-onedir - - linux-x86_64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: amazonlinux-2 @@ -788,8 +568,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-rpm-pkgs-onedir - - linux-arm64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: amazonlinux-2-arm64 @@ -810,8 +590,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-rpm-pkgs-onedir - - linux-x86_64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: amazonlinux-2023 @@ -832,8 +612,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-rpm-pkgs-onedir - - linux-arm64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: amazonlinux-2023-arm64 @@ -854,8 +634,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-rpm-pkgs-onedir - - linux-x86_64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: centos-7 @@ -876,8 +656,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-rpm-pkgs-onedir - - linux-x86_64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: centosstream-8 @@ -898,8 +678,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-rpm-pkgs-onedir - - linux-x86_64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: centosstream-9 @@ -920,8 +700,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-rpm-pkgs-onedir - - linux-arm64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: centosstream-9-arm64 @@ -942,8 +722,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-deb-pkgs-onedir - - linux-x86_64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: debian-10 @@ -964,8 +744,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-deb-pkgs-onedir - - linux-x86_64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: debian-11 @@ -986,8 +766,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-deb-pkgs-onedir - - linux-arm64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: debian-11-arm64 @@ -1008,8 +788,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-deb-pkgs-onedir - - linux-x86_64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: debian-12 @@ -1030,8 +810,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-deb-pkgs-onedir - - linux-arm64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: debian-12-arm64 @@ -1052,8 +832,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-rpm-pkgs-onedir - - linux-x86_64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: photonos-3 @@ -1074,8 +854,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-rpm-pkgs-onedir - - linux-arm64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: photonos-3-arm64 @@ -1096,8 +876,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-rpm-pkgs-onedir - - linux-x86_64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: photonos-4 @@ -1119,8 +899,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-rpm-pkgs-onedir - - linux-arm64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: photonos-4-arm64 @@ -1142,8 +922,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-rpm-pkgs-onedir - - linux-x86_64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: photonos-5 @@ -1165,8 +945,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-rpm-pkgs-onedir - - linux-arm64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: photonos-5-arm64 @@ -1188,8 +968,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-deb-pkgs-onedir - - linux-x86_64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: ubuntu-20.04 @@ -1210,8 +990,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-deb-pkgs-onedir - - linux-arm64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: ubuntu-20.04-arm64 @@ -1232,8 +1012,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-deb-pkgs-onedir - - linux-x86_64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: ubuntu-22.04 @@ -1254,8 +1034,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-deb-pkgs-onedir - - linux-arm64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: ubuntu-22.04-arm64 @@ -1276,8 +1056,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} needs: - prepare-workflow - - build-macos-pkgs-onedir - - macos-x86_64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-macos.yml with: distro-slug: macos-12 @@ -1298,8 +1078,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} needs: - prepare-workflow - - build-macos-pkgs-onedir - - macos-x86_64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-macos.yml with: distro-slug: macos-13 @@ -1320,8 +1100,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} needs: - prepare-workflow - - build-macos-pkgs-onedir - - macos-arm64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-macos.yml with: distro-slug: macos-13-xlarge @@ -1342,8 +1122,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-windows-pkgs-onedir - - windows-amd64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-windows.yml with: distro-slug: windows-2016 @@ -1364,8 +1144,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-windows-pkgs-onedir - - windows-amd64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-windows.yml with: distro-slug: windows-2016 @@ -1386,8 +1166,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-windows-pkgs-onedir - - windows-amd64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-windows.yml with: distro-slug: windows-2019 @@ -1408,8 +1188,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-windows-pkgs-onedir - - windows-amd64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-windows.yml with: distro-slug: windows-2019 @@ -1430,8 +1210,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-windows-pkgs-onedir - - windows-amd64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-windows.yml with: distro-slug: windows-2022 @@ -1452,8 +1232,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-windows-pkgs-onedir - - windows-amd64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-windows.yml with: distro-slug: windows-2022 @@ -1474,7 +1254,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - windows-amd64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-windows.yml with: distro-slug: windows-2016 @@ -1496,7 +1276,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - windows-amd64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-windows.yml with: distro-slug: windows-2019 @@ -1518,7 +1298,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - windows-amd64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-windows.yml with: distro-slug: windows-2022 @@ -1540,7 +1320,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} needs: - prepare-workflow - - macos-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-macos.yml with: distro-slug: macos-12 @@ -1562,7 +1342,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} needs: - prepare-workflow - - macos-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-macos.yml with: distro-slug: macos-13 @@ -1584,7 +1364,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} needs: - prepare-workflow - - macos-arm64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-macos.yml with: distro-slug: macos-13-xlarge @@ -1606,7 +1386,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: almalinux-8 @@ -1628,7 +1408,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: almalinux-9 @@ -1650,7 +1430,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: amazonlinux-2 @@ -1672,7 +1452,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-arm64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: amazonlinux-2-arm64 @@ -1694,7 +1474,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: amazonlinux-2023 @@ -1716,7 +1496,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-arm64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: amazonlinux-2023-arm64 @@ -1738,7 +1518,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: archlinux-lts @@ -1760,7 +1540,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: centos-7 @@ -1782,7 +1562,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: centosstream-8 @@ -1804,7 +1584,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: centosstream-9 @@ -1826,7 +1606,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: debian-10 @@ -1848,7 +1628,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: debian-11 @@ -1870,7 +1650,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-arm64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: debian-11-arm64 @@ -1892,7 +1672,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: debian-12 @@ -1914,7 +1694,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-arm64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: debian-12-arm64 @@ -1936,7 +1716,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: fedora-37 @@ -1958,7 +1738,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: fedora-38 @@ -1980,7 +1760,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: opensuse-15 @@ -2002,7 +1782,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: photonos-3 @@ -2024,7 +1804,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-arm64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: photonos-3-arm64 @@ -2046,7 +1826,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: photonos-4 @@ -2069,7 +1849,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-arm64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: photonos-4-arm64 @@ -2092,7 +1872,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: photonos-5 @@ -2115,7 +1895,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-arm64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: photonos-5-arm64 @@ -2138,7 +1918,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: ubuntu-20.04 @@ -2160,7 +1940,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-arm64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: ubuntu-20.04-arm64 @@ -2182,7 +1962,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: ubuntu-22.04 @@ -2204,7 +1984,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-arm64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: ubuntu-22.04-arm64 @@ -2227,11 +2007,7 @@ jobs: runs-on: ubuntu-latest needs: - prepare-workflow - - windows-amd64-ci-deps - - macos-x86_64-ci-deps - - macos-arm64-ci-deps - - linux-x86_64-ci-deps - - linux-arm64-ci-deps + - build-ci-deps - windows-2016 - windows-2019 - windows-2022 @@ -2479,7 +2255,7 @@ jobs: - repo-nightly needs: - prepare-workflow - - build-deb-pkgs-onedir + - build-pkgs-onedir strategy: fail-fast: false matrix: @@ -2608,7 +2384,7 @@ jobs: - repo-nightly needs: - prepare-workflow - - build-rpm-pkgs-onedir + - build-pkgs-onedir strategy: fail-fast: false matrix: @@ -2832,7 +2608,7 @@ jobs: - repo-nightly needs: - prepare-workflow - - build-windows-pkgs-onedir + - build-pkgs-onedir strategy: fail-fast: false matrix: @@ -2934,7 +2710,7 @@ jobs: - repo-nightly needs: - prepare-workflow - - build-macos-pkgs-onedir + - build-pkgs-onedir strategy: fail-fast: false matrix: @@ -3024,9 +2800,7 @@ jobs: - repo-nightly needs: - prepare-workflow - - build-salt-onedir-linux - - build-salt-onedir-macos - - build-salt-onedir-windows + - build-salt-onedir strategy: fail-fast: false matrix: @@ -3159,11 +2933,7 @@ jobs: - build-windows-repo - build-macos-repo - build-onedir-repo - - windows-amd64-ci-deps - - macos-x86_64-ci-deps - - macos-arm64-ci-deps - - linux-x86_64-ci-deps - - linux-arm64-ci-deps + - build-ci-deps - windows-2016 - windows-2019 - windows-2022 @@ -3249,16 +3019,9 @@ jobs: - pre-commit - lint - build-docs - - build-deps-onedir-linux - - build-deps-onedir-windows - - build-deps-onedir-macos - - build-salt-onedir-linux - - build-salt-onedir-windows - - build-salt-onedir-macos - - build-rpm-pkgs-src - - build-deb-pkgs-src - - build-windows-pkgs-src - - build-macos-pkgs-src + - build-deps-onedir + - build-salt-onedir + - build-pkgs-src - combine-all-code-coverage - publish-repositories - amazonlinux-2-pkg-tests diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index bc0a5732ebc..4d6c8ef4d70 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -166,82 +166,14 @@ jobs: path: artifacts/salt-${{ inputs.salt-version }}-onedir-${{ matrix.platform }}-${{ matrix.arch }}.tar.xz* retention-days: 7 if-no-files-found: error - - windows-amd64-ci-deps: - name: Windows amd64 CI Deps + build-ci-deps: + name: CI Deps needs: - prepare-workflow - download-onedir-artifact - uses: ./.github/workflows/build-deps-ci-action-windows.yml + uses: ./.github/workflows/build-deps-ci-action.yml with: - distro-slug: windows-2022 nox-session: ci-test-onedir - platform: windows - arch: amd64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - macos-x86_64-ci-deps: - name: MacOS x86_64 CI Deps - needs: - - prepare-workflow - - download-onedir-artifact - uses: ./.github/workflows/build-deps-ci-action-macos.yml - with: - distro-slug: macos-12 - nox-session: ci-test-onedir - platform: darwin - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - macos-arm64-ci-deps: - name: MacOS arm64 CI Deps - needs: - - prepare-workflow - - download-onedir-artifact - uses: ./.github/workflows/build-deps-ci-action-macos.yml - with: - distro-slug: macos-13-xlarge - nox-session: ci-test-onedir - platform: darwin - arch: arm64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - linux-x86_64-ci-deps: - name: Linux x86_64 CI Deps - needs: - - prepare-workflow - - download-onedir-artifact - uses: ./.github/workflows/build-deps-ci-action-linux.yml - with: - distro-slug: centos-7 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - linux-arm64-ci-deps: - name: Linux arm64 CI Deps - needs: - - prepare-workflow - - download-onedir-artifact - uses: ./.github/workflows/build-deps-ci-action-linux.yml - with: - distro-slug: centos-7-arm64 - nox-session: ci-test-onedir - platform: linux - arch: arm64 nox-version: 2022.8.7 python-version: "3.10" salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" @@ -318,11 +250,7 @@ jobs: needs: - prepare-workflow - publish-repositories - - linux-arm64-ci-deps - - linux-x86_64-ci-deps - - macos-arm64-ci-deps - - macos-x86_64-ci-deps - - windows-amd64-ci-deps + - build-ci-deps - download-onedir-artifact uses: ./.github/workflows/test-package-downloads-action.yml with: @@ -514,11 +442,7 @@ jobs: - pkg-download-tests - release - publish-pypi - - windows-amd64-ci-deps - - macos-x86_64-ci-deps - - macos-arm64-ci-deps - - linux-x86_64-ci-deps - - linux-arm64-ci-deps + - build-ci-deps steps: - name: Get workflow information id: get-workflow-info diff --git a/.github/workflows/scheduled.yml b/.github/workflows/scheduled.yml index 59bd58d986e..b9da44c7f0e 100644 --- a/.github/workflows/scheduled.yml +++ b/.github/workflows/scheduled.yml @@ -447,12 +447,12 @@ jobs: with: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - build-deps-onedir-linux: + build-deps-onedir: name: Build Dependencies Onedir if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-onedir'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - uses: ./.github/workflows/build-deps-onedir-linux.yml + uses: ./.github/workflows/build-deps-onedir.yml with: cache-seed: ${{ needs.prepare-workflow.outputs.cache-seed }} salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" @@ -461,42 +461,14 @@ jobs: relenv-version: "0.14.2" python-version: "3.10.13" - build-deps-onedir-windows: - name: Build Dependencies Onedir - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-onedir'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - uses: ./.github/workflows/build-deps-onedir-windows.yml - with: - cache-seed: ${{ needs.prepare-workflow.outputs.cache-seed }} - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - self-hosted-runners: ${{ fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - github-hosted-runners: ${{ fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} - relenv-version: "0.14.2" - python-version: "3.10.13" - - build-deps-onedir-macos: - name: Build Dependencies Onedir - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-onedir'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - uses: ./.github/workflows/build-deps-onedir-macos.yml - with: - cache-seed: ${{ needs.prepare-workflow.outputs.cache-seed }} - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - self-hosted-runners: ${{ fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - github-hosted-runners: ${{ fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} - relenv-version: "0.14.2" - python-version: "3.10.13" - - build-salt-onedir-linux: + build-salt-onedir: name: Build Salt Onedir if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-salt-onedir'] }} needs: - prepare-workflow - - build-deps-onedir-linux + - build-deps-onedir - build-source-tarball - uses: ./.github/workflows/build-salt-onedir-linux.yml + uses: ./.github/workflows/build-salt-onedir.yml with: cache-seed: ${{ needs.prepare-workflow.outputs.cache-seed }} salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" @@ -505,45 +477,13 @@ jobs: relenv-version: "0.14.2" python-version: "3.10.13" - build-salt-onedir-windows: - name: Build Salt Onedir - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-salt-onedir'] }} - needs: - - prepare-workflow - - build-deps-onedir-windows - - build-source-tarball - uses: ./.github/workflows/build-salt-onedir-windows.yml - with: - cache-seed: ${{ needs.prepare-workflow.outputs.cache-seed }} - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - self-hosted-runners: ${{ fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - github-hosted-runners: ${{ fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} - relenv-version: "0.14.2" - python-version: "3.10.13" - - build-salt-onedir-macos: - name: Build Salt Onedir - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-salt-onedir'] }} - needs: - - prepare-workflow - - build-deps-onedir-macos - - build-source-tarball - uses: ./.github/workflows/build-salt-onedir-macos.yml - with: - cache-seed: ${{ needs.prepare-workflow.outputs.cache-seed }} - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - self-hosted-runners: ${{ fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - github-hosted-runners: ${{ fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} - relenv-version: "0.14.2" - python-version: "3.10.13" - - build-rpm-pkgs-onedir: + build-pkgs-onedir: name: Build Packages if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-pkgs'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-rpm-packages.yml + - build-salt-onedir + uses: ./.github/workflows/build-packages.yml with: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }} @@ -551,184 +491,28 @@ jobs: python-version: "3.10.13" source: "onedir" - build-rpm-pkgs-src: + build-pkgs-src: name: Build Packages if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-pkgs'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-rpm-packages.yml + - build-salt-onedir + uses: ./.github/workflows/build-packages.yml with: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }} relenv-version: "0.14.2" python-version: "3.10.13" source: "src" - - build-deb-pkgs-onedir: - name: Build Packages - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-pkgs'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deb-packages.yml - with: - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }} - relenv-version: "0.14.2" - python-version: "3.10.13" - source: "onedir" - - build-deb-pkgs-src: - name: Build Packages - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-pkgs'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deb-packages.yml - with: - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }} - relenv-version: "0.14.2" - python-version: "3.10.13" - source: "src" - - build-windows-pkgs-onedir: - name: Build Packages - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-pkgs'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-windows - uses: ./.github/workflows/build-windows-packages.yml - with: - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }} - relenv-version: "0.14.2" - python-version: "3.10.13" - source: "onedir" - - build-windows-pkgs-src: - name: Build Packages - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-pkgs'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-windows - uses: ./.github/workflows/build-windows-packages.yml - with: - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }} - relenv-version: "0.14.2" - python-version: "3.10.13" - source: "src" - - build-macos-pkgs-onedir: - name: Build Packages - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-pkgs'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-macos - uses: ./.github/workflows/build-macos-packages.yml - with: - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }} - relenv-version: "0.14.2" - python-version: "3.10.13" - source: "onedir" - - build-macos-pkgs-src: - name: Build Packages - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-pkgs'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-macos - uses: ./.github/workflows/build-macos-packages.yml - with: - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }} - relenv-version: "0.14.2" - python-version: "3.10.13" - source: "src" - - windows-amd64-ci-deps: - name: Windows amd64 CI Deps + build-ci-deps: + name: CI Deps if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-salt-onedir-windows - uses: ./.github/workflows/build-deps-ci-action-windows.yml + - build-salt-onedir + uses: ./.github/workflows/build-deps-ci-action.yml with: - distro-slug: windows-2022 nox-session: ci-test-onedir - platform: windows - arch: amd64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - macos-x86_64-ci-deps: - name: MacOS x86_64 CI Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-macos - uses: ./.github/workflows/build-deps-ci-action-macos.yml - with: - distro-slug: macos-12 - nox-session: ci-test-onedir - platform: darwin - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - macos-arm64-ci-deps: - name: MacOS arm64 CI Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-macos - uses: ./.github/workflows/build-deps-ci-action-macos.yml - with: - distro-slug: macos-13-xlarge - nox-session: ci-test-onedir - platform: darwin - arch: arm64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - linux-x86_64-ci-deps: - name: Linux x86_64 CI Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action-linux.yml - with: - distro-slug: centos-7 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - linux-arm64-ci-deps: - name: Linux arm64 CI Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action-linux.yml - with: - distro-slug: centos-7-arm64 - nox-session: ci-test-onedir - platform: linux - arch: arm64 nox-version: 2022.8.7 python-version: "3.10" salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" @@ -739,8 +523,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-rpm-pkgs-onedir - - linux-x86_64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: amazonlinux-2 @@ -761,8 +545,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-rpm-pkgs-onedir - - linux-arm64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: amazonlinux-2-arm64 @@ -783,8 +567,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-rpm-pkgs-onedir - - linux-x86_64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: amazonlinux-2023 @@ -805,8 +589,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-rpm-pkgs-onedir - - linux-arm64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: amazonlinux-2023-arm64 @@ -827,8 +611,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-rpm-pkgs-onedir - - linux-x86_64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: centos-7 @@ -849,8 +633,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-rpm-pkgs-onedir - - linux-x86_64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: centosstream-8 @@ -871,8 +655,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-rpm-pkgs-onedir - - linux-x86_64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: centosstream-9 @@ -893,8 +677,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-rpm-pkgs-onedir - - linux-arm64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: centosstream-9-arm64 @@ -915,8 +699,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-deb-pkgs-onedir - - linux-x86_64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: debian-10 @@ -937,8 +721,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-deb-pkgs-onedir - - linux-x86_64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: debian-11 @@ -959,8 +743,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-deb-pkgs-onedir - - linux-arm64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: debian-11-arm64 @@ -981,8 +765,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-deb-pkgs-onedir - - linux-x86_64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: debian-12 @@ -1003,8 +787,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-deb-pkgs-onedir - - linux-arm64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: debian-12-arm64 @@ -1025,8 +809,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-rpm-pkgs-onedir - - linux-x86_64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: photonos-3 @@ -1047,8 +831,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-rpm-pkgs-onedir - - linux-arm64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: photonos-3-arm64 @@ -1069,8 +853,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-rpm-pkgs-onedir - - linux-x86_64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: photonos-4 @@ -1092,8 +876,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-rpm-pkgs-onedir - - linux-arm64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: photonos-4-arm64 @@ -1115,8 +899,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-rpm-pkgs-onedir - - linux-x86_64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: photonos-5 @@ -1138,8 +922,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-rpm-pkgs-onedir - - linux-arm64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: photonos-5-arm64 @@ -1161,8 +945,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-deb-pkgs-onedir - - linux-x86_64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: ubuntu-20.04 @@ -1183,8 +967,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-deb-pkgs-onedir - - linux-arm64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: ubuntu-20.04-arm64 @@ -1205,8 +989,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-deb-pkgs-onedir - - linux-x86_64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: ubuntu-22.04 @@ -1227,8 +1011,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-deb-pkgs-onedir - - linux-arm64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: ubuntu-22.04-arm64 @@ -1249,8 +1033,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} needs: - prepare-workflow - - build-macos-pkgs-onedir - - macos-x86_64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-macos.yml with: distro-slug: macos-12 @@ -1271,8 +1055,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} needs: - prepare-workflow - - build-macos-pkgs-onedir - - macos-x86_64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-macos.yml with: distro-slug: macos-13 @@ -1293,8 +1077,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} needs: - prepare-workflow - - build-macos-pkgs-onedir - - macos-arm64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-macos.yml with: distro-slug: macos-13-xlarge @@ -1315,8 +1099,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-windows-pkgs-onedir - - windows-amd64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-windows.yml with: distro-slug: windows-2016 @@ -1337,8 +1121,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-windows-pkgs-onedir - - windows-amd64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-windows.yml with: distro-slug: windows-2016 @@ -1359,8 +1143,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-windows-pkgs-onedir - - windows-amd64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-windows.yml with: distro-slug: windows-2019 @@ -1381,8 +1165,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-windows-pkgs-onedir - - windows-amd64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-windows.yml with: distro-slug: windows-2019 @@ -1403,8 +1187,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-windows-pkgs-onedir - - windows-amd64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-windows.yml with: distro-slug: windows-2022 @@ -1425,8 +1209,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-windows-pkgs-onedir - - windows-amd64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-windows.yml with: distro-slug: windows-2022 @@ -1447,7 +1231,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - windows-amd64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-windows.yml with: distro-slug: windows-2016 @@ -1469,7 +1253,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - windows-amd64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-windows.yml with: distro-slug: windows-2019 @@ -1491,7 +1275,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - windows-amd64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-windows.yml with: distro-slug: windows-2022 @@ -1513,7 +1297,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} needs: - prepare-workflow - - macos-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-macos.yml with: distro-slug: macos-12 @@ -1535,7 +1319,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} needs: - prepare-workflow - - macos-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-macos.yml with: distro-slug: macos-13 @@ -1557,7 +1341,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} needs: - prepare-workflow - - macos-arm64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-macos.yml with: distro-slug: macos-13-xlarge @@ -1579,7 +1363,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: almalinux-8 @@ -1601,7 +1385,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: almalinux-9 @@ -1623,7 +1407,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: amazonlinux-2 @@ -1645,7 +1429,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-arm64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: amazonlinux-2-arm64 @@ -1667,7 +1451,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: amazonlinux-2023 @@ -1689,7 +1473,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-arm64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: amazonlinux-2023-arm64 @@ -1711,7 +1495,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: archlinux-lts @@ -1733,7 +1517,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: centos-7 @@ -1755,7 +1539,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: centosstream-8 @@ -1777,7 +1561,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: centosstream-9 @@ -1799,7 +1583,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: debian-10 @@ -1821,7 +1605,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: debian-11 @@ -1843,7 +1627,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-arm64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: debian-11-arm64 @@ -1865,7 +1649,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: debian-12 @@ -1887,7 +1671,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-arm64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: debian-12-arm64 @@ -1909,7 +1693,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: fedora-37 @@ -1931,7 +1715,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: fedora-38 @@ -1953,7 +1737,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: opensuse-15 @@ -1975,7 +1759,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: photonos-3 @@ -1997,7 +1781,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-arm64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: photonos-3-arm64 @@ -2019,7 +1803,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: photonos-4 @@ -2042,7 +1826,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-arm64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: photonos-4-arm64 @@ -2065,7 +1849,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: photonos-5 @@ -2088,7 +1872,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-arm64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: photonos-5-arm64 @@ -2111,7 +1895,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: ubuntu-20.04 @@ -2133,7 +1917,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-arm64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: ubuntu-20.04-arm64 @@ -2155,7 +1939,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: ubuntu-22.04 @@ -2177,7 +1961,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-arm64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: ubuntu-22.04-arm64 @@ -2200,11 +1984,7 @@ jobs: runs-on: ubuntu-latest needs: - prepare-workflow - - windows-amd64-ci-deps - - macos-x86_64-ci-deps - - macos-arm64-ci-deps - - linux-x86_64-ci-deps - - linux-arm64-ci-deps + - build-ci-deps - windows-2016 - windows-2019 - windows-2022 @@ -2356,22 +2136,11 @@ jobs: - pre-commit - lint - build-docs - - build-deps-onedir-linux - - build-deps-onedir-windows - - build-deps-onedir-macos - - build-salt-onedir-linux - - build-salt-onedir-windows - - build-salt-onedir-macos - - build-rpm-pkgs-src - - build-deb-pkgs-src - - build-windows-pkgs-src - - build-macos-pkgs-src + - build-deps-onedir + - build-salt-onedir + - build-pkgs-src - combine-all-code-coverage - - windows-amd64-ci-deps - - macos-x86_64-ci-deps - - macos-arm64-ci-deps - - linux-x86_64-ci-deps - - linux-arm64-ci-deps + - build-ci-deps - windows-2016 - windows-2019 - windows-2022 diff --git a/.github/workflows/staging.yml b/.github/workflows/staging.yml index b39ba8635ae..cef642db2d8 100644 --- a/.github/workflows/staging.yml +++ b/.github/workflows/staging.yml @@ -452,12 +452,12 @@ jobs: with: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - build-deps-onedir-linux: + build-deps-onedir: name: Build Dependencies Onedir if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-onedir'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - uses: ./.github/workflows/build-deps-onedir-linux.yml + uses: ./.github/workflows/build-deps-onedir.yml with: cache-seed: ${{ needs.prepare-workflow.outputs.cache-seed }} salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" @@ -466,42 +466,14 @@ jobs: relenv-version: "0.14.2" python-version: "3.10.13" - build-deps-onedir-windows: - name: Build Dependencies Onedir - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-onedir'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - uses: ./.github/workflows/build-deps-onedir-windows.yml - with: - cache-seed: ${{ needs.prepare-workflow.outputs.cache-seed }} - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - self-hosted-runners: ${{ fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - github-hosted-runners: ${{ fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} - relenv-version: "0.14.2" - python-version: "3.10.13" - - build-deps-onedir-macos: - name: Build Dependencies Onedir - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-onedir'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - uses: ./.github/workflows/build-deps-onedir-macos.yml - with: - cache-seed: ${{ needs.prepare-workflow.outputs.cache-seed }} - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - self-hosted-runners: ${{ fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - github-hosted-runners: ${{ fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} - relenv-version: "0.14.2" - python-version: "3.10.13" - - build-salt-onedir-linux: + build-salt-onedir: name: Build Salt Onedir if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-salt-onedir'] }} needs: - prepare-workflow - - build-deps-onedir-linux + - build-deps-onedir - build-source-tarball - uses: ./.github/workflows/build-salt-onedir-linux.yml + uses: ./.github/workflows/build-salt-onedir.yml with: cache-seed: ${{ needs.prepare-workflow.outputs.cache-seed }} salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" @@ -510,101 +482,13 @@ jobs: relenv-version: "0.14.2" python-version: "3.10.13" - build-salt-onedir-windows: - name: Build Salt Onedir - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-salt-onedir'] }} - needs: - - prepare-workflow - - build-deps-onedir-windows - - build-source-tarball - uses: ./.github/workflows/build-salt-onedir-windows.yml - with: - cache-seed: ${{ needs.prepare-workflow.outputs.cache-seed }} - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - self-hosted-runners: ${{ fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - github-hosted-runners: ${{ fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} - relenv-version: "0.14.2" - python-version: "3.10.13" - - build-salt-onedir-macos: - name: Build Salt Onedir - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-salt-onedir'] }} - needs: - - prepare-workflow - - build-deps-onedir-macos - - build-source-tarball - uses: ./.github/workflows/build-salt-onedir-macos.yml - with: - cache-seed: ${{ needs.prepare-workflow.outputs.cache-seed }} - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - self-hosted-runners: ${{ fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - github-hosted-runners: ${{ fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} - relenv-version: "0.14.2" - python-version: "3.10.13" - - build-rpm-pkgs-onedir: + build-pkgs-onedir: name: Build Packages if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-pkgs'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-rpm-packages.yml - with: - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }} - relenv-version: "0.14.2" - python-version: "3.10.13" - source: "onedir" - - build-rpm-pkgs-src: - name: Build Packages - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-pkgs'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-rpm-packages.yml - with: - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }} - relenv-version: "0.14.2" - python-version: "3.10.13" - source: "src" - - build-deb-pkgs-onedir: - name: Build Packages - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-pkgs'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deb-packages.yml - with: - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }} - relenv-version: "0.14.2" - python-version: "3.10.13" - source: "onedir" - - build-deb-pkgs-src: - name: Build Packages - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-pkgs'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deb-packages.yml - with: - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }} - relenv-version: "0.14.2" - python-version: "3.10.13" - source: "src" - - build-windows-pkgs-onedir: - name: Build Packages - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-pkgs'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-windows - uses: ./.github/workflows/build-windows-packages.yml + - build-salt-onedir + uses: ./.github/workflows/build-packages.yml with: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }} @@ -612,16 +496,17 @@ jobs: python-version: "3.10.13" source: "onedir" environment: staging - sign-packages: ${{ inputs.sign-windows-packages }} + sign-macos-packages: true + sign-windows-packages: ${{ inputs.sign-windows-packages }} secrets: inherit - build-windows-pkgs-src: + build-pkgs-src: name: Build Packages - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-pkgs'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} + if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-pkgs'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-salt-onedir-windows - uses: ./.github/workflows/build-windows-packages.yml + - build-salt-onedir + uses: ./.github/workflows/build-packages.yml with: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }} @@ -629,123 +514,18 @@ jobs: python-version: "3.10.13" source: "src" environment: staging - sign-packages: ${{ inputs.sign-windows-packages }} + sign-macos-packages: true + sign-windows-packages: ${{ inputs.sign-windows-packages }} secrets: inherit - - build-macos-pkgs-onedir: - name: Build Packages - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-pkgs'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-macos - uses: ./.github/workflows/build-macos-packages.yml - with: - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }} - relenv-version: "0.14.2" - python-version: "3.10.13" - source: "onedir" - environment: staging - sign-packages: true - secrets: inherit - - build-macos-pkgs-src: - name: Build Packages - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-pkgs'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-macos - uses: ./.github/workflows/build-macos-packages.yml - with: - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }} - relenv-version: "0.14.2" - python-version: "3.10.13" - source: "src" - environment: staging - sign-packages: true - secrets: inherit - - windows-amd64-ci-deps: - name: Windows amd64 CI Deps + build-ci-deps: + name: CI Deps if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-salt-onedir-windows - uses: ./.github/workflows/build-deps-ci-action-windows.yml + - build-salt-onedir + uses: ./.github/workflows/build-deps-ci-action.yml with: - distro-slug: windows-2022 nox-session: ci-test-onedir - platform: windows - arch: amd64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - macos-x86_64-ci-deps: - name: MacOS x86_64 CI Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-macos - uses: ./.github/workflows/build-deps-ci-action-macos.yml - with: - distro-slug: macos-12 - nox-session: ci-test-onedir - platform: darwin - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - macos-arm64-ci-deps: - name: MacOS arm64 CI Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-macos - uses: ./.github/workflows/build-deps-ci-action-macos.yml - with: - distro-slug: macos-13-xlarge - nox-session: ci-test-onedir - platform: darwin - arch: arm64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - linux-x86_64-ci-deps: - name: Linux x86_64 CI Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action-linux.yml - with: - distro-slug: centos-7 - nox-session: ci-test-onedir - platform: linux - arch: x86_64 - nox-version: 2022.8.7 - python-version: "3.10" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 - - linux-arm64-ci-deps: - name: Linux arm64 CI Deps - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - needs: - - prepare-workflow - - build-salt-onedir-linux - uses: ./.github/workflows/build-deps-ci-action-linux.yml - with: - distro-slug: centos-7-arm64 - nox-session: ci-test-onedir - platform: linux - arch: arm64 nox-version: 2022.8.7 python-version: "3.10" salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" @@ -756,8 +536,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-rpm-pkgs-onedir - - linux-x86_64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: amazonlinux-2 @@ -778,8 +558,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-rpm-pkgs-onedir - - linux-arm64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: amazonlinux-2-arm64 @@ -800,8 +580,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-rpm-pkgs-onedir - - linux-x86_64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: amazonlinux-2023 @@ -822,8 +602,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-rpm-pkgs-onedir - - linux-arm64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: amazonlinux-2023-arm64 @@ -844,8 +624,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-rpm-pkgs-onedir - - linux-x86_64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: centos-7 @@ -866,8 +646,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-rpm-pkgs-onedir - - linux-x86_64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: centosstream-8 @@ -888,8 +668,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-rpm-pkgs-onedir - - linux-x86_64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: centosstream-9 @@ -910,8 +690,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-rpm-pkgs-onedir - - linux-arm64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: centosstream-9-arm64 @@ -932,8 +712,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-deb-pkgs-onedir - - linux-x86_64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: debian-10 @@ -954,8 +734,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-deb-pkgs-onedir - - linux-x86_64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: debian-11 @@ -976,8 +756,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-deb-pkgs-onedir - - linux-arm64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: debian-11-arm64 @@ -998,8 +778,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-deb-pkgs-onedir - - linux-x86_64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: debian-12 @@ -1020,8 +800,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-deb-pkgs-onedir - - linux-arm64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: debian-12-arm64 @@ -1042,8 +822,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-rpm-pkgs-onedir - - linux-x86_64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: photonos-3 @@ -1064,8 +844,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-rpm-pkgs-onedir - - linux-arm64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: photonos-3-arm64 @@ -1086,8 +866,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-rpm-pkgs-onedir - - linux-x86_64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: photonos-4 @@ -1109,8 +889,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-rpm-pkgs-onedir - - linux-arm64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: photonos-4-arm64 @@ -1132,8 +912,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-rpm-pkgs-onedir - - linux-x86_64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: photonos-5 @@ -1155,8 +935,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-rpm-pkgs-onedir - - linux-arm64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: photonos-5-arm64 @@ -1178,8 +958,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-deb-pkgs-onedir - - linux-x86_64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: ubuntu-20.04 @@ -1200,8 +980,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-deb-pkgs-onedir - - linux-arm64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: ubuntu-20.04-arm64 @@ -1222,8 +1002,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-deb-pkgs-onedir - - linux-x86_64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: ubuntu-22.04 @@ -1244,8 +1024,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-deb-pkgs-onedir - - linux-arm64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: ubuntu-22.04-arm64 @@ -1266,8 +1046,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} needs: - prepare-workflow - - build-macos-pkgs-onedir - - macos-x86_64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-macos.yml with: distro-slug: macos-12 @@ -1288,8 +1068,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} needs: - prepare-workflow - - build-macos-pkgs-onedir - - macos-x86_64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-macos.yml with: distro-slug: macos-13 @@ -1310,8 +1090,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} needs: - prepare-workflow - - build-macos-pkgs-onedir - - macos-arm64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-macos.yml with: distro-slug: macos-13-xlarge @@ -1332,8 +1112,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-windows-pkgs-onedir - - windows-amd64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-windows.yml with: distro-slug: windows-2016 @@ -1354,8 +1134,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-windows-pkgs-onedir - - windows-amd64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-windows.yml with: distro-slug: windows-2016 @@ -1376,8 +1156,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-windows-pkgs-onedir - - windows-amd64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-windows.yml with: distro-slug: windows-2019 @@ -1398,8 +1178,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-windows-pkgs-onedir - - windows-amd64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-windows.yml with: distro-slug: windows-2019 @@ -1420,8 +1200,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-windows-pkgs-onedir - - windows-amd64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-windows.yml with: distro-slug: windows-2022 @@ -1442,8 +1222,8 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-windows-pkgs-onedir - - windows-amd64-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-windows.yml with: distro-slug: windows-2022 @@ -1464,7 +1244,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - windows-amd64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-windows.yml with: distro-slug: windows-2016 @@ -1486,7 +1266,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - windows-amd64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-windows.yml with: distro-slug: windows-2019 @@ -1508,7 +1288,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - windows-amd64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-windows.yml with: distro-slug: windows-2022 @@ -1530,7 +1310,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} needs: - prepare-workflow - - macos-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-macos.yml with: distro-slug: macos-12 @@ -1552,7 +1332,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} needs: - prepare-workflow - - macos-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-macos.yml with: distro-slug: macos-13 @@ -1574,7 +1354,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} needs: - prepare-workflow - - macos-arm64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-macos.yml with: distro-slug: macos-13-xlarge @@ -1596,7 +1376,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: almalinux-8 @@ -1618,7 +1398,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: almalinux-9 @@ -1640,7 +1420,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: amazonlinux-2 @@ -1662,7 +1442,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-arm64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: amazonlinux-2-arm64 @@ -1684,7 +1464,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: amazonlinux-2023 @@ -1706,7 +1486,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-arm64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: amazonlinux-2023-arm64 @@ -1728,7 +1508,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: archlinux-lts @@ -1750,7 +1530,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: centos-7 @@ -1772,7 +1552,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: centosstream-8 @@ -1794,7 +1574,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: centosstream-9 @@ -1816,7 +1596,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: debian-10 @@ -1838,7 +1618,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: debian-11 @@ -1860,7 +1640,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-arm64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: debian-11-arm64 @@ -1882,7 +1662,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: debian-12 @@ -1904,7 +1684,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-arm64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: debian-12-arm64 @@ -1926,7 +1706,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: fedora-37 @@ -1948,7 +1728,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: fedora-38 @@ -1970,7 +1750,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: opensuse-15 @@ -1992,7 +1772,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: photonos-3 @@ -2014,7 +1794,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-arm64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: photonos-3-arm64 @@ -2036,7 +1816,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: photonos-4 @@ -2059,7 +1839,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-arm64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: photonos-4-arm64 @@ -2082,7 +1862,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: photonos-5 @@ -2105,7 +1885,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-arm64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: photonos-5-arm64 @@ -2128,7 +1908,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: ubuntu-20.04 @@ -2150,7 +1930,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-arm64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: ubuntu-20.04-arm64 @@ -2172,7 +1952,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-x86_64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: ubuntu-22.04 @@ -2194,7 +1974,7 @@ jobs: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-arm64-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: ubuntu-22.04-arm64 @@ -2320,7 +2100,7 @@ jobs: - repo-staging needs: - prepare-workflow - - build-deb-pkgs-onedir + - build-pkgs-onedir strategy: fail-fast: false matrix: @@ -2449,7 +2229,7 @@ jobs: - repo-staging needs: - prepare-workflow - - build-rpm-pkgs-onedir + - build-pkgs-onedir strategy: fail-fast: false matrix: @@ -2675,7 +2455,7 @@ jobs: - repo-staging needs: - prepare-workflow - - build-windows-pkgs-onedir + - build-pkgs-onedir strategy: fail-fast: false matrix: @@ -2777,7 +2557,7 @@ jobs: - repo-staging needs: - prepare-workflow - - build-macos-pkgs-onedir + - build-pkgs-onedir strategy: fail-fast: false matrix: @@ -2867,9 +2647,7 @@ jobs: - repo-staging needs: - prepare-workflow - - build-salt-onedir-linux - - build-salt-onedir-macos - - build-salt-onedir-windows + - build-salt-onedir strategy: fail-fast: false matrix: @@ -3112,14 +2890,8 @@ jobs: needs: - prepare-workflow - publish-repositories - - linux-arm64-ci-deps - - linux-x86_64-ci-deps - - macos-arm64-ci-deps - - macos-x86_64-ci-deps - - windows-amd64-ci-deps - - build-salt-onedir-linux - - build-salt-onedir-macos - - build-salt-onedir-windows + - build-ci-deps + - build-salt-onedir uses: ./.github/workflows/test-package-downloads-action.yml with: nox-session: ci-test-onedir @@ -3138,11 +2910,7 @@ jobs: needs: - prepare-workflow - upload-release-artifacts - - windows-amd64-ci-deps - - macos-x86_64-ci-deps - - macos-arm64-ci-deps - - linux-x86_64-ci-deps - - linux-arm64-ci-deps + - build-ci-deps - windows-2016 - windows-2019 - windows-2022 @@ -3271,16 +3039,9 @@ jobs: - pre-commit - lint - build-docs - - build-deps-onedir-linux - - build-deps-onedir-windows - - build-deps-onedir-macos - - build-salt-onedir-linux - - build-salt-onedir-windows - - build-salt-onedir-macos - - build-rpm-pkgs-src - - build-deb-pkgs-src - - build-windows-pkgs-src - - build-macos-pkgs-src + - build-deps-onedir + - build-salt-onedir + - build-pkgs-src - publish-repositories - upload-release-artifacts - pkg-download-tests diff --git a/.github/workflows/templates/build-ci-deps.yml.jinja b/.github/workflows/templates/build-ci-deps.yml.jinja index fa5a0bc971f..bd933864dfa 100644 --- a/.github/workflows/templates/build-ci-deps.yml.jinja +++ b/.github/workflows/templates/build-ci-deps.yml.jinja @@ -1,86 +1,21 @@ - <%- for arch, build_distro_slug in build_ci_deps_listing["windows"] %> - - windows-<{ arch }>-ci-deps: - <%- do test_salt_needs.append("windows-" + arch + "-ci-deps") %> - name: Windows <{ arch }> CI Deps + build-ci-deps: + <%- do test_salt_needs.append("build-ci-deps") %> + name: CI Deps <%- if workflow_slug != 'release' %> if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} <%- endif %> needs: - prepare-workflow <%- if workflow_slug != 'release' %> - - build-salt-onedir-windows + - build-salt-onedir <%- else %> - download-onedir-artifact <%- endif %> - uses: ./.github/workflows/build-deps-ci-action-windows.yml + uses: ./.github/workflows/build-deps-ci-action.yml with: - distro-slug: <{ build_distro_slug }> nox-session: ci-test-onedir - platform: windows - arch: <{ arch }> nox-version: <{ nox_version }> python-version: "<{ gh_actions_workflows_python_version }>" salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|<{ python_version }> - - <%- endfor %> - - - <%- for arch, build_distro_slug in build_ci_deps_listing["macos"] %> - - macos-<{ arch }>-ci-deps: - <%- do test_salt_needs.append("macos-" + arch + "-ci-deps") %> - name: MacOS <{ arch }> CI Deps - <%- if workflow_slug != 'release' %> - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} - <%- endif %> - needs: - - prepare-workflow - <%- if workflow_slug != 'release' %> - - build-salt-onedir-macos - <%- else %> - - download-onedir-artifact - <%- endif %> - uses: ./.github/workflows/build-deps-ci-action-macos.yml - with: - distro-slug: <{ build_distro_slug }> - nox-session: ci-test-onedir - platform: darwin - arch: <{ arch }> - nox-version: <{ nox_version }> - python-version: "<{ gh_actions_workflows_python_version }>" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|<{ python_version }> - - <%- endfor %> - - - <%- for arch, build_distro_slug in build_ci_deps_listing["linux"] %> - - linux-<{ arch }>-ci-deps: - <%- do test_salt_needs.append("linux-" + arch + "-ci-deps") %> - name: Linux <{ arch }> CI Deps - <%- if workflow_slug != 'release' %> - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-deps-ci'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} - <%- endif %> - needs: - - prepare-workflow - <%- if workflow_slug != 'release' %> - - build-salt-onedir-linux - <%- else %> - - download-onedir-artifact - <%- endif %> - uses: ./.github/workflows/build-deps-ci-action-linux.yml - with: - distro-slug: <{ build_distro_slug }> - nox-session: ci-test-onedir - platform: linux - arch: <{ arch }> - nox-version: <{ nox_version }> - python-version: "<{ gh_actions_workflows_python_version }>" - salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" - cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|<{ python_version }> - - <%- endfor %> diff --git a/.github/workflows/templates/build-deps-ci-action.yml.jinja b/.github/workflows/templates/build-deps-ci-action.yml.jinja new file mode 100644 index 00000000000..7be48b3dd9b --- /dev/null +++ b/.github/workflows/templates/build-deps-ci-action.yml.jinja @@ -0,0 +1,360 @@ +--- +name: Install Test Dependencies + +on: + workflow_call: + inputs: + nox-session: + required: true + type: string + description: The nox session to run + salt-version: + type: string + required: true + description: The Salt version to set prior to running tests. + cache-prefix: + required: true + type: string + description: Seed used to invalidate caches + nox-version: + required: true + type: string + description: The nox version to install + python-version: + required: false + type: string + description: The python version to run tests with + default: "3.10" + package-name: + required: false + type: string + description: The onedir package name to use + default: salt + + +env: + COLUMNS: 190 + AWS_MAX_ATTEMPTS: "10" + AWS_RETRY_MODE: "adaptive" + PIP_INDEX_URL: https://pypi-proxy.saltstack.net/root/local/+simple/ + PIP_EXTRA_INDEX_URL: https://pypi.org/simple + +jobs: + + linux-dependencies: + name: Linux + runs-on: + - self-hosted + - linux + - bastion + timeout-minutes: 90 + strategy: + fail-fast: false + matrix: + include: + <%- for arch, build_distro_slug in build_ci_deps_listing["linux"] %> + - distro-slug: <{ build_distro_slug }> + arch: <{ arch }> + <%- endfor %> + steps: + + - name: "Throttle Builds" + shell: bash + run: | + t=$(shuf -i 1-30 -n 1); echo "Sleeping $t seconds"; sleep "$t" + + - name: Checkout Source Code + uses: actions/checkout@v4 + + - name: Cache nox.linux.${{ matrix.arch }}.tar.* for session ${{ inputs.nox-session }} + id: nox-dependencies-cache + uses: actions/cache@v3.3.1 + with: + path: nox.linux.${{ matrix.arch }}.tar.* + key: ${{ inputs.cache-prefix }}|testrun-deps|${{ matrix.arch }}|linux|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ + hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py') + }} + + - name: Download Onedir Tarball as an Artifact + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + uses: actions/download-artifact@v3 + with: + name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-linux-${{ matrix.arch }}.tar.xz + path: artifacts/ + + - name: Decompress Onedir Tarball + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + shell: bash + run: | + python3 -c "import os; os.makedirs('artifacts', exist_ok=True)" + cd artifacts + tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-linux-${{ matrix.arch }}.tar.xz + + - name: PyPi Proxy + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + sed -i '7s;^;--index-url=https://pypi-proxy.saltstack.net/root/local/+simple/ --extra-index-url=https://pypi.org/simple\n;' requirements/static/ci/*/*.txt + + - name: Setup Python Tools Scripts + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + uses: ./.github/actions/setup-python-tools-scripts + with: + cache-prefix: ${{ inputs.cache-prefix }}-build-deps-ci + + - name: Get Salt Project GitHub Actions Bot Environment + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + TOKEN=$(curl -sS -f -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 30") + SPB_ENVIRONMENT=$(curl -sS -f -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/tags/instance/spb:environment) + echo "SPB_ENVIRONMENT=$SPB_ENVIRONMENT" >> "$GITHUB_ENV" + + - name: Start VM + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + id: spin-up-vm + run: | + tools --timestamps vm create --environment "${SPB_ENVIRONMENT}" --retries=2 ${{ matrix.distro-slug }} + + - name: List Free Space + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + tools --timestamps vm ssh ${{ matrix.distro-slug }} -- df -h || true + + - name: Upload Checkout To VM + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + tools --timestamps vm rsync ${{ matrix.distro-slug }} + + - name: Install Dependencies + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + tools --timestamps vm install-dependencies --nox-session=${{ inputs.nox-session }} ${{ matrix.distro-slug }} + + - name: Cleanup .nox Directory + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + tools --timestamps vm pre-archive-cleanup ${{ matrix.distro-slug }} + + - name: Compress .nox Directory + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + tools --timestamps vm compress-dependencies ${{ matrix.distro-slug }} + + - name: Download Compressed .nox Directory + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + tools --timestamps vm download-dependencies ${{ matrix.distro-slug }} + + - name: Destroy VM + if: always() && steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + tools --timestamps vm destroy --no-wait ${{ matrix.distro-slug }} + + - name: Upload Nox Requirements Tarball + uses: actions/upload-artifact@v3 + with: + name: nox-linux-${{ matrix.arch }}-${{ inputs.nox-session }} + path: nox.linux.${{ matrix.arch }}.tar.* + + macos-dependencies: + name: MacOS + runs-on: ${{ matrix.distro-slug }} + timeout-minutes: 90 + strategy: + fail-fast: false + matrix: + include: + <%- for arch, build_distro_slug in build_ci_deps_listing["macos"] %> + - distro-slug: <{ build_distro_slug }> + arch: <{ arch }> + <%- endfor %> + steps: + + - name: "Throttle Builds" + shell: bash + run: | + t=$(python3 -c 'import random, sys; sys.stdout.write(str(random.randint(1, 15)))'); echo "Sleeping $t seconds"; sleep "$t" + + - name: Checkout Source Code + uses: actions/checkout@v4 + + - name: Cache nox.macos.${{ matrix.arch }}.tar.* for session ${{ inputs.nox-session }} + id: nox-dependencies-cache + uses: actions/cache@v3.3.1 + with: + path: nox.macos.${{ matrix.arch }}.tar.* + key: ${{ inputs.cache-prefix }}|testrun-deps|${{ matrix.arch }}|macos|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ + hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py') + }} + + - name: Download Onedir Tarball as an Artifact + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + uses: actions/download-artifact@v3 + with: + name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-darwin-${{ matrix.arch }}.tar.xz + path: artifacts/ + + - name: Decompress Onedir Tarball + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + shell: bash + run: | + python3 -c "import os; os.makedirs('artifacts', exist_ok=True)" + cd artifacts + tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-darwin-${{ matrix.arch }}.tar.xz + + - name: Set up Python ${{ inputs.python-version }} + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + uses: actions/setup-python@v4 + with: + python-version: "${{ inputs.python-version }}" + + - name: Install System Dependencies + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + brew install openssl@3 + + - name: Install Nox + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + python3 -m pip install 'nox==${{ inputs.nox-version }}' + + - name: Install Dependencies + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + env: + PRINT_TEST_SELECTION: "0" + PRINT_SYSTEM_INFO: "0" + run: | + export PYCURL_SSL_LIBRARY=openssl + export LDFLAGS="-L/usr/local/opt/openssl@3/lib" + export CPPFLAGS="-I/usr/local/opt/openssl@3/include" + export PKG_CONFIG_PATH="/usr/local/opt/openssl@3/lib/pkgconfig" + nox --install-only -e ${{ inputs.nox-session }} + + - name: Cleanup .nox Directory + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + nox --force-color -e "pre-archive-cleanup(pkg=False)" + + - name: Compress .nox Directory + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + nox --force-color -e compress-dependencies -- macos ${{ matrix.arch }} + + - name: Upload Nox Requirements Tarball + uses: actions/upload-artifact@v3 + with: + name: nox-macos-${{ matrix.arch }}-${{ inputs.nox-session }} + path: nox.macos.${{ matrix.arch }}.tar.* + + windows-dependencies: + name: Windows + runs-on: + - self-hosted + - linux + - bastion + timeout-minutes: 90 + strategy: + fail-fast: false + matrix: + include: + <%- for arch, build_distro_slug in build_ci_deps_listing["windows"] %> + - distro-slug: <{ build_distro_slug }> + arch: <{ arch }> + <%- endfor %> + steps: + + - name: "Throttle Builds" + shell: bash + run: | + t=$(shuf -i 1-30 -n 1); echo "Sleeping $t seconds"; sleep "$t" + + - name: Checkout Source Code + uses: actions/checkout@v4 + + - name: Cache nox.windows.${{ matrix.arch }}.tar.* for session ${{ inputs.nox-session }} + id: nox-dependencies-cache + uses: actions/cache@v3.3.1 + with: + path: nox.windows.${{ matrix.arch }}.tar.* + key: ${{ inputs.cache-prefix }}|testrun-deps|${{ matrix.arch }}|windows|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ + hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py') + }} + + - name: Download Onedir Tarball as an Artifact + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + uses: actions/download-artifact@v3 + with: + name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-windows-${{ matrix.arch }}.tar.xz + path: artifacts/ + + - name: Decompress Onedir Tarball + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + shell: bash + run: | + python3 -c "import os; os.makedirs('artifacts', exist_ok=True)" + cd artifacts + tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-windows-${{ matrix.arch }}.tar.xz + + - name: PyPi Proxy + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + sed -i '7s;^;--index-url=https://pypi-proxy.saltstack.net/root/local/+simple/ --extra-index-url=https://pypi.org/simple\n;' requirements/static/ci/*/*.txt + + - name: Setup Python Tools Scripts + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + uses: ./.github/actions/setup-python-tools-scripts + with: + cache-prefix: ${{ inputs.cache-prefix }}-build-deps-ci + + - name: Get Salt Project GitHub Actions Bot Environment + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + TOKEN=$(curl -sS -f -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 30") + SPB_ENVIRONMENT=$(curl -sS -f -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/tags/instance/spb:environment) + echo "SPB_ENVIRONMENT=$SPB_ENVIRONMENT" >> "$GITHUB_ENV" + + - name: Start VM + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + id: spin-up-vm + run: | + tools --timestamps vm create --environment "${SPB_ENVIRONMENT}" --retries=2 ${{ matrix.distro-slug }} + + - name: List Free Space + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + tools --timestamps vm ssh ${{ matrix.distro-slug }} -- df -h || true + + - name: Upload Checkout To VM + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + tools --timestamps vm rsync ${{ matrix.distro-slug }} + + - name: Install Dependencies + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + tools --timestamps vm install-dependencies --nox-session=${{ inputs.nox-session }} ${{ matrix.distro-slug }} + + - name: Cleanup .nox Directory + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + tools --timestamps vm pre-archive-cleanup ${{ matrix.distro-slug }} + + - name: Compress .nox Directory + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + tools --timestamps vm compress-dependencies ${{ matrix.distro-slug }} + + - name: Download Compressed .nox Directory + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + tools --timestamps vm download-dependencies ${{ matrix.distro-slug }} + + - name: Destroy VM + if: always() && steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + tools --timestamps vm destroy --no-wait ${{ matrix.distro-slug }} + + - name: Upload Nox Requirements Tarball + uses: actions/upload-artifact@v3 + with: + name: nox-windows-${{ matrix.arch }}-${{ inputs.nox-session }} + path: nox.windows.${{ matrix.arch }}.tar.* diff --git a/.github/workflows/templates/build-packages.yml.jinja b/.github/workflows/templates/build-packages.yml.jinja index b5086a75e58..91adfb1c6e6 100644 --- a/.github/workflows/templates/build-packages.yml.jinja +++ b/.github/workflows/templates/build-packages.yml.jinja @@ -1,38 +1,27 @@ -<%- for platform, pkg_type, display_name, runner_type in ( - ("linux", "rpm", "RPM", "self-hosted"), - ("linux", "deb", "DEB", "self-hosted"), - ("windows", "windows", "Windows", "github-hosted"), - ("macos", "macos", "macOS", "github-hosted"), - ) %> - <%- for backend in ("onedir", "src") %> - <%- set job_name = "build-{}-pkgs-{}".format(pkg_type, backend) %> + <%- set job_name = "build-pkgs-{}".format(backend) %> <%- if backend == "src" %> <%- do conclusion_needs.append(job_name) %> <%- endif %> <{ job_name }>: name: Build Packages - if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-pkgs'] && fromJSON(needs.prepare-workflow.outputs.runners)['<{ runner_type }>'] }} + if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['build-pkgs'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-salt-onedir-<{ platform }> - uses: ./.github/workflows/build-<{ pkg_type }>-packages.yml + - build-salt-onedir + uses: ./.github/workflows/build-packages.yml with: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }} relenv-version: "<{ relenv_version }>" python-version: "<{ python_version }>" source: "<{ backend }>" - <%- if pkg_type in ("macos", "windows") and gh_environment %> + <%- if gh_environment %> environment: <{ gh_environment }> - <%- if pkg_type == "macos" %> - sign-packages: true - <%- else %> - sign-packages: <% if gh_environment == 'nightly' -%> false <%- else -%> ${{ inputs.sign-windows-packages }} <%- endif %> - <%- endif %> + sign-macos-packages: true + sign-windows-packages: <% if gh_environment == 'nightly' -%> false <%- else -%> ${{ inputs.sign-windows-packages }} <%- endif %> secrets: inherit <%- endif %> <%- endfor %> -<%- endfor %> diff --git a/.github/workflows/templates/build-repos.yml.jinja b/.github/workflows/templates/build-repos.yml.jinja index 58c413cf547..6b8177498df 100644 --- a/.github/workflows/templates/build-repos.yml.jinja +++ b/.github/workflows/templates/build-repos.yml.jinja @@ -20,11 +20,9 @@ needs: - prepare-workflow <%- if type not in ("src", "onedir") %> - - build-<{ type }>-pkgs-onedir + - build-pkgs-onedir <%- elif type == 'onedir' %> - - build-salt-onedir-linux - - build-salt-onedir-macos - - build-salt-onedir-windows + - build-salt-onedir <%- elif type == 'src' %> - build-source-tarball <%- endif %> diff --git a/.github/workflows/templates/ci.yml.jinja b/.github/workflows/templates/ci.yml.jinja index 9538746fd11..8e71b976476 100644 --- a/.github/workflows/templates/ci.yml.jinja +++ b/.github/workflows/templates/ci.yml.jinja @@ -235,16 +235,14 @@ <%- set job_name = "build-deps-onedir" %> <%- if includes.get(job_name, True) %> - <%- for platform in ("linux", "windows", "macos") %> - <%- set platform_job_name = "{}-{}".format(job_name, platform) %> - <{ platform_job_name }>: - <%- do conclusion_needs.append(platform_job_name) %> + <{ job_name }>: + <%- do conclusion_needs.append(job_name) %> name: Build Dependencies Onedir if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['<{ job_name }>'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - uses: ./.github/workflows/build-deps-onedir-<{ platform }>.yml + uses: ./.github/workflows/build-deps-onedir.yml with: cache-seed: ${{ needs.prepare-workflow.outputs.cache-seed }} salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" @@ -253,24 +251,21 @@ relenv-version: "<{ relenv_version }>" python-version: "<{ python_version }>" - <%- endfor %> <%- endif %> <%- set job_name = "build-salt-onedir" %> <%- if includes.get(job_name, True) %> - <%- for platform in ("linux", "windows", "macos") %> - <%- set platform_job_name = "{}-{}".format(job_name, platform) %> - <{ platform_job_name }>: - <%- do conclusion_needs.append(platform_job_name) %> + <{ job_name }>: + <%- do conclusion_needs.append(job_name) %> name: Build Salt Onedir if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['<{ job_name }>'] }} needs: - prepare-workflow - - build-deps-onedir-<{ platform }> + - build-deps-onedir - build-source-tarball - uses: ./.github/workflows/build-salt-onedir-<{ platform }>.yml + uses: ./.github/workflows/build-salt-onedir.yml with: cache-seed: ${{ needs.prepare-workflow.outputs.cache-seed }} salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" @@ -279,7 +274,6 @@ relenv-version: "<{ relenv_version }>" python-version: "<{ python_version }>" - <%- endfor %> <%- endif %> diff --git a/.github/workflows/templates/test-salt-pkg-repo-downloads.yml.jinja b/.github/workflows/templates/test-salt-pkg-repo-downloads.yml.jinja index 005c5272ac3..d28614620db 100644 --- a/.github/workflows/templates/test-salt-pkg-repo-downloads.yml.jinja +++ b/.github/workflows/templates/test-salt-pkg-repo-downloads.yml.jinja @@ -19,9 +19,7 @@ <%- if gh_environment == "release" %> - download-onedir-artifact <%- else %> - - build-salt-onedir-linux - - build-salt-onedir-macos - - build-salt-onedir-windows + - build-salt-onedir <%- endif %> uses: ./.github/workflows/test-package-downloads-action.yml with: diff --git a/.github/workflows/templates/test-salt-pkg.yml.jinja b/.github/workflows/templates/test-salt-pkg.yml.jinja index 935dbe1cd38..b41f1f37a5a 100644 --- a/.github/workflows/templates/test-salt-pkg.yml.jinja +++ b/.github/workflows/templates/test-salt-pkg.yml.jinja @@ -7,8 +7,8 @@ if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-<{ pkg_type }>-pkgs-onedir - - linux-<{ arch }>-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-linux.yml with: distro-slug: <{ slug }> @@ -40,8 +40,8 @@ if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} needs: - prepare-workflow - - build-macos-pkgs-onedir - - macos-<{ arch }>-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-macos.yml with: distro-slug: <{ slug }> @@ -70,8 +70,8 @@ if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - build-windows-pkgs-onedir - - windows-<{ arch }>-ci-deps + - build-pkgs-onedir + - build-ci-deps uses: ./.github/workflows/test-packages-action-windows.yml with: distro-slug: <{ slug }> diff --git a/.github/workflows/templates/test-salt.yml.jinja b/.github/workflows/templates/test-salt.yml.jinja index 5d9e0355f97..1be2d2995ac 100644 --- a/.github/workflows/templates/test-salt.yml.jinja +++ b/.github/workflows/templates/test-salt.yml.jinja @@ -12,7 +12,7 @@ if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - windows-<{ arch }>-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-windows.yml with: distro-slug: <{ slug }> @@ -40,7 +40,7 @@ if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} needs: - prepare-workflow - - macos-<{ arch }>-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-macos.yml with: distro-slug: <{ slug }> @@ -67,7 +67,7 @@ if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow - - linux-<{ arch }>-ci-deps + - build-ci-deps uses: ./.github/workflows/test-action-linux.yml with: distro-slug: <{ slug }> diff --git a/tools/precommit/workflows.py b/tools/precommit/workflows.py index 45251ad1617..88920f48c68 100644 --- a/tools/precommit/workflows.py +++ b/tools/precommit/workflows.py @@ -87,6 +87,9 @@ def generate_workflows(ctx: Context): "Test Package Downloads": { "template": "test-package-downloads-action.yml", }, + "Build CI Deps": { + "template": "build-deps-ci-action.yml", + }, } test_salt_listing: dict[str, list[tuple[str, ...]]] = { "linux": [ @@ -232,7 +235,7 @@ def generate_workflows(ctx: Context): test_salt_pkg_downloads_needs_slugs = set() for platform in test_salt_pkg_downloads_listing: for _, arch, _ in test_salt_pkg_downloads_listing[platform]: - test_salt_pkg_downloads_needs_slugs.add(f"{platform}-{arch}-ci-deps") + test_salt_pkg_downloads_needs_slugs.add("build-ci-deps") env = Environment( block_start_string="<%", From af8ae6d3b70578313f1bdf1a9fbd9952eaf36ac8 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Tue, 2 Jan 2024 11:02:09 +0000 Subject: [PATCH 012/146] Stop using `aarch64` Signed-off-by: Pedro Algarvio --- .github/workflows/build-deps-onedir.yml | 10 +++++----- .github/workflows/build-packages.yml | 10 +++++----- .github/workflows/build-salt-onedir.yml | 10 +++++----- .github/workflows/nightly.yml | 20 +++++++++---------- .github/workflows/release.yml | 4 ++-- .github/workflows/staging.yml | 20 +++++++++---------- .../templates/build-deb-repo.yml.jinja | 10 +++++----- .../templates/build-macos-repo.yml.jinja | 2 +- .../templates/build-onedir-repo.yml.jinja | 6 +++--- .../templates/build-rpm-repo.yml.jinja | 2 +- .github/workflows/templates/release.yml.jinja | 4 ++-- .../test-package-downloads-action.yml.jinja | 8 ++++---- .../test-package-downloads-action.yml | 8 ++++---- tools/pkg/build.py | 6 +++--- 14 files changed, 60 insertions(+), 60 deletions(-) diff --git a/.github/workflows/build-deps-onedir.yml b/.github/workflows/build-deps-onedir.yml index 438ab3c6ae9..7230ce9d7d0 100644 --- a/.github/workflows/build-deps-onedir.yml +++ b/.github/workflows/build-deps-onedir.yml @@ -45,7 +45,7 @@ jobs: matrix: arch: - x86_64 - - aarch64 + - arm64 runs-on: - self-hosted - linux @@ -69,7 +69,7 @@ jobs: uses: ./.github/actions/setup-relenv with: platform: linux - arch: ${{ matrix.arch }} + arch: ${{ matrix.arch == 'arm64' && 'aarch64' || matrix.arch }} version: ${{ inputs.relenv-version }} cache-seed: ${{ inputs.cache-seed }} python-version: ${{ inputs.python-version }} @@ -91,9 +91,9 @@ jobs: matrix: arch: - x86_64 - - aarch64 + - arm64 runs-on: - - ${{ matrix.arch == 'aarch64' && 'macos-13-xlarge' || 'macos-12' }} + - ${{ matrix.arch == 'arm64' && 'macos-13-xlarge' || 'macos-12' }} steps: @@ -119,7 +119,7 @@ jobs: uses: ./.github/actions/setup-relenv with: platform: darwin - arch: ${{ matrix.arch == 'aarch64' && 'arm64' || matrix.arch }} + arch: ${{ matrix.arch }} version: ${{ inputs.relenv-version }} cache-seed: ${{ inputs.cache-seed }} python-version: ${{ inputs.python-version }} diff --git a/.github/workflows/build-packages.yml b/.github/workflows/build-packages.yml index 7a7f13871e4..abe35e1c81f 100644 --- a/.github/workflows/build-packages.yml +++ b/.github/workflows/build-packages.yml @@ -52,12 +52,12 @@ jobs: matrix: arch: - x86_64 - - aarch64 + - arm64 source: - ${{ inputs.source }} runs-on: - - ${{ matrix.arch == 'aarch64' && 'macos-13-xlarge' || 'macos-12' }} + - ${{ matrix.arch == 'arm64' && 'macos-13-xlarge' || 'macos-12' }} steps: - name: Check Package Signing Enabled @@ -172,7 +172,7 @@ jobs: matrix: arch: - x86_64 - - aarch64 + - arm64 source: - ${{ inputs.source }} @@ -270,7 +270,7 @@ jobs: matrix: arch: - x86_64 - - aarch64 + - arm64 source: - ${{ inputs.source }} @@ -335,7 +335,7 @@ jobs: uses: actions/upload-artifact@v3 with: name: ${{ steps.set-artifact-name.outputs.artifact-name }} - path: ~/rpmbuild/RPMS/${{ matrix.arch }}/*.rpm + path: ~/rpmbuild/RPMS/*/*.rpm retention-days: 7 if-no-files-found: error diff --git a/.github/workflows/build-salt-onedir.yml b/.github/workflows/build-salt-onedir.yml index b95381ae388..df2f562fa54 100644 --- a/.github/workflows/build-salt-onedir.yml +++ b/.github/workflows/build-salt-onedir.yml @@ -45,7 +45,7 @@ jobs: matrix: arch: - x86_64 - - aarch64 + - arm64 runs-on: - self-hosted - linux @@ -75,7 +75,7 @@ jobs: id: setup-relenv with: platform: linux - arch: ${{ matrix.arch }} + arch: ${{ matrix.arch == 'arm64' && 'aarch64' || matrix.arch }} version: ${{ inputs.relenv-version }} cache-seed: ${{ inputs.cache-seed }} python-version: ${{ inputs.python-version }} @@ -98,9 +98,9 @@ jobs: matrix: arch: - x86_64 - - aarch64 + - arm64 runs-on: - - ${{ matrix.arch == 'aarch64' && 'macos-13-xlarge' || 'macos-12' }} + - ${{ matrix.arch == 'arm64' && 'macos-13-xlarge' || 'macos-12' }} steps: - name: "Throttle Builds" @@ -119,7 +119,7 @@ jobs: uses: ./.github/actions/setup-relenv with: platform: darwin - arch: ${{ matrix.arch == 'aarch64' && 'arm64' || matrix.arch }} + arch: ${{ matrix.arch }} version: ${{ inputs.relenv-version }} cache-seed: ${{ inputs.cache-seed }} python-version: ${{ inputs.python-version }} diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 41383fb4062..adaa539fc12 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -2267,7 +2267,7 @@ jobs: - pkg-type: deb distro: debian version: "10" - arch: aarch64 + arch: arm64 - pkg-type: deb distro: debian version: "11" @@ -2275,7 +2275,7 @@ jobs: - pkg-type: deb distro: debian version: "11" - arch: aarch64 + arch: arm64 - pkg-type: deb distro: debian version: "12" @@ -2283,7 +2283,7 @@ jobs: - pkg-type: deb distro: debian version: "12" - arch: aarch64 + arch: arm64 - pkg-type: deb distro: ubuntu version: "20.04" @@ -2291,7 +2291,7 @@ jobs: - pkg-type: deb distro: ubuntu version: "20.04" - arch: aarch64 + arch: arm64 - pkg-type: deb distro: ubuntu version: "22.04" @@ -2299,7 +2299,7 @@ jobs: - pkg-type: deb distro: ubuntu version: "22.04" - arch: aarch64 + arch: arm64 steps: - uses: actions/checkout@v4 @@ -2544,7 +2544,7 @@ jobs: - name: Download RPM Packages uses: actions/download-artifact@v3 with: - name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-${{ matrix.arch == 'arm64' && 'aarch64' || matrix.arch }}-rpm + name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-${{ matrix.arch }}-rpm path: artifacts/pkgs/incoming - name: Setup GnuPG @@ -2740,7 +2740,7 @@ jobs: - name: Download macOS Arch64 Packages uses: actions/download-artifact@v3 with: - name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-aarch64-macos + name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-arm64-macos path: artifacts/pkgs/incoming - name: Setup GnuPG @@ -2827,10 +2827,10 @@ jobs: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-onedir-linux-x86_64.tar.xz path: artifacts/pkgs/incoming - - name: Download Linux aarch64 Onedir Archive + - name: Download Linux arm64 Onedir Archive uses: actions/download-artifact@v3 with: - name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-onedir-linux-aarch64.tar.xz + name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-onedir-linux-arm64.tar.xz path: artifacts/pkgs/incoming - name: Download macOS x86_64 Onedir Archive @@ -2842,7 +2842,7 @@ jobs: - name: Download macOS arm64 Onedir Archive uses: actions/download-artifact@v3 with: - name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-onedir-darwin-aarch64.tar.xz + name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-onedir-darwin-arm64.tar.xz path: artifacts/pkgs/incoming - name: Download Windows amd64 Onedir Archive diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 4d6c8ef4d70..94a48304ee1 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -132,7 +132,7 @@ jobs: - platform: linux arch: x86_64 - platform: linux - arch: aarch64 + arch: arm64 - platform: windows arch: amd64 - platform: windows @@ -140,7 +140,7 @@ jobs: - platform: darwin arch: x86_64 - platform: darwin - arch: aarch64 + arch: arm64 steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/staging.yml b/.github/workflows/staging.yml index cef642db2d8..eadb19a9afd 100644 --- a/.github/workflows/staging.yml +++ b/.github/workflows/staging.yml @@ -2112,7 +2112,7 @@ jobs: - pkg-type: deb distro: debian version: "10" - arch: aarch64 + arch: arm64 - pkg-type: deb distro: debian version: "11" @@ -2120,7 +2120,7 @@ jobs: - pkg-type: deb distro: debian version: "11" - arch: aarch64 + arch: arm64 - pkg-type: deb distro: debian version: "12" @@ -2128,7 +2128,7 @@ jobs: - pkg-type: deb distro: debian version: "12" - arch: aarch64 + arch: arm64 - pkg-type: deb distro: ubuntu version: "20.04" @@ -2136,7 +2136,7 @@ jobs: - pkg-type: deb distro: ubuntu version: "20.04" - arch: aarch64 + arch: arm64 - pkg-type: deb distro: ubuntu version: "22.04" @@ -2144,7 +2144,7 @@ jobs: - pkg-type: deb distro: ubuntu version: "22.04" - arch: aarch64 + arch: arm64 steps: - uses: actions/checkout@v4 @@ -2389,7 +2389,7 @@ jobs: - name: Download RPM Packages uses: actions/download-artifact@v3 with: - name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-${{ matrix.arch == 'arm64' && 'aarch64' || matrix.arch }}-rpm + name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-${{ matrix.arch }}-rpm path: artifacts/pkgs/incoming - name: Setup GnuPG @@ -2587,7 +2587,7 @@ jobs: - name: Download macOS Arch64 Packages uses: actions/download-artifact@v3 with: - name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-aarch64-macos + name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-arm64-macos path: artifacts/pkgs/incoming - name: Setup GnuPG @@ -2674,10 +2674,10 @@ jobs: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-onedir-linux-x86_64.tar.xz path: artifacts/pkgs/incoming - - name: Download Linux aarch64 Onedir Archive + - name: Download Linux arm64 Onedir Archive uses: actions/download-artifact@v3 with: - name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-onedir-linux-aarch64.tar.xz + name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-onedir-linux-arm64.tar.xz path: artifacts/pkgs/incoming - name: Download macOS x86_64 Onedir Archive @@ -2689,7 +2689,7 @@ jobs: - name: Download macOS arm64 Onedir Archive uses: actions/download-artifact@v3 with: - name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-onedir-darwin-aarch64.tar.xz + name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-onedir-darwin-arm64.tar.xz path: artifacts/pkgs/incoming - name: Download Windows amd64 Onedir Archive diff --git a/.github/workflows/templates/build-deb-repo.yml.jinja b/.github/workflows/templates/build-deb-repo.yml.jinja index 8d9c054405f..ac0bc159da4 100644 --- a/.github/workflows/templates/build-deb-repo.yml.jinja +++ b/.github/workflows/templates/build-deb-repo.yml.jinja @@ -5,15 +5,15 @@ include: <%- for distro, version, arch in ( ("debian", "10", "x86_64"), - ("debian", "10", "aarch64"), + ("debian", "10", "arm64"), ("debian", "11", "x86_64"), - ("debian", "11", "aarch64"), + ("debian", "11", "arm64"), ("debian", "12", "x86_64"), - ("debian", "12", "aarch64"), + ("debian", "12", "arm64"), ("ubuntu", "20.04", "x86_64"), - ("ubuntu", "20.04", "aarch64"), + ("ubuntu", "20.04", "arm64"), ("ubuntu", "22.04", "x86_64"), - ("ubuntu", "22.04", "aarch64"), + ("ubuntu", "22.04", "arm64"), ) %> - pkg-type: deb distro: <{ distro }> diff --git a/.github/workflows/templates/build-macos-repo.yml.jinja b/.github/workflows/templates/build-macos-repo.yml.jinja index c8127d0ac3e..4e62d84e953 100644 --- a/.github/workflows/templates/build-macos-repo.yml.jinja +++ b/.github/workflows/templates/build-macos-repo.yml.jinja @@ -28,7 +28,7 @@ - name: Download macOS Arch64 Packages uses: actions/download-artifact@v3 with: - name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-aarch64-macos + name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-arm64-macos path: artifacts/pkgs/incoming - name: Setup GnuPG diff --git a/.github/workflows/templates/build-onedir-repo.yml.jinja b/.github/workflows/templates/build-onedir-repo.yml.jinja index 8e51caa9c8b..9cbfb81c769 100644 --- a/.github/workflows/templates/build-onedir-repo.yml.jinja +++ b/.github/workflows/templates/build-onedir-repo.yml.jinja @@ -25,10 +25,10 @@ name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-onedir-linux-x86_64.tar.xz path: artifacts/pkgs/incoming - - name: Download Linux aarch64 Onedir Archive + - name: Download Linux arm64 Onedir Archive uses: actions/download-artifact@v3 with: - name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-onedir-linux-aarch64.tar.xz + name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-onedir-linux-arm64.tar.xz path: artifacts/pkgs/incoming - name: Download macOS x86_64 Onedir Archive @@ -40,7 +40,7 @@ - name: Download macOS arm64 Onedir Archive uses: actions/download-artifact@v3 with: - name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-onedir-darwin-aarch64.tar.xz + name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-onedir-darwin-arm64.tar.xz path: artifacts/pkgs/incoming - name: Download Windows amd64 Onedir Archive diff --git a/.github/workflows/templates/build-rpm-repo.yml.jinja b/.github/workflows/templates/build-rpm-repo.yml.jinja index 7e99a968696..4c785c82b1d 100644 --- a/.github/workflows/templates/build-rpm-repo.yml.jinja +++ b/.github/workflows/templates/build-rpm-repo.yml.jinja @@ -66,7 +66,7 @@ - name: Download RPM Packages uses: actions/download-artifact@v3 with: - name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-${{ matrix.arch == 'arm64' && 'aarch64' || matrix.arch }}-rpm + name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-${{ matrix.arch }}-rpm path: artifacts/pkgs/incoming - name: Setup GnuPG diff --git a/.github/workflows/templates/release.yml.jinja b/.github/workflows/templates/release.yml.jinja index cf05beefa80..1bdaead95be 100644 --- a/.github/workflows/templates/release.yml.jinja +++ b/.github/workflows/templates/release.yml.jinja @@ -166,7 +166,7 @@ permissions: - platform: linux arch: x86_64 - platform: linux - arch: aarch64 + arch: arm64 - platform: windows arch: amd64 - platform: windows @@ -174,7 +174,7 @@ permissions: - platform: darwin arch: x86_64 - platform: darwin - arch: aarch64 + arch: arm64 steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/templates/test-package-downloads-action.yml.jinja b/.github/workflows/templates/test-package-downloads-action.yml.jinja index d92b2540e25..4e023dfefd5 100644 --- a/.github/workflows/templates/test-package-downloads-action.yml.jinja +++ b/.github/workflows/templates/test-package-downloads-action.yml.jinja @@ -84,7 +84,7 @@ jobs: - name: Download Onedir Tarball as an Artifact uses: actions/download-artifact@v3 with: - name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-linux-${{ matrix.arch == 'arm64' && 'aarch64' || matrix.arch }}.tar.xz + name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-linux-${{ matrix.arch }}.tar.xz path: artifacts/ - name: Decompress Onedir Tarball @@ -92,7 +92,7 @@ jobs: run: | python3 -c "import os; os.makedirs('artifacts', exist_ok=True)" cd artifacts - tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-linux-${{ matrix.arch == 'arm64' && 'aarch64' || matrix.arch }}.tar.xz + tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-linux-${{ matrix.arch }}.tar.xz - name: Download cached nox.linux.${{ matrix.arch }}.tar.* for session ${{ inputs.nox-session }} uses: actions/cache@v3.3.1 @@ -318,7 +318,7 @@ jobs: - name: Download Onedir Tarball as an Artifact uses: actions/download-artifact@v3 with: - name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-darwin-${{ matrix.arch == 'arm64' && 'aarch64' || matrix.arch }}.tar.xz + name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-darwin-${{ matrix.arch }}.tar.xz path: artifacts/ - name: Install System Dependencies @@ -330,7 +330,7 @@ jobs: run: | python3 -c "import os; os.makedirs('artifacts', exist_ok=True)" cd artifacts - tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-darwin-${{ matrix.arch == 'arm64' && 'aarch64' || matrix.arch }}.tar.xz + tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-darwin-${{ matrix.arch }}.tar.xz - name: Set up Python ${{ inputs.python-version }} uses: actions/setup-python@v4 diff --git a/.github/workflows/test-package-downloads-action.yml b/.github/workflows/test-package-downloads-action.yml index c6661849724..7301e1f0e31 100644 --- a/.github/workflows/test-package-downloads-action.yml +++ b/.github/workflows/test-package-downloads-action.yml @@ -163,7 +163,7 @@ jobs: - name: Download Onedir Tarball as an Artifact uses: actions/download-artifact@v3 with: - name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-linux-${{ matrix.arch == 'arm64' && 'aarch64' || matrix.arch }}.tar.xz + name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-linux-${{ matrix.arch }}.tar.xz path: artifacts/ - name: Decompress Onedir Tarball @@ -171,7 +171,7 @@ jobs: run: | python3 -c "import os; os.makedirs('artifacts', exist_ok=True)" cd artifacts - tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-linux-${{ matrix.arch == 'arm64' && 'aarch64' || matrix.arch }}.tar.xz + tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-linux-${{ matrix.arch }}.tar.xz - name: Download cached nox.linux.${{ matrix.arch }}.tar.* for session ${{ inputs.nox-session }} uses: actions/cache@v3.3.1 @@ -404,7 +404,7 @@ jobs: - name: Download Onedir Tarball as an Artifact uses: actions/download-artifact@v3 with: - name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-darwin-${{ matrix.arch == 'arm64' && 'aarch64' || matrix.arch }}.tar.xz + name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-darwin-${{ matrix.arch }}.tar.xz path: artifacts/ - name: Install System Dependencies @@ -416,7 +416,7 @@ jobs: run: | python3 -c "import os; os.makedirs('artifacts', exist_ok=True)" cd artifacts - tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-darwin-${{ matrix.arch == 'arm64' && 'aarch64' || matrix.arch }}.tar.xz + tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-darwin-${{ matrix.arch }}.tar.xz - name: Set up Python ${{ inputs.python-version }} uses: actions/setup-python@v4 diff --git a/tools/pkg/build.py b/tools/pkg/build.py index 90f34947bd5..59e9467cdb2 100644 --- a/tools/pkg/build.py +++ b/tools/pkg/build.py @@ -447,7 +447,7 @@ def windows( arguments={ "arch": { "help": "The architecture to build the package for", - "choices": ("x86_64", "aarch64", "x86", "amd64"), + "choices": ("x86_64", "arm64", "x86", "amd64"), "required": True, }, "python_version": { @@ -486,8 +486,8 @@ def onedir_dependencies( assert package_name is not None assert platform is not None - if platform in ("macos", "darwin") and arch == "aarch64": - arch = "arm64" + if platform not in ("macos", "darwin") and arch == "arm64": + arch = "aarch64" shared_constants = _get_shared_constants() if not python_version: From 70589fe8c62909e17a68de1cc1d35290662cf41b Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Tue, 2 Jan 2024 15:17:33 +0000 Subject: [PATCH 013/146] Prefer using `macos` instead of `darwin` Signed-off-by: Pedro Algarvio --- .github/workflows/build-deps-ci-action.yml | 4 ++-- .github/workflows/build-deps-onedir.yml | 4 ++-- .github/workflows/build-packages.yml | 4 ++-- .github/workflows/build-salt-onedir.yml | 4 ++-- .github/workflows/ci.yml | 12 ++++++------ .github/workflows/nightly.yml | 16 ++++++++-------- .github/workflows/release.yml | 4 ++-- .github/workflows/scheduled.yml | 12 ++++++------ .github/workflows/staging.yml | 16 ++++++++-------- .../templates/build-deps-ci-action.yml.jinja | 4 ++-- .../templates/build-onedir-repo.yml.jinja | 4 ++-- .github/workflows/templates/release.yml.jinja | 4 ++-- .../test-package-downloads-action.yml.jinja | 4 ++-- .../workflows/templates/test-salt-pkg.yml.jinja | 2 +- .github/workflows/templates/test-salt.yml.jinja | 2 +- .../workflows/test-package-downloads-action.yml | 4 ++-- tools/pkg/build.py | 2 +- 17 files changed, 51 insertions(+), 51 deletions(-) diff --git a/.github/workflows/build-deps-ci-action.yml b/.github/workflows/build-deps-ci-action.yml index 5e6ef722af4..4764bd3c807 100644 --- a/.github/workflows/build-deps-ci-action.yml +++ b/.github/workflows/build-deps-ci-action.yml @@ -190,7 +190,7 @@ jobs: if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' uses: actions/download-artifact@v3 with: - name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-darwin-${{ matrix.arch }}.tar.xz + name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-macos-${{ matrix.arch }}.tar.xz path: artifacts/ - name: Decompress Onedir Tarball @@ -199,7 +199,7 @@ jobs: run: | python3 -c "import os; os.makedirs('artifacts', exist_ok=True)" cd artifacts - tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-darwin-${{ matrix.arch }}.tar.xz + tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-macos-${{ matrix.arch }}.tar.xz - name: Set up Python ${{ inputs.python-version }} if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' diff --git a/.github/workflows/build-deps-onedir.yml b/.github/workflows/build-deps-onedir.yml index 7230ce9d7d0..0ad923060f1 100644 --- a/.github/workflows/build-deps-onedir.yml +++ b/.github/workflows/build-deps-onedir.yml @@ -118,7 +118,7 @@ jobs: id: setup-relenv uses: ./.github/actions/setup-relenv with: - platform: darwin + platform: macos arch: ${{ matrix.arch }} version: ${{ inputs.relenv-version }} cache-seed: ${{ inputs.cache-seed }} @@ -127,7 +127,7 @@ jobs: - name: Install Salt Packaging Dependencies into Relenv Onedir uses: ./.github/actions/build-onedir-deps with: - platform: darwin + platform: macos arch: ${{ matrix.arch }} python-version: "${{ inputs.python-version }}" cache-prefix: ${{ inputs.cache-seed }}|relenv|${{ steps.setup-relenv.outputs.version }} diff --git a/.github/workflows/build-packages.yml b/.github/workflows/build-packages.yml index abe35e1c81f..266c9e064e6 100644 --- a/.github/workflows/build-packages.yml +++ b/.github/workflows/build-packages.yml @@ -102,7 +102,7 @@ jobs: - name: Download Onedir Tarball as an Artifact uses: actions/download-artifact@v3 with: - name: salt-${{ inputs.salt-version }}-onedir-darwin-${{ matrix.arch }}.tar.xz + name: salt-${{ inputs.salt-version }}-onedir-macos-${{ matrix.arch }}.tar.xz path: artifacts/ - name: Prepare Package Signing @@ -135,7 +135,7 @@ jobs: tools pkg build macos --relenv-version=${{ inputs.relenv-version }} --python-version=${{ inputs.python-version }} ${{ inputs.source == 'onedir' && format( - '--onedir salt-{0}-onedir-darwin-{1}.tar.xz --salt-version {0} {2}', + '--onedir salt-{0}-onedir-macos-{1}.tar.xz --salt-version {0} {2}', inputs.salt-version, matrix.arch, steps.check-pkg-sign.outputs.sign-pkgs == 'true' && '--sign' || '' diff --git a/.github/workflows/build-salt-onedir.yml b/.github/workflows/build-salt-onedir.yml index df2f562fa54..9c0e2aa7da6 100644 --- a/.github/workflows/build-salt-onedir.yml +++ b/.github/workflows/build-salt-onedir.yml @@ -118,7 +118,7 @@ jobs: id: setup-relenv uses: ./.github/actions/setup-relenv with: - platform: darwin + platform: macos arch: ${{ matrix.arch }} version: ${{ inputs.relenv-version }} cache-seed: ${{ inputs.cache-seed }} @@ -138,7 +138,7 @@ jobs: - name: Install Salt into Relenv Onedir uses: ./.github/actions/build-onedir-salt with: - platform: darwin + platform: macos arch: ${{ matrix.arch }} salt-version: "${{ inputs.salt-version }}" python-version: "${{ inputs.python-version }}" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 823166cfe1f..fef43c299f6 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1005,7 +1005,7 @@ jobs: with: distro-slug: macos-12 nox-session: ci-test-onedir - platform: darwin + platform: macos arch: x86_64 salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" pkg-type: macos @@ -1027,7 +1027,7 @@ jobs: with: distro-slug: macos-13 nox-session: ci-test-onedir - platform: darwin + platform: macos arch: x86_64 salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" pkg-type: macos @@ -1049,7 +1049,7 @@ jobs: with: distro-slug: macos-13-xlarge nox-session: ci-test-onedir - platform: darwin + platform: macos arch: arm64 salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" pkg-type: macos @@ -1268,7 +1268,7 @@ jobs: with: distro-slug: macos-12 nox-session: ci-test-onedir - platform: darwin + platform: macos arch: x86_64 nox-version: 2022.8.7 gh-actions-python-version: "3.10" @@ -1290,7 +1290,7 @@ jobs: with: distro-slug: macos-13 nox-session: ci-test-onedir - platform: darwin + platform: macos arch: x86_64 nox-version: 2022.8.7 gh-actions-python-version: "3.10" @@ -1312,7 +1312,7 @@ jobs: with: distro-slug: macos-13-xlarge nox-session: ci-test-onedir - platform: darwin + platform: macos arch: arm64 nox-version: 2022.8.7 gh-actions-python-version: "3.10" diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index adaa539fc12..d1511e44270 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -1062,7 +1062,7 @@ jobs: with: distro-slug: macos-12 nox-session: ci-test-onedir - platform: darwin + platform: macos arch: x86_64 salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" pkg-type: macos @@ -1084,7 +1084,7 @@ jobs: with: distro-slug: macos-13 nox-session: ci-test-onedir - platform: darwin + platform: macos arch: x86_64 salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" pkg-type: macos @@ -1106,7 +1106,7 @@ jobs: with: distro-slug: macos-13-xlarge nox-session: ci-test-onedir - platform: darwin + platform: macos arch: arm64 salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" pkg-type: macos @@ -1325,7 +1325,7 @@ jobs: with: distro-slug: macos-12 nox-session: ci-test-onedir - platform: darwin + platform: macos arch: x86_64 nox-version: 2022.8.7 gh-actions-python-version: "3.10" @@ -1347,7 +1347,7 @@ jobs: with: distro-slug: macos-13 nox-session: ci-test-onedir - platform: darwin + platform: macos arch: x86_64 nox-version: 2022.8.7 gh-actions-python-version: "3.10" @@ -1369,7 +1369,7 @@ jobs: with: distro-slug: macos-13-xlarge nox-session: ci-test-onedir - platform: darwin + platform: macos arch: arm64 nox-version: 2022.8.7 gh-actions-python-version: "3.10" @@ -2836,13 +2836,13 @@ jobs: - name: Download macOS x86_64 Onedir Archive uses: actions/download-artifact@v3 with: - name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-onedir-darwin-x86_64.tar.xz + name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-onedir-macos-x86_64.tar.xz path: artifacts/pkgs/incoming - name: Download macOS arm64 Onedir Archive uses: actions/download-artifact@v3 with: - name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-onedir-darwin-arm64.tar.xz + name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-onedir-macos-arm64.tar.xz path: artifacts/pkgs/incoming - name: Download Windows amd64 Onedir Archive diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 94a48304ee1..90f3ca42935 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -137,9 +137,9 @@ jobs: arch: amd64 - platform: windows arch: x86 - - platform: darwin + - platform: macos arch: x86_64 - - platform: darwin + - platform: macos arch: arm64 steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/scheduled.yml b/.github/workflows/scheduled.yml index b9da44c7f0e..fa60f49a74f 100644 --- a/.github/workflows/scheduled.yml +++ b/.github/workflows/scheduled.yml @@ -1039,7 +1039,7 @@ jobs: with: distro-slug: macos-12 nox-session: ci-test-onedir - platform: darwin + platform: macos arch: x86_64 salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" pkg-type: macos @@ -1061,7 +1061,7 @@ jobs: with: distro-slug: macos-13 nox-session: ci-test-onedir - platform: darwin + platform: macos arch: x86_64 salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" pkg-type: macos @@ -1083,7 +1083,7 @@ jobs: with: distro-slug: macos-13-xlarge nox-session: ci-test-onedir - platform: darwin + platform: macos arch: arm64 salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" pkg-type: macos @@ -1302,7 +1302,7 @@ jobs: with: distro-slug: macos-12 nox-session: ci-test-onedir - platform: darwin + platform: macos arch: x86_64 nox-version: 2022.8.7 gh-actions-python-version: "3.10" @@ -1324,7 +1324,7 @@ jobs: with: distro-slug: macos-13 nox-session: ci-test-onedir - platform: darwin + platform: macos arch: x86_64 nox-version: 2022.8.7 gh-actions-python-version: "3.10" @@ -1346,7 +1346,7 @@ jobs: with: distro-slug: macos-13-xlarge nox-session: ci-test-onedir - platform: darwin + platform: macos arch: arm64 nox-version: 2022.8.7 gh-actions-python-version: "3.10" diff --git a/.github/workflows/staging.yml b/.github/workflows/staging.yml index eadb19a9afd..3697eec3395 100644 --- a/.github/workflows/staging.yml +++ b/.github/workflows/staging.yml @@ -1052,7 +1052,7 @@ jobs: with: distro-slug: macos-12 nox-session: ci-test-onedir - platform: darwin + platform: macos arch: x86_64 salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" pkg-type: macos @@ -1074,7 +1074,7 @@ jobs: with: distro-slug: macos-13 nox-session: ci-test-onedir - platform: darwin + platform: macos arch: x86_64 salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" pkg-type: macos @@ -1096,7 +1096,7 @@ jobs: with: distro-slug: macos-13-xlarge nox-session: ci-test-onedir - platform: darwin + platform: macos arch: arm64 salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" pkg-type: macos @@ -1315,7 +1315,7 @@ jobs: with: distro-slug: macos-12 nox-session: ci-test-onedir - platform: darwin + platform: macos arch: x86_64 nox-version: 2022.8.7 gh-actions-python-version: "3.10" @@ -1337,7 +1337,7 @@ jobs: with: distro-slug: macos-13 nox-session: ci-test-onedir - platform: darwin + platform: macos arch: x86_64 nox-version: 2022.8.7 gh-actions-python-version: "3.10" @@ -1359,7 +1359,7 @@ jobs: with: distro-slug: macos-13-xlarge nox-session: ci-test-onedir - platform: darwin + platform: macos arch: arm64 nox-version: 2022.8.7 gh-actions-python-version: "3.10" @@ -2683,13 +2683,13 @@ jobs: - name: Download macOS x86_64 Onedir Archive uses: actions/download-artifact@v3 with: - name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-onedir-darwin-x86_64.tar.xz + name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-onedir-macos-x86_64.tar.xz path: artifacts/pkgs/incoming - name: Download macOS arm64 Onedir Archive uses: actions/download-artifact@v3 with: - name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-onedir-darwin-arm64.tar.xz + name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-onedir-macos-arm64.tar.xz path: artifacts/pkgs/incoming - name: Download Windows amd64 Onedir Archive diff --git a/.github/workflows/templates/build-deps-ci-action.yml.jinja b/.github/workflows/templates/build-deps-ci-action.yml.jinja index 7be48b3dd9b..735a05edd22 100644 --- a/.github/workflows/templates/build-deps-ci-action.yml.jinja +++ b/.github/workflows/templates/build-deps-ci-action.yml.jinja @@ -190,7 +190,7 @@ jobs: if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' uses: actions/download-artifact@v3 with: - name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-darwin-${{ matrix.arch }}.tar.xz + name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-macos-${{ matrix.arch }}.tar.xz path: artifacts/ - name: Decompress Onedir Tarball @@ -199,7 +199,7 @@ jobs: run: | python3 -c "import os; os.makedirs('artifacts', exist_ok=True)" cd artifacts - tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-darwin-${{ matrix.arch }}.tar.xz + tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-macos-${{ matrix.arch }}.tar.xz - name: Set up Python ${{ inputs.python-version }} if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' diff --git a/.github/workflows/templates/build-onedir-repo.yml.jinja b/.github/workflows/templates/build-onedir-repo.yml.jinja index 9cbfb81c769..ac0e64e203a 100644 --- a/.github/workflows/templates/build-onedir-repo.yml.jinja +++ b/.github/workflows/templates/build-onedir-repo.yml.jinja @@ -34,13 +34,13 @@ - name: Download macOS x86_64 Onedir Archive uses: actions/download-artifact@v3 with: - name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-onedir-darwin-x86_64.tar.xz + name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-onedir-macos-x86_64.tar.xz path: artifacts/pkgs/incoming - name: Download macOS arm64 Onedir Archive uses: actions/download-artifact@v3 with: - name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-onedir-darwin-arm64.tar.xz + name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-onedir-macos-arm64.tar.xz path: artifacts/pkgs/incoming - name: Download Windows amd64 Onedir Archive diff --git a/.github/workflows/templates/release.yml.jinja b/.github/workflows/templates/release.yml.jinja index 1bdaead95be..6cbb59a9136 100644 --- a/.github/workflows/templates/release.yml.jinja +++ b/.github/workflows/templates/release.yml.jinja @@ -171,9 +171,9 @@ permissions: arch: amd64 - platform: windows arch: x86 - - platform: darwin + - platform: macos arch: x86_64 - - platform: darwin + - platform: macos arch: arm64 steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/templates/test-package-downloads-action.yml.jinja b/.github/workflows/templates/test-package-downloads-action.yml.jinja index 4e023dfefd5..284364fa1a3 100644 --- a/.github/workflows/templates/test-package-downloads-action.yml.jinja +++ b/.github/workflows/templates/test-package-downloads-action.yml.jinja @@ -318,7 +318,7 @@ jobs: - name: Download Onedir Tarball as an Artifact uses: actions/download-artifact@v3 with: - name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-darwin-${{ matrix.arch }}.tar.xz + name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-macos-${{ matrix.arch }}.tar.xz path: artifacts/ - name: Install System Dependencies @@ -330,7 +330,7 @@ jobs: run: | python3 -c "import os; os.makedirs('artifacts', exist_ok=True)" cd artifacts - tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-darwin-${{ matrix.arch }}.tar.xz + tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-macos-${{ matrix.arch }}.tar.xz - name: Set up Python ${{ inputs.python-version }} uses: actions/setup-python@v4 diff --git a/.github/workflows/templates/test-salt-pkg.yml.jinja b/.github/workflows/templates/test-salt-pkg.yml.jinja index b41f1f37a5a..5beab6824a0 100644 --- a/.github/workflows/templates/test-salt-pkg.yml.jinja +++ b/.github/workflows/templates/test-salt-pkg.yml.jinja @@ -46,7 +46,7 @@ with: distro-slug: <{ slug }> nox-session: ci-test-onedir - platform: darwin + platform: macos arch: <{ arch }> salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" pkg-type: macos diff --git a/.github/workflows/templates/test-salt.yml.jinja b/.github/workflows/templates/test-salt.yml.jinja index 1be2d2995ac..296cf258dd3 100644 --- a/.github/workflows/templates/test-salt.yml.jinja +++ b/.github/workflows/templates/test-salt.yml.jinja @@ -45,7 +45,7 @@ with: distro-slug: <{ slug }> nox-session: ci-test-onedir - platform: darwin + platform: macos arch: <{ arch }> nox-version: <{ nox_version }> gh-actions-python-version: "<{ gh_actions_workflows_python_version }>" diff --git a/.github/workflows/test-package-downloads-action.yml b/.github/workflows/test-package-downloads-action.yml index 7301e1f0e31..b40fa3810f7 100644 --- a/.github/workflows/test-package-downloads-action.yml +++ b/.github/workflows/test-package-downloads-action.yml @@ -404,7 +404,7 @@ jobs: - name: Download Onedir Tarball as an Artifact uses: actions/download-artifact@v3 with: - name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-darwin-${{ matrix.arch }}.tar.xz + name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-macos-${{ matrix.arch }}.tar.xz path: artifacts/ - name: Install System Dependencies @@ -416,7 +416,7 @@ jobs: run: | python3 -c "import os; os.makedirs('artifacts', exist_ok=True)" cd artifacts - tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-darwin-${{ matrix.arch }}.tar.xz + tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-macos-${{ matrix.arch }}.tar.xz - name: Set up Python ${{ inputs.python-version }} uses: actions/setup-python@v4 diff --git a/tools/pkg/build.py b/tools/pkg/build.py index 59e9467cdb2..37210e8fa52 100644 --- a/tools/pkg/build.py +++ b/tools/pkg/build.py @@ -562,7 +562,7 @@ def onedir_dependencies( / "static" / "pkg" / f"py{requirements_version}" - / f"{platform}.txt" + / f"{platform if platform != 'macos' else 'darwin'}.txt" ) _check_pkg_build_files_exist(ctx, requirements_file=requirements_file) From 5d69e7ad58c5984aefa8b81e206adc2fe2b4f841 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Tue, 2 Jan 2024 15:27:51 +0000 Subject: [PATCH 014/146] Use windows self hosted runners to build CI deps Signed-off-by: Pedro Algarvio --- .github/workflows/build-deps-ci-action.yml | 59 ++++--------------- .../templates/build-deps-ci-action.yml.jinja | 59 ++++--------------- 2 files changed, 26 insertions(+), 92 deletions(-) diff --git a/.github/workflows/build-deps-ci-action.yml b/.github/workflows/build-deps-ci-action.yml index 4764bd3c807..467d3e6916a 100644 --- a/.github/workflows/build-deps-ci-action.yml +++ b/.github/workflows/build-deps-ci-action.yml @@ -247,10 +247,7 @@ jobs: windows-dependencies: name: Windows - runs-on: - - self-hosted - - linux - - bastion + runs-on: ${{ matrix.distro-slug }} timeout-minutes: 90 strategy: fail-fast: false @@ -263,7 +260,7 @@ jobs: - name: "Throttle Builds" shell: bash run: | - t=$(shuf -i 1-30 -n 1); echo "Sleeping $t seconds"; sleep "$t" + t=$(python3 -c 'import random, sys; sys.stdout.write(str(random.randint(1, 15)))'); echo "Sleeping $t seconds"; sleep "$t" - name: Checkout Source Code uses: actions/checkout@v4 @@ -292,64 +289,34 @@ jobs: cd artifacts tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-windows-${{ matrix.arch }}.tar.xz - - name: PyPi Proxy + - name: Set up Python ${{ inputs.python-version }} if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' - run: | - sed -i '7s;^;--index-url=https://pypi-proxy.saltstack.net/root/local/+simple/ --extra-index-url=https://pypi.org/simple\n;' requirements/static/ci/*/*.txt - - - name: Setup Python Tools Scripts - if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' - uses: ./.github/actions/setup-python-tools-scripts + uses: actions/setup-python@v4 with: - cache-prefix: ${{ inputs.cache-prefix }}-build-deps-ci + python-version: "${{ inputs.python-version }}" - - name: Get Salt Project GitHub Actions Bot Environment + - name: Install Nox if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' run: | - TOKEN=$(curl -sS -f -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 30") - SPB_ENVIRONMENT=$(curl -sS -f -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/tags/instance/spb:environment) - echo "SPB_ENVIRONMENT=$SPB_ENVIRONMENT" >> "$GITHUB_ENV" - - - name: Start VM - if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' - id: spin-up-vm - run: | - tools --timestamps vm create --environment "${SPB_ENVIRONMENT}" --retries=2 ${{ matrix.distro-slug }} - - - name: List Free Space - if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' - run: | - tools --timestamps vm ssh ${{ matrix.distro-slug }} -- df -h || true - - - name: Upload Checkout To VM - if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' - run: | - tools --timestamps vm rsync ${{ matrix.distro-slug }} + python3 -m pip install 'nox==${{ inputs.nox-version }}' - name: Install Dependencies if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + env: + PRINT_TEST_SELECTION: "0" + PRINT_SYSTEM_INFO: "0" run: | - tools --timestamps vm install-dependencies --nox-session=${{ inputs.nox-session }} ${{ matrix.distro-slug }} + nox --install-only -e ${{ inputs.nox-session }} - name: Cleanup .nox Directory if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' run: | - tools --timestamps vm pre-archive-cleanup ${{ matrix.distro-slug }} + nox --force-color -e "pre-archive-cleanup(pkg=False)" - name: Compress .nox Directory if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' run: | - tools --timestamps vm compress-dependencies ${{ matrix.distro-slug }} - - - name: Download Compressed .nox Directory - if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' - run: | - tools --timestamps vm download-dependencies ${{ matrix.distro-slug }} - - - name: Destroy VM - if: always() && steps.nox-dependencies-cache.outputs.cache-hit != 'true' - run: | - tools --timestamps vm destroy --no-wait ${{ matrix.distro-slug }} + nox --force-color -e compress-dependencies -- windows ${{ matrix.arch }} - name: Upload Nox Requirements Tarball uses: actions/upload-artifact@v3 diff --git a/.github/workflows/templates/build-deps-ci-action.yml.jinja b/.github/workflows/templates/build-deps-ci-action.yml.jinja index 735a05edd22..2a8d73c8c32 100644 --- a/.github/workflows/templates/build-deps-ci-action.yml.jinja +++ b/.github/workflows/templates/build-deps-ci-action.yml.jinja @@ -247,10 +247,7 @@ jobs: windows-dependencies: name: Windows - runs-on: - - self-hosted - - linux - - bastion + runs-on: ${{ matrix.distro-slug }} timeout-minutes: 90 strategy: fail-fast: false @@ -265,7 +262,7 @@ jobs: - name: "Throttle Builds" shell: bash run: | - t=$(shuf -i 1-30 -n 1); echo "Sleeping $t seconds"; sleep "$t" + t=$(python3 -c 'import random, sys; sys.stdout.write(str(random.randint(1, 15)))'); echo "Sleeping $t seconds"; sleep "$t" - name: Checkout Source Code uses: actions/checkout@v4 @@ -294,64 +291,34 @@ jobs: cd artifacts tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-windows-${{ matrix.arch }}.tar.xz - - name: PyPi Proxy + - name: Set up Python ${{ inputs.python-version }} if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' - run: | - sed -i '7s;^;--index-url=https://pypi-proxy.saltstack.net/root/local/+simple/ --extra-index-url=https://pypi.org/simple\n;' requirements/static/ci/*/*.txt - - - name: Setup Python Tools Scripts - if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' - uses: ./.github/actions/setup-python-tools-scripts + uses: actions/setup-python@v4 with: - cache-prefix: ${{ inputs.cache-prefix }}-build-deps-ci + python-version: "${{ inputs.python-version }}" - - name: Get Salt Project GitHub Actions Bot Environment + - name: Install Nox if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' run: | - TOKEN=$(curl -sS -f -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 30") - SPB_ENVIRONMENT=$(curl -sS -f -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/tags/instance/spb:environment) - echo "SPB_ENVIRONMENT=$SPB_ENVIRONMENT" >> "$GITHUB_ENV" - - - name: Start VM - if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' - id: spin-up-vm - run: | - tools --timestamps vm create --environment "${SPB_ENVIRONMENT}" --retries=2 ${{ matrix.distro-slug }} - - - name: List Free Space - if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' - run: | - tools --timestamps vm ssh ${{ matrix.distro-slug }} -- df -h || true - - - name: Upload Checkout To VM - if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' - run: | - tools --timestamps vm rsync ${{ matrix.distro-slug }} + python3 -m pip install 'nox==${{ inputs.nox-version }}' - name: Install Dependencies if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + env: + PRINT_TEST_SELECTION: "0" + PRINT_SYSTEM_INFO: "0" run: | - tools --timestamps vm install-dependencies --nox-session=${{ inputs.nox-session }} ${{ matrix.distro-slug }} + nox --install-only -e ${{ inputs.nox-session }} - name: Cleanup .nox Directory if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' run: | - tools --timestamps vm pre-archive-cleanup ${{ matrix.distro-slug }} + nox --force-color -e "pre-archive-cleanup(pkg=False)" - name: Compress .nox Directory if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' run: | - tools --timestamps vm compress-dependencies ${{ matrix.distro-slug }} - - - name: Download Compressed .nox Directory - if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' - run: | - tools --timestamps vm download-dependencies ${{ matrix.distro-slug }} - - - name: Destroy VM - if: always() && steps.nox-dependencies-cache.outputs.cache-hit != 'true' - run: | - tools --timestamps vm destroy --no-wait ${{ matrix.distro-slug }} + nox --force-color -e compress-dependencies -- windows ${{ matrix.arch }} - name: Upload Nox Requirements Tarball uses: actions/upload-artifact@v3 From 062be920287240fd3fbc5855669d8adbb17d3e08 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Tue, 2 Jan 2024 16:11:00 +0000 Subject: [PATCH 015/146] Re-add the removed Linux OS'es for the package download tests Signed-off-by: Pedro Algarvio --- .../test-package-downloads-action.yml | 72 ++++++++++++++++++- tools/precommit/workflows.py | 31 +++++--- 2 files changed, 92 insertions(+), 11 deletions(-) diff --git a/.github/workflows/test-package-downloads-action.yml b/.github/workflows/test-package-downloads-action.yml index b40fa3810f7..704c021ab3e 100644 --- a/.github/workflows/test-package-downloads-action.yml +++ b/.github/workflows/test-package-downloads-action.yml @@ -68,33 +68,72 @@ jobs: - distro-slug: almalinux-8 arch: x86_64 pkg-type: package + - distro-slug: almalinux-8-arm64 + arch: aarch64 + pkg-type: package + - distro-slug: almalinux-8-arm64 + arch: arm64 + pkg-type: package - distro-slug: almalinux-9 arch: x86_64 pkg-type: package + - distro-slug: almalinux-9-arm64 + arch: aarch64 + pkg-type: package + - distro-slug: almalinux-9-arm64 + arch: arm64 + pkg-type: package - distro-slug: amazonlinux-2 arch: x86_64 pkg-type: package + - distro-slug: amazonlinux-2-arm64 + arch: aarch64 + pkg-type: package - distro-slug: amazonlinux-2-arm64 arch: arm64 pkg-type: package - distro-slug: amazonlinux-2023 arch: x86_64 pkg-type: package + - distro-slug: amazonlinux-2023-arm64 + arch: aarch64 + pkg-type: package - distro-slug: amazonlinux-2023-arm64 arch: arm64 pkg-type: package - distro-slug: centos-7 arch: x86_64 pkg-type: package + - distro-slug: centos-7-arm64 + arch: aarch64 + pkg-type: package + - distro-slug: centos-7-arm64 + arch: arm64 + pkg-type: package - distro-slug: centosstream-8 arch: x86_64 pkg-type: package + - distro-slug: centosstream-8-arm64 + arch: aarch64 + pkg-type: package + - distro-slug: centosstream-8-arm64 + arch: arm64 + pkg-type: package - distro-slug: centosstream-9 arch: x86_64 pkg-type: package + - distro-slug: centosstream-9-arm64 + arch: aarch64 + pkg-type: package + - distro-slug: centosstream-9-arm64 + arch: arm64 + pkg-type: package - distro-slug: debian-10 arch: x86_64 pkg-type: package + - distro-slug: debian-10-arm64 + arch: arm64 + pkg-type: package - distro-slug: debian-11 arch: x86_64 pkg-type: package @@ -110,24 +149,45 @@ jobs: - distro-slug: fedora-37 arch: x86_64 pkg-type: package + - distro-slug: fedora-37-arm64 + arch: aarch64 + pkg-type: package + - distro-slug: fedora-37-arm64 + arch: arm64 + pkg-type: package - distro-slug: fedora-38 arch: x86_64 pkg-type: package + - distro-slug: fedora-38-arm64 + arch: aarch64 + pkg-type: package + - distro-slug: fedora-38-arm64 + arch: arm64 + pkg-type: package - distro-slug: photonos-3 arch: x86_64 pkg-type: package + - distro-slug: photonos-3-arm64 + arch: aarch64 + pkg-type: package - distro-slug: photonos-3-arm64 arch: arm64 pkg-type: package - distro-slug: photonos-4 arch: x86_64 pkg-type: package + - distro-slug: photonos-4-arm64 + arch: aarch64 + pkg-type: package - distro-slug: photonos-4-arm64 arch: arm64 pkg-type: package - distro-slug: photonos-5 arch: x86_64 pkg-type: package + - distro-slug: photonos-5-arm64 + arch: aarch64 + pkg-type: package - distro-slug: photonos-5-arm64 arch: arm64 pkg-type: package @@ -140,15 +200,21 @@ jobs: - distro-slug: ubuntu-22.04 arch: x86_64 pkg-type: package - - distro-slug: ubuntu-22.04-arm64 - arch: arm64 - pkg-type: package - distro-slug: ubuntu-22.04 arch: x86_64 pkg-type: onedir + - distro-slug: ubuntu-22.04-arm64 + arch: arm64 + pkg-type: package - distro-slug: ubuntu-22.04-arm64 arch: arm64 pkg-type: onedir + - distro-slug: ubuntu-23.04 + arch: x86_64 + pkg-type: package + - distro-slug: ubuntu-23.04-arm64 + arch: arm64 + pkg-type: package steps: diff --git a/tools/precommit/workflows.py b/tools/precommit/workflows.py index 88920f48c68..f75c40df120 100644 --- a/tools/precommit/workflows.py +++ b/tools/precommit/workflows.py @@ -4,6 +4,7 @@ These commands are used for our GitHub Actions workflows. # pylint: disable=resource-leakage,broad-except,3rd-party-module-not-gated from __future__ import annotations +import json import logging import shutil from typing import TYPE_CHECKING, cast @@ -18,6 +19,8 @@ log = logging.getLogger(__name__) WORKFLOWS = tools.utils.REPO_ROOT / ".github" / "workflows" TEMPLATES = WORKFLOWS / "templates" +with tools.utils.REPO_ROOT.joinpath("cicd", "golden-images.json").open() as rfh: + AMIS = json.load(rfh) # Define the command group @@ -208,22 +211,34 @@ def generate_workflows(ctx: Context): "macos": [], "windows": [], } - rpm_slugs = [ + rpm_slugs = ( "almalinux", "amazonlinux", "centos", "centosstream", "fedora", "photon", - ] - for slug, display_name, arch, fips in test_salt_listing["linux"]: - if slug in ("archlinux-lts", "opensuse-15"): + ) + linux_skip_pkg_download_tests = ( + "archlinux-lts", + "opensuse-15", + "windows", + ) + for slug in sorted(AMIS): + if slug.startswith(linux_skip_pkg_download_tests): continue + if "arm64" in slug: + arch = "arm64" + else: + arch = "x86_64" + if slug.startswith(rpm_slugs) and arch == "arm64": + # While we maintain backwards compatible urls + test_salt_pkg_downloads_listing["linux"].append( + (slug, "aarch64", "package") + ) test_salt_pkg_downloads_listing["linux"].append((slug, arch, "package")) - for slug, display_name, arch, fips in test_salt_listing["linux"][-2:]: - if slug in ("archlinux-lts", "opensuse-15"): - continue - test_salt_pkg_downloads_listing["linux"].append((slug, arch, "onedir")) + if slug.startswith("ubuntu-22"): + test_salt_pkg_downloads_listing["linux"].append((slug, arch, "onedir")) for slug, display_name, arch in test_salt_listing["macos"]: test_salt_pkg_downloads_listing["macos"].append((slug, arch, "package")) for slug, display_name, arch in test_salt_listing["macos"][-1:]: From 4371d34ee09971b681537736e6eb5129028ad177 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Wed, 3 Jan 2024 17:27:49 +0000 Subject: [PATCH 016/146] Now the hashes will match, no more windows line breaks to mess it up Signed-off-by: Pedro Algarvio --- .github/workflows/build-deps-ci-action.yml | 16 ++-- .github/workflows/ci.yml | 73 ++++++++++++++++++ .github/workflows/nightly.yml | 73 ++++++++++++++++++ .github/workflows/release.yml | 8 ++ .github/workflows/scheduled.yml | 73 ++++++++++++++++++ .github/workflows/staging.yml | 74 +++++++++++++++++++ .../templates/build-ci-deps.yml.jinja | 1 + .../templates/build-deps-ci-action.yml.jinja | 16 ++-- .github/workflows/templates/layout.yml.jinja | 6 ++ .github/workflows/templates/release.yml.jinja | 6 ++ .../test-package-downloads-action.yml.jinja | 16 ++-- .../test-salt-pkg-repo-downloads.yml.jinja | 1 + .../templates/test-salt-pkg.yml.jinja | 3 + .../workflows/templates/test-salt.yml.jinja | 3 + .github/workflows/test-action-linux.yml | 8 +- .github/workflows/test-action-macos.yml | 8 +- .github/workflows/test-action-windows.yml | 8 +- .../test-package-downloads-action.yml | 16 ++-- .../workflows/test-packages-action-linux.yml | 8 +- .../workflows/test-packages-action-macos.yml | 8 +- .../test-packages-action-windows.yml | 8 +- 21 files changed, 379 insertions(+), 54 deletions(-) diff --git a/.github/workflows/build-deps-ci-action.yml b/.github/workflows/build-deps-ci-action.yml index 467d3e6916a..3bb08e11b34 100644 --- a/.github/workflows/build-deps-ci-action.yml +++ b/.github/workflows/build-deps-ci-action.yml @@ -20,6 +20,10 @@ on: required: true type: string description: The nox version to install + nox-archive-hash: + required: true + type: string + description: Nox Tarball Cache Hash python-version: required: false type: string @@ -71,9 +75,7 @@ jobs: uses: actions/cache@v3.3.1 with: path: nox.linux.${{ matrix.arch }}.tar.* - key: ${{ inputs.cache-prefix }}|testrun-deps|${{ matrix.arch }}|linux|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ - hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py') - }} + key: ${{ inputs.cache-prefix }}|testrun-deps|${{ matrix.arch }}|linux|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ inputs.nox-archive-hash }} - name: Download Onedir Tarball as an Artifact if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' @@ -182,9 +184,7 @@ jobs: uses: actions/cache@v3.3.1 with: path: nox.macos.${{ matrix.arch }}.tar.* - key: ${{ inputs.cache-prefix }}|testrun-deps|${{ matrix.arch }}|macos|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ - hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py') - }} + key: ${{ inputs.cache-prefix }}|testrun-deps|${{ matrix.arch }}|macos|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ inputs.nox-archive-hash }} - name: Download Onedir Tarball as an Artifact if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' @@ -270,9 +270,7 @@ jobs: uses: actions/cache@v3.3.1 with: path: nox.windows.${{ matrix.arch }}.tar.* - key: ${{ inputs.cache-prefix }}|testrun-deps|${{ matrix.arch }}|windows|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ - hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py') - }} + key: ${{ inputs.cache-prefix }}|testrun-deps|${{ matrix.arch }}|windows|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ inputs.nox-archive-hash }} - name: Download Onedir Tarball as an Artifact if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fef43c299f6..446e868bebd 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -48,6 +48,7 @@ jobs: latest-release: ${{ steps.get-salt-releases.outputs.latest-release }} releases: ${{ steps.get-salt-releases.outputs.releases }} testing-releases: ${{ steps.get-testing-releases.outputs.testing-releases }} + nox-archive-hash: ${{ steps.nox-archive-hash.outputs.nox-archive-hash }} steps: - uses: actions/checkout@v4 with: @@ -164,6 +165,11 @@ jobs: run: | tools ci get-pr-test-labels --repository ${{ github.repository }} + - name: Get Hash For Nox Tarball Cache + id: nox-archive-hash + run: | + echo "nox-archive-hash=${{ hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py') }}" | tee -a "$GITHUB_OUTPUT" + - name: Write Changed Files To A Local File run: echo '${{ toJSON(steps.changed-files.outputs) }}' > changed-files.json @@ -483,6 +489,7 @@ jobs: python-version: "3.10" salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" amazonlinux-2-pkg-tests: name: Amazon Linux 2 Package Test @@ -505,6 +512,7 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" amazonlinux-2-arm64-pkg-tests: name: Amazon Linux 2 Arm64 Package Test @@ -527,6 +535,7 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" amazonlinux-2023-pkg-tests: name: Amazon Linux 2023 Package Test @@ -549,6 +558,7 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" amazonlinux-2023-arm64-pkg-tests: name: Amazon Linux 2023 Arm64 Package Test @@ -571,6 +581,7 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" centos-7-pkg-tests: name: CentOS 7 Package Test @@ -593,6 +604,7 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" centosstream-8-pkg-tests: name: CentOS Stream 8 Package Test @@ -615,6 +627,7 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" centosstream-9-pkg-tests: name: CentOS Stream 9 Package Test @@ -637,6 +650,7 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" centosstream-9-arm64-pkg-tests: name: CentOS Stream 9 Arm64 Package Test @@ -659,6 +673,7 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-10-pkg-tests: name: Debian 10 Package Test @@ -681,6 +696,7 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-11-pkg-tests: name: Debian 11 Package Test @@ -703,6 +719,7 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-11-arm64-pkg-tests: name: Debian 11 Arm64 Package Test @@ -725,6 +742,7 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-12-pkg-tests: name: Debian 12 Package Test @@ -747,6 +765,7 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-12-arm64-pkg-tests: name: Debian 12 Arm64 Package Test @@ -769,6 +788,7 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" photonos-3-pkg-tests: name: Photon OS 3 Package Test @@ -791,6 +811,7 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" photonos-3-arm64-pkg-tests: name: Photon OS 3 Arm64 Package Test @@ -813,6 +834,7 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" photonos-4-pkg-tests: name: Photon OS 4 Package Test @@ -835,6 +857,7 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true photonos-4-arm64-pkg-tests: @@ -858,6 +881,7 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true photonos-5-pkg-tests: @@ -881,6 +905,7 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true photonos-5-arm64-pkg-tests: @@ -904,6 +929,7 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true ubuntu-2004-pkg-tests: @@ -927,6 +953,7 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" ubuntu-2004-arm64-pkg-tests: name: Ubuntu 20.04 Arm64 Package Test @@ -949,6 +976,7 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" ubuntu-2204-pkg-tests: name: Ubuntu 22.04 Package Test @@ -971,6 +999,7 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" ubuntu-2204-arm64-pkg-tests: name: Ubuntu 22.04 Arm64 Package Test @@ -993,6 +1022,7 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" macos-12-pkg-tests: name: macOS 12 Package Test @@ -1015,6 +1045,7 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" macos-13-pkg-tests: name: macOS 13 Package Test @@ -1037,6 +1068,7 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" macos-13-xlarge-pkg-tests: name: macOS 13 Arm64 Package Test @@ -1059,6 +1091,7 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2016-nsis-pkg-tests: name: Windows 2016 NSIS Package Test @@ -1081,6 +1114,7 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2016-msi-pkg-tests: name: Windows 2016 MSI Package Test @@ -1103,6 +1137,7 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2019-nsis-pkg-tests: name: Windows 2019 NSIS Package Test @@ -1125,6 +1160,7 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2019-msi-pkg-tests: name: Windows 2019 MSI Package Test @@ -1147,6 +1183,7 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2022-nsis-pkg-tests: name: Windows 2022 NSIS Package Test @@ -1169,6 +1206,7 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2022-msi-pkg-tests: name: Windows 2022 MSI Package Test @@ -1191,6 +1229,7 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2016: name: Windows 2016 Test @@ -1213,6 +1252,7 @@ jobs: skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2019: name: Windows 2019 Test @@ -1235,6 +1275,7 @@ jobs: skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2022: name: Windows 2022 Test @@ -1257,6 +1298,7 @@ jobs: skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" macos-12: name: macOS 12 Test @@ -1279,6 +1321,7 @@ jobs: skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" macos-13: name: macOS 13 Test @@ -1301,6 +1344,7 @@ jobs: skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" macos-13-xlarge: name: macOS 13 Arm64 Test @@ -1323,6 +1367,7 @@ jobs: skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" almalinux-8: name: Alma Linux 8 Test @@ -1345,6 +1390,7 @@ jobs: skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" almalinux-9: name: Alma Linux 9 Test @@ -1367,6 +1413,7 @@ jobs: skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" amazonlinux-2: name: Amazon Linux 2 Test @@ -1389,6 +1436,7 @@ jobs: skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" amazonlinux-2-arm64: name: Amazon Linux 2 Arm64 Test @@ -1411,6 +1459,7 @@ jobs: skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" amazonlinux-2023: name: Amazon Linux 2023 Test @@ -1433,6 +1482,7 @@ jobs: skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" amazonlinux-2023-arm64: name: Amazon Linux 2023 Arm64 Test @@ -1455,6 +1505,7 @@ jobs: skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" archlinux-lts: name: Arch Linux LTS Test @@ -1477,6 +1528,7 @@ jobs: skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" centos-7: name: CentOS 7 Test @@ -1499,6 +1551,7 @@ jobs: skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" centosstream-8: name: CentOS Stream 8 Test @@ -1521,6 +1574,7 @@ jobs: skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" centosstream-9: name: CentOS Stream 9 Test @@ -1543,6 +1597,7 @@ jobs: skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-10: name: Debian 10 Test @@ -1565,6 +1620,7 @@ jobs: skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-11: name: Debian 11 Test @@ -1587,6 +1643,7 @@ jobs: skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-11-arm64: name: Debian 11 Arm64 Test @@ -1609,6 +1666,7 @@ jobs: skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-12: name: Debian 12 Test @@ -1631,6 +1689,7 @@ jobs: skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-12-arm64: name: Debian 12 Arm64 Test @@ -1653,6 +1712,7 @@ jobs: skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fedora-37: name: Fedora 37 Test @@ -1675,6 +1735,7 @@ jobs: skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fedora-38: name: Fedora 38 Test @@ -1697,6 +1758,7 @@ jobs: skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" opensuse-15: name: Opensuse 15 Test @@ -1719,6 +1781,7 @@ jobs: skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" photonos-3: name: Photon OS 3 Test @@ -1741,6 +1804,7 @@ jobs: skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" photonos-3-arm64: name: Photon OS 3 Arm64 Test @@ -1763,6 +1827,7 @@ jobs: skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" photonos-4: name: Photon OS 4 Test @@ -1785,6 +1850,7 @@ jobs: skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true photonos-4-arm64: @@ -1808,6 +1874,7 @@ jobs: skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true photonos-5: @@ -1831,6 +1898,7 @@ jobs: skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true photonos-5-arm64: @@ -1854,6 +1922,7 @@ jobs: skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true ubuntu-2004: @@ -1877,6 +1946,7 @@ jobs: skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" ubuntu-2004-arm64: name: Ubuntu 20.04 Arm64 Test @@ -1899,6 +1969,7 @@ jobs: skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" ubuntu-2204: name: Ubuntu 22.04 Test @@ -1921,6 +1992,7 @@ jobs: skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" ubuntu-2204-arm64: name: Ubuntu 22.04 Arm64 Test @@ -1943,6 +2015,7 @@ jobs: skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" combine-all-code-coverage: name: Combine Code Coverage diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index d1511e44270..55cda4e7425 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -92,6 +92,7 @@ jobs: latest-release: ${{ steps.get-salt-releases.outputs.latest-release }} releases: ${{ steps.get-salt-releases.outputs.releases }} testing-releases: ${{ steps.get-testing-releases.outputs.testing-releases }} + nox-archive-hash: ${{ steps.nox-archive-hash.outputs.nox-archive-hash }} steps: - uses: actions/checkout@v4 with: @@ -208,6 +209,11 @@ jobs: run: | tools ci get-pr-test-labels --repository ${{ github.repository }} + - name: Get Hash For Nox Tarball Cache + id: nox-archive-hash + run: | + echo "nox-archive-hash=${{ hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py') }}" | tee -a "$GITHUB_OUTPUT" + - name: Write Changed Files To A Local File run: echo '${{ toJSON(steps.changed-files.outputs) }}' > changed-files.json @@ -540,6 +546,7 @@ jobs: python-version: "3.10" salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" amazonlinux-2-pkg-tests: name: Amazon Linux 2 Package Test @@ -562,6 +569,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" amazonlinux-2-arm64-pkg-tests: name: Amazon Linux 2 Arm64 Package Test @@ -584,6 +592,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" amazonlinux-2023-pkg-tests: name: Amazon Linux 2023 Package Test @@ -606,6 +615,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" amazonlinux-2023-arm64-pkg-tests: name: Amazon Linux 2023 Arm64 Package Test @@ -628,6 +638,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" centos-7-pkg-tests: name: CentOS 7 Package Test @@ -650,6 +661,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" centosstream-8-pkg-tests: name: CentOS Stream 8 Package Test @@ -672,6 +684,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" centosstream-9-pkg-tests: name: CentOS Stream 9 Package Test @@ -694,6 +707,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" centosstream-9-arm64-pkg-tests: name: CentOS Stream 9 Arm64 Package Test @@ -716,6 +730,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-10-pkg-tests: name: Debian 10 Package Test @@ -738,6 +753,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-11-pkg-tests: name: Debian 11 Package Test @@ -760,6 +776,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-11-arm64-pkg-tests: name: Debian 11 Arm64 Package Test @@ -782,6 +799,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-12-pkg-tests: name: Debian 12 Package Test @@ -804,6 +822,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-12-arm64-pkg-tests: name: Debian 12 Arm64 Package Test @@ -826,6 +845,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" photonos-3-pkg-tests: name: Photon OS 3 Package Test @@ -848,6 +868,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" photonos-3-arm64-pkg-tests: name: Photon OS 3 Arm64 Package Test @@ -870,6 +891,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" photonos-4-pkg-tests: name: Photon OS 4 Package Test @@ -892,6 +914,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true photonos-4-arm64-pkg-tests: @@ -915,6 +938,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true photonos-5-pkg-tests: @@ -938,6 +962,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true photonos-5-arm64-pkg-tests: @@ -961,6 +986,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true ubuntu-2004-pkg-tests: @@ -984,6 +1010,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" ubuntu-2004-arm64-pkg-tests: name: Ubuntu 20.04 Arm64 Package Test @@ -1006,6 +1033,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" ubuntu-2204-pkg-tests: name: Ubuntu 22.04 Package Test @@ -1028,6 +1056,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" ubuntu-2204-arm64-pkg-tests: name: Ubuntu 22.04 Arm64 Package Test @@ -1050,6 +1079,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" macos-12-pkg-tests: name: macOS 12 Package Test @@ -1072,6 +1102,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" macos-13-pkg-tests: name: macOS 13 Package Test @@ -1094,6 +1125,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" macos-13-xlarge-pkg-tests: name: macOS 13 Arm64 Package Test @@ -1116,6 +1148,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2016-nsis-pkg-tests: name: Windows 2016 NSIS Package Test @@ -1138,6 +1171,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2016-msi-pkg-tests: name: Windows 2016 MSI Package Test @@ -1160,6 +1194,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2019-nsis-pkg-tests: name: Windows 2019 NSIS Package Test @@ -1182,6 +1217,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2019-msi-pkg-tests: name: Windows 2019 MSI Package Test @@ -1204,6 +1240,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2022-nsis-pkg-tests: name: Windows 2022 NSIS Package Test @@ -1226,6 +1263,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2022-msi-pkg-tests: name: Windows 2022 MSI Package Test @@ -1248,6 +1286,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2016: name: Windows 2016 Test @@ -1270,6 +1309,7 @@ jobs: skip-junit-reports: false workflow-slug: nightly default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2019: name: Windows 2019 Test @@ -1292,6 +1332,7 @@ jobs: skip-junit-reports: false workflow-slug: nightly default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2022: name: Windows 2022 Test @@ -1314,6 +1355,7 @@ jobs: skip-junit-reports: false workflow-slug: nightly default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" macos-12: name: macOS 12 Test @@ -1336,6 +1378,7 @@ jobs: skip-junit-reports: false workflow-slug: nightly default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" macos-13: name: macOS 13 Test @@ -1358,6 +1401,7 @@ jobs: skip-junit-reports: false workflow-slug: nightly default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" macos-13-xlarge: name: macOS 13 Arm64 Test @@ -1380,6 +1424,7 @@ jobs: skip-junit-reports: false workflow-slug: nightly default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" almalinux-8: name: Alma Linux 8 Test @@ -1402,6 +1447,7 @@ jobs: skip-junit-reports: false workflow-slug: nightly default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" almalinux-9: name: Alma Linux 9 Test @@ -1424,6 +1470,7 @@ jobs: skip-junit-reports: false workflow-slug: nightly default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" amazonlinux-2: name: Amazon Linux 2 Test @@ -1446,6 +1493,7 @@ jobs: skip-junit-reports: false workflow-slug: nightly default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" amazonlinux-2-arm64: name: Amazon Linux 2 Arm64 Test @@ -1468,6 +1516,7 @@ jobs: skip-junit-reports: false workflow-slug: nightly default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" amazonlinux-2023: name: Amazon Linux 2023 Test @@ -1490,6 +1539,7 @@ jobs: skip-junit-reports: false workflow-slug: nightly default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" amazonlinux-2023-arm64: name: Amazon Linux 2023 Arm64 Test @@ -1512,6 +1562,7 @@ jobs: skip-junit-reports: false workflow-slug: nightly default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" archlinux-lts: name: Arch Linux LTS Test @@ -1534,6 +1585,7 @@ jobs: skip-junit-reports: false workflow-slug: nightly default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" centos-7: name: CentOS 7 Test @@ -1556,6 +1608,7 @@ jobs: skip-junit-reports: false workflow-slug: nightly default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" centosstream-8: name: CentOS Stream 8 Test @@ -1578,6 +1631,7 @@ jobs: skip-junit-reports: false workflow-slug: nightly default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" centosstream-9: name: CentOS Stream 9 Test @@ -1600,6 +1654,7 @@ jobs: skip-junit-reports: false workflow-slug: nightly default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-10: name: Debian 10 Test @@ -1622,6 +1677,7 @@ jobs: skip-junit-reports: false workflow-slug: nightly default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-11: name: Debian 11 Test @@ -1644,6 +1700,7 @@ jobs: skip-junit-reports: false workflow-slug: nightly default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-11-arm64: name: Debian 11 Arm64 Test @@ -1666,6 +1723,7 @@ jobs: skip-junit-reports: false workflow-slug: nightly default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-12: name: Debian 12 Test @@ -1688,6 +1746,7 @@ jobs: skip-junit-reports: false workflow-slug: nightly default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-12-arm64: name: Debian 12 Arm64 Test @@ -1710,6 +1769,7 @@ jobs: skip-junit-reports: false workflow-slug: nightly default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fedora-37: name: Fedora 37 Test @@ -1732,6 +1792,7 @@ jobs: skip-junit-reports: false workflow-slug: nightly default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fedora-38: name: Fedora 38 Test @@ -1754,6 +1815,7 @@ jobs: skip-junit-reports: false workflow-slug: nightly default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" opensuse-15: name: Opensuse 15 Test @@ -1776,6 +1838,7 @@ jobs: skip-junit-reports: false workflow-slug: nightly default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" photonos-3: name: Photon OS 3 Test @@ -1798,6 +1861,7 @@ jobs: skip-junit-reports: false workflow-slug: nightly default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" photonos-3-arm64: name: Photon OS 3 Arm64 Test @@ -1820,6 +1884,7 @@ jobs: skip-junit-reports: false workflow-slug: nightly default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" photonos-4: name: Photon OS 4 Test @@ -1842,6 +1907,7 @@ jobs: skip-junit-reports: false workflow-slug: nightly default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true photonos-4-arm64: @@ -1865,6 +1931,7 @@ jobs: skip-junit-reports: false workflow-slug: nightly default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true photonos-5: @@ -1888,6 +1955,7 @@ jobs: skip-junit-reports: false workflow-slug: nightly default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true photonos-5-arm64: @@ -1911,6 +1979,7 @@ jobs: skip-junit-reports: false workflow-slug: nightly default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true ubuntu-2004: @@ -1934,6 +2003,7 @@ jobs: skip-junit-reports: false workflow-slug: nightly default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" ubuntu-2004-arm64: name: Ubuntu 20.04 Arm64 Test @@ -1956,6 +2026,7 @@ jobs: skip-junit-reports: false workflow-slug: nightly default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" ubuntu-2204: name: Ubuntu 22.04 Test @@ -1978,6 +2049,7 @@ jobs: skip-junit-reports: false workflow-slug: nightly default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" ubuntu-2204-arm64: name: Ubuntu 22.04 Arm64 Test @@ -2000,6 +2072,7 @@ jobs: skip-junit-reports: false workflow-slug: nightly default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" combine-all-code-coverage: name: Combine Code Coverage diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 90f3ca42935..87ecb2cd3f0 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -58,6 +58,7 @@ jobs: cache-seed: ${{ steps.set-cache-seed.outputs.cache-seed }} latest-release: ${{ steps.get-salt-releases.outputs.latest-release }} releases: ${{ steps.get-salt-releases.outputs.releases }} + nox-archive-hash: ${{ steps.nox-archive-hash.outputs.nox-archive-hash }} steps: - uses: actions/checkout@v4 with: @@ -116,6 +117,11 @@ jobs: run: | tools ci define-cache-seed ${{ env.CACHE_SEED }} + - name: Get Hash For Nox Tarball Cache + id: nox-archive-hash + run: | + echo "nox-archive-hash=${{ hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py') }}" | tee -a "$GITHUB_OUTPUT" + download-onedir-artifact: name: Download Staging Onedir Artifact runs-on: @@ -178,6 +184,7 @@ jobs: python-version: "3.10" salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" backup: name: Backup @@ -262,6 +269,7 @@ jobs: python-version: "3.10" skip-code-coverage: true latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" secrets: inherit release: diff --git a/.github/workflows/scheduled.yml b/.github/workflows/scheduled.yml index fa60f49a74f..00e1c1bbc90 100644 --- a/.github/workflows/scheduled.yml +++ b/.github/workflows/scheduled.yml @@ -82,6 +82,7 @@ jobs: latest-release: ${{ steps.get-salt-releases.outputs.latest-release }} releases: ${{ steps.get-salt-releases.outputs.releases }} testing-releases: ${{ steps.get-testing-releases.outputs.testing-releases }} + nox-archive-hash: ${{ steps.nox-archive-hash.outputs.nox-archive-hash }} steps: - uses: actions/checkout@v4 with: @@ -198,6 +199,11 @@ jobs: run: | tools ci get-pr-test-labels --repository ${{ github.repository }} + - name: Get Hash For Nox Tarball Cache + id: nox-archive-hash + run: | + echo "nox-archive-hash=${{ hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py') }}" | tee -a "$GITHUB_OUTPUT" + - name: Write Changed Files To A Local File run: echo '${{ toJSON(steps.changed-files.outputs) }}' > changed-files.json @@ -517,6 +523,7 @@ jobs: python-version: "3.10" salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" amazonlinux-2-pkg-tests: name: Amazon Linux 2 Package Test @@ -539,6 +546,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" amazonlinux-2-arm64-pkg-tests: name: Amazon Linux 2 Arm64 Package Test @@ -561,6 +569,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" amazonlinux-2023-pkg-tests: name: Amazon Linux 2023 Package Test @@ -583,6 +592,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" amazonlinux-2023-arm64-pkg-tests: name: Amazon Linux 2023 Arm64 Package Test @@ -605,6 +615,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" centos-7-pkg-tests: name: CentOS 7 Package Test @@ -627,6 +638,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" centosstream-8-pkg-tests: name: CentOS Stream 8 Package Test @@ -649,6 +661,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" centosstream-9-pkg-tests: name: CentOS Stream 9 Package Test @@ -671,6 +684,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" centosstream-9-arm64-pkg-tests: name: CentOS Stream 9 Arm64 Package Test @@ -693,6 +707,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-10-pkg-tests: name: Debian 10 Package Test @@ -715,6 +730,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-11-pkg-tests: name: Debian 11 Package Test @@ -737,6 +753,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-11-arm64-pkg-tests: name: Debian 11 Arm64 Package Test @@ -759,6 +776,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-12-pkg-tests: name: Debian 12 Package Test @@ -781,6 +799,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-12-arm64-pkg-tests: name: Debian 12 Arm64 Package Test @@ -803,6 +822,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" photonos-3-pkg-tests: name: Photon OS 3 Package Test @@ -825,6 +845,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" photonos-3-arm64-pkg-tests: name: Photon OS 3 Arm64 Package Test @@ -847,6 +868,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" photonos-4-pkg-tests: name: Photon OS 4 Package Test @@ -869,6 +891,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true photonos-4-arm64-pkg-tests: @@ -892,6 +915,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true photonos-5-pkg-tests: @@ -915,6 +939,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true photonos-5-arm64-pkg-tests: @@ -938,6 +963,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true ubuntu-2004-pkg-tests: @@ -961,6 +987,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" ubuntu-2004-arm64-pkg-tests: name: Ubuntu 20.04 Arm64 Package Test @@ -983,6 +1010,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" ubuntu-2204-pkg-tests: name: Ubuntu 22.04 Package Test @@ -1005,6 +1033,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" ubuntu-2204-arm64-pkg-tests: name: Ubuntu 22.04 Arm64 Package Test @@ -1027,6 +1056,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" macos-12-pkg-tests: name: macOS 12 Package Test @@ -1049,6 +1079,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" macos-13-pkg-tests: name: macOS 13 Package Test @@ -1071,6 +1102,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" macos-13-xlarge-pkg-tests: name: macOS 13 Arm64 Package Test @@ -1093,6 +1125,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2016-nsis-pkg-tests: name: Windows 2016 NSIS Package Test @@ -1115,6 +1148,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2016-msi-pkg-tests: name: Windows 2016 MSI Package Test @@ -1137,6 +1171,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2019-nsis-pkg-tests: name: Windows 2019 NSIS Package Test @@ -1159,6 +1194,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2019-msi-pkg-tests: name: Windows 2019 MSI Package Test @@ -1181,6 +1217,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2022-nsis-pkg-tests: name: Windows 2022 NSIS Package Test @@ -1203,6 +1240,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2022-msi-pkg-tests: name: Windows 2022 MSI Package Test @@ -1225,6 +1263,7 @@ jobs: skip-code-coverage: false skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2016: name: Windows 2016 Test @@ -1247,6 +1286,7 @@ jobs: skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2019: name: Windows 2019 Test @@ -1269,6 +1309,7 @@ jobs: skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2022: name: Windows 2022 Test @@ -1291,6 +1332,7 @@ jobs: skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" macos-12: name: macOS 12 Test @@ -1313,6 +1355,7 @@ jobs: skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" macos-13: name: macOS 13 Test @@ -1335,6 +1378,7 @@ jobs: skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" macos-13-xlarge: name: macOS 13 Arm64 Test @@ -1357,6 +1401,7 @@ jobs: skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" almalinux-8: name: Alma Linux 8 Test @@ -1379,6 +1424,7 @@ jobs: skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" almalinux-9: name: Alma Linux 9 Test @@ -1401,6 +1447,7 @@ jobs: skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" amazonlinux-2: name: Amazon Linux 2 Test @@ -1423,6 +1470,7 @@ jobs: skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" amazonlinux-2-arm64: name: Amazon Linux 2 Arm64 Test @@ -1445,6 +1493,7 @@ jobs: skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" amazonlinux-2023: name: Amazon Linux 2023 Test @@ -1467,6 +1516,7 @@ jobs: skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" amazonlinux-2023-arm64: name: Amazon Linux 2023 Arm64 Test @@ -1489,6 +1539,7 @@ jobs: skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" archlinux-lts: name: Arch Linux LTS Test @@ -1511,6 +1562,7 @@ jobs: skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" centos-7: name: CentOS 7 Test @@ -1533,6 +1585,7 @@ jobs: skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" centosstream-8: name: CentOS Stream 8 Test @@ -1555,6 +1608,7 @@ jobs: skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" centosstream-9: name: CentOS Stream 9 Test @@ -1577,6 +1631,7 @@ jobs: skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-10: name: Debian 10 Test @@ -1599,6 +1654,7 @@ jobs: skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-11: name: Debian 11 Test @@ -1621,6 +1677,7 @@ jobs: skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-11-arm64: name: Debian 11 Arm64 Test @@ -1643,6 +1700,7 @@ jobs: skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-12: name: Debian 12 Test @@ -1665,6 +1723,7 @@ jobs: skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-12-arm64: name: Debian 12 Arm64 Test @@ -1687,6 +1746,7 @@ jobs: skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fedora-37: name: Fedora 37 Test @@ -1709,6 +1769,7 @@ jobs: skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fedora-38: name: Fedora 38 Test @@ -1731,6 +1792,7 @@ jobs: skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" opensuse-15: name: Opensuse 15 Test @@ -1753,6 +1815,7 @@ jobs: skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" photonos-3: name: Photon OS 3 Test @@ -1775,6 +1838,7 @@ jobs: skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" photonos-3-arm64: name: Photon OS 3 Arm64 Test @@ -1797,6 +1861,7 @@ jobs: skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" photonos-4: name: Photon OS 4 Test @@ -1819,6 +1884,7 @@ jobs: skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true photonos-4-arm64: @@ -1842,6 +1908,7 @@ jobs: skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true photonos-5: @@ -1865,6 +1932,7 @@ jobs: skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true photonos-5-arm64: @@ -1888,6 +1956,7 @@ jobs: skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true ubuntu-2004: @@ -1911,6 +1980,7 @@ jobs: skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" ubuntu-2004-arm64: name: Ubuntu 20.04 Arm64 Test @@ -1933,6 +2003,7 @@ jobs: skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" ubuntu-2204: name: Ubuntu 22.04 Test @@ -1955,6 +2026,7 @@ jobs: skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" ubuntu-2204-arm64: name: Ubuntu 22.04 Arm64 Test @@ -1977,6 +2049,7 @@ jobs: skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" combine-all-code-coverage: name: Combine Code Coverage diff --git a/.github/workflows/staging.yml b/.github/workflows/staging.yml index 3697eec3395..d12a2d39529 100644 --- a/.github/workflows/staging.yml +++ b/.github/workflows/staging.yml @@ -78,6 +78,7 @@ jobs: latest-release: ${{ steps.get-salt-releases.outputs.latest-release }} releases: ${{ steps.get-salt-releases.outputs.releases }} testing-releases: ${{ steps.get-testing-releases.outputs.testing-releases }} + nox-archive-hash: ${{ steps.nox-archive-hash.outputs.nox-archive-hash }} steps: - uses: actions/checkout@v4 with: @@ -194,6 +195,11 @@ jobs: run: | tools ci get-pr-test-labels --repository ${{ github.repository }} + - name: Get Hash For Nox Tarball Cache + id: nox-archive-hash + run: | + echo "nox-archive-hash=${{ hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py') }}" | tee -a "$GITHUB_OUTPUT" + - name: Check Existing Releases env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -530,6 +536,7 @@ jobs: python-version: "3.10" salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" amazonlinux-2-pkg-tests: name: Amazon Linux 2 Package Test @@ -552,6 +559,7 @@ jobs: skip-code-coverage: true skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" amazonlinux-2-arm64-pkg-tests: name: Amazon Linux 2 Arm64 Package Test @@ -574,6 +582,7 @@ jobs: skip-code-coverage: true skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" amazonlinux-2023-pkg-tests: name: Amazon Linux 2023 Package Test @@ -596,6 +605,7 @@ jobs: skip-code-coverage: true skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" amazonlinux-2023-arm64-pkg-tests: name: Amazon Linux 2023 Arm64 Package Test @@ -618,6 +628,7 @@ jobs: skip-code-coverage: true skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" centos-7-pkg-tests: name: CentOS 7 Package Test @@ -640,6 +651,7 @@ jobs: skip-code-coverage: true skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" centosstream-8-pkg-tests: name: CentOS Stream 8 Package Test @@ -662,6 +674,7 @@ jobs: skip-code-coverage: true skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" centosstream-9-pkg-tests: name: CentOS Stream 9 Package Test @@ -684,6 +697,7 @@ jobs: skip-code-coverage: true skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" centosstream-9-arm64-pkg-tests: name: CentOS Stream 9 Arm64 Package Test @@ -706,6 +720,7 @@ jobs: skip-code-coverage: true skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-10-pkg-tests: name: Debian 10 Package Test @@ -728,6 +743,7 @@ jobs: skip-code-coverage: true skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-11-pkg-tests: name: Debian 11 Package Test @@ -750,6 +766,7 @@ jobs: skip-code-coverage: true skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-11-arm64-pkg-tests: name: Debian 11 Arm64 Package Test @@ -772,6 +789,7 @@ jobs: skip-code-coverage: true skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-12-pkg-tests: name: Debian 12 Package Test @@ -794,6 +812,7 @@ jobs: skip-code-coverage: true skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-12-arm64-pkg-tests: name: Debian 12 Arm64 Package Test @@ -816,6 +835,7 @@ jobs: skip-code-coverage: true skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" photonos-3-pkg-tests: name: Photon OS 3 Package Test @@ -838,6 +858,7 @@ jobs: skip-code-coverage: true skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" photonos-3-arm64-pkg-tests: name: Photon OS 3 Arm64 Package Test @@ -860,6 +881,7 @@ jobs: skip-code-coverage: true skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" photonos-4-pkg-tests: name: Photon OS 4 Package Test @@ -882,6 +904,7 @@ jobs: skip-code-coverage: true skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true photonos-4-arm64-pkg-tests: @@ -905,6 +928,7 @@ jobs: skip-code-coverage: true skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true photonos-5-pkg-tests: @@ -928,6 +952,7 @@ jobs: skip-code-coverage: true skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true photonos-5-arm64-pkg-tests: @@ -951,6 +976,7 @@ jobs: skip-code-coverage: true skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true ubuntu-2004-pkg-tests: @@ -974,6 +1000,7 @@ jobs: skip-code-coverage: true skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" ubuntu-2004-arm64-pkg-tests: name: Ubuntu 20.04 Arm64 Package Test @@ -996,6 +1023,7 @@ jobs: skip-code-coverage: true skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" ubuntu-2204-pkg-tests: name: Ubuntu 22.04 Package Test @@ -1018,6 +1046,7 @@ jobs: skip-code-coverage: true skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" ubuntu-2204-arm64-pkg-tests: name: Ubuntu 22.04 Arm64 Package Test @@ -1040,6 +1069,7 @@ jobs: skip-code-coverage: true skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" macos-12-pkg-tests: name: macOS 12 Package Test @@ -1062,6 +1092,7 @@ jobs: skip-code-coverage: true skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" macos-13-pkg-tests: name: macOS 13 Package Test @@ -1084,6 +1115,7 @@ jobs: skip-code-coverage: true skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" macos-13-xlarge-pkg-tests: name: macOS 13 Arm64 Package Test @@ -1106,6 +1138,7 @@ jobs: skip-code-coverage: true skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2016-nsis-pkg-tests: name: Windows 2016 NSIS Package Test @@ -1128,6 +1161,7 @@ jobs: skip-code-coverage: true skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2016-msi-pkg-tests: name: Windows 2016 MSI Package Test @@ -1150,6 +1184,7 @@ jobs: skip-code-coverage: true skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2019-nsis-pkg-tests: name: Windows 2019 NSIS Package Test @@ -1172,6 +1207,7 @@ jobs: skip-code-coverage: true skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2019-msi-pkg-tests: name: Windows 2019 MSI Package Test @@ -1194,6 +1230,7 @@ jobs: skip-code-coverage: true skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2022-nsis-pkg-tests: name: Windows 2022 NSIS Package Test @@ -1216,6 +1253,7 @@ jobs: skip-code-coverage: true skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2022-msi-pkg-tests: name: Windows 2022 MSI Package Test @@ -1238,6 +1276,7 @@ jobs: skip-code-coverage: true skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2016: name: Windows 2016 Test @@ -1260,6 +1299,7 @@ jobs: skip-junit-reports: true workflow-slug: staging default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2019: name: Windows 2019 Test @@ -1282,6 +1322,7 @@ jobs: skip-junit-reports: true workflow-slug: staging default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2022: name: Windows 2022 Test @@ -1304,6 +1345,7 @@ jobs: skip-junit-reports: true workflow-slug: staging default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" macos-12: name: macOS 12 Test @@ -1326,6 +1368,7 @@ jobs: skip-junit-reports: true workflow-slug: staging default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" macos-13: name: macOS 13 Test @@ -1348,6 +1391,7 @@ jobs: skip-junit-reports: true workflow-slug: staging default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" macos-13-xlarge: name: macOS 13 Arm64 Test @@ -1370,6 +1414,7 @@ jobs: skip-junit-reports: true workflow-slug: staging default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" almalinux-8: name: Alma Linux 8 Test @@ -1392,6 +1437,7 @@ jobs: skip-junit-reports: true workflow-slug: staging default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" almalinux-9: name: Alma Linux 9 Test @@ -1414,6 +1460,7 @@ jobs: skip-junit-reports: true workflow-slug: staging default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" amazonlinux-2: name: Amazon Linux 2 Test @@ -1436,6 +1483,7 @@ jobs: skip-junit-reports: true workflow-slug: staging default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" amazonlinux-2-arm64: name: Amazon Linux 2 Arm64 Test @@ -1458,6 +1506,7 @@ jobs: skip-junit-reports: true workflow-slug: staging default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" amazonlinux-2023: name: Amazon Linux 2023 Test @@ -1480,6 +1529,7 @@ jobs: skip-junit-reports: true workflow-slug: staging default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" amazonlinux-2023-arm64: name: Amazon Linux 2023 Arm64 Test @@ -1502,6 +1552,7 @@ jobs: skip-junit-reports: true workflow-slug: staging default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" archlinux-lts: name: Arch Linux LTS Test @@ -1524,6 +1575,7 @@ jobs: skip-junit-reports: true workflow-slug: staging default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" centos-7: name: CentOS 7 Test @@ -1546,6 +1598,7 @@ jobs: skip-junit-reports: true workflow-slug: staging default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" centosstream-8: name: CentOS Stream 8 Test @@ -1568,6 +1621,7 @@ jobs: skip-junit-reports: true workflow-slug: staging default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" centosstream-9: name: CentOS Stream 9 Test @@ -1590,6 +1644,7 @@ jobs: skip-junit-reports: true workflow-slug: staging default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-10: name: Debian 10 Test @@ -1612,6 +1667,7 @@ jobs: skip-junit-reports: true workflow-slug: staging default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-11: name: Debian 11 Test @@ -1634,6 +1690,7 @@ jobs: skip-junit-reports: true workflow-slug: staging default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-11-arm64: name: Debian 11 Arm64 Test @@ -1656,6 +1713,7 @@ jobs: skip-junit-reports: true workflow-slug: staging default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-12: name: Debian 12 Test @@ -1678,6 +1736,7 @@ jobs: skip-junit-reports: true workflow-slug: staging default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-12-arm64: name: Debian 12 Arm64 Test @@ -1700,6 +1759,7 @@ jobs: skip-junit-reports: true workflow-slug: staging default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fedora-37: name: Fedora 37 Test @@ -1722,6 +1782,7 @@ jobs: skip-junit-reports: true workflow-slug: staging default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fedora-38: name: Fedora 38 Test @@ -1744,6 +1805,7 @@ jobs: skip-junit-reports: true workflow-slug: staging default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" opensuse-15: name: Opensuse 15 Test @@ -1766,6 +1828,7 @@ jobs: skip-junit-reports: true workflow-slug: staging default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" photonos-3: name: Photon OS 3 Test @@ -1788,6 +1851,7 @@ jobs: skip-junit-reports: true workflow-slug: staging default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" photonos-3-arm64: name: Photon OS 3 Arm64 Test @@ -1810,6 +1874,7 @@ jobs: skip-junit-reports: true workflow-slug: staging default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" photonos-4: name: Photon OS 4 Test @@ -1832,6 +1897,7 @@ jobs: skip-junit-reports: true workflow-slug: staging default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true photonos-4-arm64: @@ -1855,6 +1921,7 @@ jobs: skip-junit-reports: true workflow-slug: staging default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true photonos-5: @@ -1878,6 +1945,7 @@ jobs: skip-junit-reports: true workflow-slug: staging default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true photonos-5-arm64: @@ -1901,6 +1969,7 @@ jobs: skip-junit-reports: true workflow-slug: staging default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true ubuntu-2004: @@ -1924,6 +1993,7 @@ jobs: skip-junit-reports: true workflow-slug: staging default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" ubuntu-2004-arm64: name: Ubuntu 20.04 Arm64 Test @@ -1946,6 +2016,7 @@ jobs: skip-junit-reports: true workflow-slug: staging default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" ubuntu-2204: name: Ubuntu 22.04 Test @@ -1968,6 +2039,7 @@ jobs: skip-junit-reports: true workflow-slug: staging default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" ubuntu-2204-arm64: name: Ubuntu 22.04 Arm64 Test @@ -1990,6 +2062,7 @@ jobs: skip-junit-reports: true workflow-slug: staging default-timeout: 180 + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" build-src-repo: name: Build Repository @@ -2902,6 +2975,7 @@ jobs: python-version: "3.10" skip-code-coverage: true latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" secrets: inherit publish-pypi: diff --git a/.github/workflows/templates/build-ci-deps.yml.jinja b/.github/workflows/templates/build-ci-deps.yml.jinja index bd933864dfa..59f2bf0b9bc 100644 --- a/.github/workflows/templates/build-ci-deps.yml.jinja +++ b/.github/workflows/templates/build-ci-deps.yml.jinja @@ -19,3 +19,4 @@ python-version: "<{ gh_actions_workflows_python_version }>" salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|<{ python_version }> + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" diff --git a/.github/workflows/templates/build-deps-ci-action.yml.jinja b/.github/workflows/templates/build-deps-ci-action.yml.jinja index 2a8d73c8c32..dea23b61444 100644 --- a/.github/workflows/templates/build-deps-ci-action.yml.jinja +++ b/.github/workflows/templates/build-deps-ci-action.yml.jinja @@ -20,6 +20,10 @@ on: required: true type: string description: The nox version to install + nox-archive-hash: + required: true + type: string + description: Nox Tarball Cache Hash python-version: required: false type: string @@ -71,9 +75,7 @@ jobs: uses: actions/cache@v3.3.1 with: path: nox.linux.${{ matrix.arch }}.tar.* - key: ${{ inputs.cache-prefix }}|testrun-deps|${{ matrix.arch }}|linux|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ - hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py') - }} + key: ${{ inputs.cache-prefix }}|testrun-deps|${{ matrix.arch }}|linux|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ inputs.nox-archive-hash }} - name: Download Onedir Tarball as an Artifact if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' @@ -182,9 +184,7 @@ jobs: uses: actions/cache@v3.3.1 with: path: nox.macos.${{ matrix.arch }}.tar.* - key: ${{ inputs.cache-prefix }}|testrun-deps|${{ matrix.arch }}|macos|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ - hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py') - }} + key: ${{ inputs.cache-prefix }}|testrun-deps|${{ matrix.arch }}|macos|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ inputs.nox-archive-hash }} - name: Download Onedir Tarball as an Artifact if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' @@ -272,9 +272,7 @@ jobs: uses: actions/cache@v3.3.1 with: path: nox.windows.${{ matrix.arch }}.tar.* - key: ${{ inputs.cache-prefix }}|testrun-deps|${{ matrix.arch }}|windows|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ - hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py') - }} + key: ${{ inputs.cache-prefix }}|testrun-deps|${{ matrix.arch }}|windows|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ inputs.nox-archive-hash }} - name: Download Onedir Tarball as an Artifact if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' diff --git a/.github/workflows/templates/layout.yml.jinja b/.github/workflows/templates/layout.yml.jinja index 1ed2616983c..d448bd2e5a7 100644 --- a/.github/workflows/templates/layout.yml.jinja +++ b/.github/workflows/templates/layout.yml.jinja @@ -96,6 +96,7 @@ jobs: latest-release: ${{ steps.get-salt-releases.outputs.latest-release }} releases: ${{ steps.get-salt-releases.outputs.releases }} testing-releases: ${{ steps.get-testing-releases.outputs.testing-releases }} + nox-archive-hash: ${{ steps.nox-archive-hash.outputs.nox-archive-hash }} steps: - uses: actions/checkout@v4 with: @@ -212,6 +213,11 @@ jobs: run: | tools ci get-pr-test-labels --repository ${{ github.repository }} + - name: Get Hash For Nox Tarball Cache + id: nox-archive-hash + run: | + echo "nox-archive-hash=${{ hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py') }}" | tee -a "$GITHUB_OUTPUT" + <%- if prepare_actual_release %> - name: Check Existing Releases diff --git a/.github/workflows/templates/release.yml.jinja b/.github/workflows/templates/release.yml.jinja index 6cbb59a9136..1417a7e9306 100644 --- a/.github/workflows/templates/release.yml.jinja +++ b/.github/workflows/templates/release.yml.jinja @@ -86,6 +86,7 @@ permissions: cache-seed: ${{ steps.set-cache-seed.outputs.cache-seed }} latest-release: ${{ steps.get-salt-releases.outputs.latest-release }} releases: ${{ steps.get-salt-releases.outputs.releases }} + nox-archive-hash: ${{ steps.nox-archive-hash.outputs.nox-archive-hash }} steps: - uses: actions/checkout@v4 with: @@ -144,6 +145,11 @@ permissions: run: | tools ci define-cache-seed ${{ env.CACHE_SEED }} + - name: Get Hash For Nox Tarball Cache + id: nox-archive-hash + run: | + echo "nox-archive-hash=${{ hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py') }}" | tee -a "$GITHUB_OUTPUT" + <%- endblock prepare_workflow_job %> <%- endif %> diff --git a/.github/workflows/templates/test-package-downloads-action.yml.jinja b/.github/workflows/templates/test-package-downloads-action.yml.jinja index 284364fa1a3..2a5b8310364 100644 --- a/.github/workflows/templates/test-package-downloads-action.yml.jinja +++ b/.github/workflows/templates/test-package-downloads-action.yml.jinja @@ -23,6 +23,10 @@ on: required: true type: string description: The nox version to install + nox-archive-hash: + required: true + type: string + description: Nox Tarball Cache Hash python-version: required: false type: string @@ -98,9 +102,7 @@ jobs: uses: actions/cache@v3.3.1 with: path: nox.linux.${{ matrix.arch }}.tar.* - key: ${{ inputs.cache-prefix }}|testrun-deps|${{ matrix.arch }}|linux|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ - hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py') - }} + key: ${{ inputs.cache-prefix }}|testrun-deps|${{ matrix.arch }}|linux|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ inputs.nox-archive-hash }} # If we get a cache miss here it means the dependencies step failed to save the cache fail-on-cache-miss: true @@ -346,9 +348,7 @@ jobs: uses: actions/cache@v3.3.1 with: path: nox.macos.${{ matrix.arch }}.tar.* - key: ${{ inputs.cache-prefix }}|testrun-deps|${{ matrix.arch }}|macos|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ - hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py') - }} + key: ${{ inputs.cache-prefix }}|testrun-deps|${{ matrix.arch }}|macos|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ inputs.nox-archive-hash }} # If we get a cache miss here it means the dependencies step failed to save the cache fail-on-cache-miss: true @@ -549,9 +549,7 @@ jobs: uses: actions/cache@v3.3.1 with: path: nox.windows.${{ matrix.arch }}.tar.* - key: ${{ inputs.cache-prefix }}|testrun-deps|${{ matrix.arch }}|windows|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ - hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py') - }} + key: ${{ inputs.cache-prefix }}|testrun-deps|${{ matrix.arch }}|windows|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ inputs.nox-archive-hash }} # If we get a cache miss here it means the dependencies step failed to save the cache fail-on-cache-miss: true diff --git a/.github/workflows/templates/test-salt-pkg-repo-downloads.yml.jinja b/.github/workflows/templates/test-salt-pkg-repo-downloads.yml.jinja index d28614620db..0373787a47c 100644 --- a/.github/workflows/templates/test-salt-pkg-repo-downloads.yml.jinja +++ b/.github/workflows/templates/test-salt-pkg-repo-downloads.yml.jinja @@ -31,4 +31,5 @@ python-version: "<{ gh_actions_workflows_python_version }>" skip-code-coverage: true latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" secrets: inherit diff --git a/.github/workflows/templates/test-salt-pkg.yml.jinja b/.github/workflows/templates/test-salt-pkg.yml.jinja index 5beab6824a0..2afab9cf3ad 100644 --- a/.github/workflows/templates/test-salt-pkg.yml.jinja +++ b/.github/workflows/templates/test-salt-pkg.yml.jinja @@ -23,6 +23,7 @@ skip-code-coverage: <{ skip_test_coverage_check }> skip-junit-reports: <{ skip_junit_reports_check }> testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" <%- if fips == "fips" %> fips: true <%- endif %> @@ -56,6 +57,7 @@ skip-code-coverage: <{ skip_test_coverage_check }> skip-junit-reports: <{ skip_junit_reports_check }> testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" <%- endfor %> @@ -86,6 +88,7 @@ skip-code-coverage: <{ skip_test_coverage_check }> skip-junit-reports: <{ skip_junit_reports_check }> testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" <%- endfor %> <%- endfor %> diff --git a/.github/workflows/templates/test-salt.yml.jinja b/.github/workflows/templates/test-salt.yml.jinja index 296cf258dd3..214985df355 100644 --- a/.github/workflows/templates/test-salt.yml.jinja +++ b/.github/workflows/templates/test-salt.yml.jinja @@ -28,6 +28,7 @@ skip-junit-reports: <{ skip_junit_reports_check }> workflow-slug: <{ workflow_slug }> default-timeout: <{ timeout_value }> + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" <%- endfor %> @@ -56,6 +57,7 @@ skip-junit-reports: <{ skip_junit_reports_check }> workflow-slug: <{ workflow_slug }> default-timeout: <{ timeout_value }> + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" <%- endfor %> @@ -83,6 +85,7 @@ skip-junit-reports: <{ skip_junit_reports_check }> workflow-slug: <{ workflow_slug }> default-timeout: <{ timeout_value }> + nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" <%- if fips == "fips" %> fips: true <%- endif %> diff --git a/.github/workflows/test-action-linux.yml b/.github/workflows/test-action-linux.yml index 6a5ba0ae951..2626bb5fdf2 100644 --- a/.github/workflows/test-action-linux.yml +++ b/.github/workflows/test-action-linux.yml @@ -36,6 +36,10 @@ on: required: true type: string description: The nox version to install + nox-archive-hash: + required: true + type: string + description: Nox Tarball Cache Hash gh-actions-python-version: required: false type: string @@ -159,9 +163,7 @@ jobs: uses: actions/cache@v3.3.1 with: path: nox.linux.${{ inputs.arch }}.tar.* - key: ${{ inputs.cache-prefix }}|testrun-deps|${{ inputs.arch }}|linux|${{ inputs.nox-session }}|${{ inputs.gh-actions-python-version }}|${{ - hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py') - }} + key: ${{ inputs.cache-prefix }}|testrun-deps|${{ inputs.arch }}|linux|${{ inputs.nox-session }}|${{ inputs.gh-actions-python-version }}|${{ inputs.nox-archive-hash }} # If we get a cache miss here it means the dependencies step failed to save the cache fail-on-cache-miss: true diff --git a/.github/workflows/test-action-macos.yml b/.github/workflows/test-action-macos.yml index 605f16fc61f..e95df52b7cd 100644 --- a/.github/workflows/test-action-macos.yml +++ b/.github/workflows/test-action-macos.yml @@ -41,6 +41,10 @@ on: required: true type: string description: The nox version to install + nox-archive-hash: + required: true + type: string + description: Nox Tarball Cache Hash package-name: required: false type: string @@ -149,9 +153,7 @@ jobs: uses: actions/cache@v3.3.1 with: path: nox.macos.${{ inputs.arch }}.tar.* - key: ${{ inputs.cache-prefix }}|testrun-deps|${{ inputs.arch }}|macos|${{ inputs.nox-session }}|${{ inputs.gh-actions-python-version }}|${{ - hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py') - }} + key: ${{ inputs.cache-prefix }}|testrun-deps|${{ inputs.arch }}|macos|${{ inputs.nox-session }}|${{ inputs.gh-actions-python-version }}|${{ inputs.nox-archive-hash }} # If we get a cache miss here it means the dependencies step failed to save the cache fail-on-cache-miss: true diff --git a/.github/workflows/test-action-windows.yml b/.github/workflows/test-action-windows.yml index 769bc03f48b..bdc944494f3 100644 --- a/.github/workflows/test-action-windows.yml +++ b/.github/workflows/test-action-windows.yml @@ -36,6 +36,10 @@ on: required: true type: string description: The nox version to install + nox-archive-hash: + required: true + type: string + description: Nox Tarball Cache Hash gh-actions-python-version: required: false type: string @@ -159,9 +163,7 @@ jobs: uses: actions/cache@v3.3.1 with: path: nox.windows.${{ inputs.arch }}.tar.* - key: ${{ inputs.cache-prefix }}|testrun-deps|${{ inputs.arch }}|windows|${{ inputs.nox-session }}|${{ inputs.gh-actions-python-version }}|${{ - hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py') - }} + key: ${{ inputs.cache-prefix }}|testrun-deps|${{ inputs.arch }}|windows|${{ inputs.nox-session }}|${{ inputs.gh-actions-python-version }}|${{ inputs.nox-archive-hash }} # If we get a cache miss here it means the dependencies step failed to save the cache fail-on-cache-miss: true diff --git a/.github/workflows/test-package-downloads-action.yml b/.github/workflows/test-package-downloads-action.yml index 704c021ab3e..12d3da43a96 100644 --- a/.github/workflows/test-package-downloads-action.yml +++ b/.github/workflows/test-package-downloads-action.yml @@ -23,6 +23,10 @@ on: required: true type: string description: The nox version to install + nox-archive-hash: + required: true + type: string + description: Nox Tarball Cache Hash python-version: required: false type: string @@ -243,9 +247,7 @@ jobs: uses: actions/cache@v3.3.1 with: path: nox.linux.${{ matrix.arch }}.tar.* - key: ${{ inputs.cache-prefix }}|testrun-deps|${{ matrix.arch }}|linux|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ - hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py') - }} + key: ${{ inputs.cache-prefix }}|testrun-deps|${{ matrix.arch }}|linux|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ inputs.nox-archive-hash }} # If we get a cache miss here it means the dependencies step failed to save the cache fail-on-cache-miss: true @@ -498,9 +500,7 @@ jobs: uses: actions/cache@v3.3.1 with: path: nox.macos.${{ matrix.arch }}.tar.* - key: ${{ inputs.cache-prefix }}|testrun-deps|${{ matrix.arch }}|macos|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ - hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py') - }} + key: ${{ inputs.cache-prefix }}|testrun-deps|${{ matrix.arch }}|macos|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ inputs.nox-archive-hash }} # If we get a cache miss here it means the dependencies step failed to save the cache fail-on-cache-miss: true @@ -705,9 +705,7 @@ jobs: uses: actions/cache@v3.3.1 with: path: nox.windows.${{ matrix.arch }}.tar.* - key: ${{ inputs.cache-prefix }}|testrun-deps|${{ matrix.arch }}|windows|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ - hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py') - }} + key: ${{ inputs.cache-prefix }}|testrun-deps|${{ matrix.arch }}|windows|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ inputs.nox-archive-hash }} # If we get a cache miss here it means the dependencies step failed to save the cache fail-on-cache-miss: true diff --git a/.github/workflows/test-packages-action-linux.yml b/.github/workflows/test-packages-action-linux.yml index 8d34e2b9093..740000e008f 100644 --- a/.github/workflows/test-packages-action-linux.yml +++ b/.github/workflows/test-packages-action-linux.yml @@ -35,6 +35,10 @@ on: required: true type: string description: The nox version to install + nox-archive-hash: + required: true + type: string + description: Nox Tarball Cache Hash python-version: required: false type: string @@ -156,9 +160,7 @@ jobs: uses: actions/cache@v3.3.1 with: path: nox.linux.${{ inputs.arch }}.tar.* - key: ${{ inputs.cache-prefix }}|testrun-deps|${{ inputs.arch }}|linux|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ - hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py') - }} + key: ${{ inputs.cache-prefix }}|testrun-deps|${{ inputs.arch }}|linux|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ inputs.nox-archive-hash }} # If we get a cache miss here it means the dependencies step failed to save the cache fail-on-cache-miss: true diff --git a/.github/workflows/test-packages-action-macos.yml b/.github/workflows/test-packages-action-macos.yml index 2592c1cff99..16dbe829790 100644 --- a/.github/workflows/test-packages-action-macos.yml +++ b/.github/workflows/test-packages-action-macos.yml @@ -35,6 +35,10 @@ on: required: true type: string description: The nox version to install + nox-archive-hash: + required: true + type: string + description: Nox Tarball Cache Hash python-version: required: false type: string @@ -158,9 +162,7 @@ jobs: uses: actions/cache@v3.3.1 with: path: nox.macos.${{ inputs.arch }}.tar.* - key: ${{ inputs.cache-prefix }}|testrun-deps|${{ inputs.arch }}|macos|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ - hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py') - }} + key: ${{ inputs.cache-prefix }}|testrun-deps|${{ inputs.arch }}|macos|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ inputs.nox-archive-hash }} # If we get a cache miss here it means the dependencies step failed to save the cache fail-on-cache-miss: true diff --git a/.github/workflows/test-packages-action-windows.yml b/.github/workflows/test-packages-action-windows.yml index 9e84c8906f1..7a15a681c95 100644 --- a/.github/workflows/test-packages-action-windows.yml +++ b/.github/workflows/test-packages-action-windows.yml @@ -35,6 +35,10 @@ on: required: true type: string description: The nox version to install + nox-archive-hash: + required: true + type: string + description: Nox Tarball Cache Hash python-version: required: false type: string @@ -156,9 +160,7 @@ jobs: uses: actions/cache@v3.3.1 with: path: nox.windows.${{ inputs.arch }}.tar.* - key: ${{ inputs.cache-prefix }}|testrun-deps|${{ inputs.arch }}|windows|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ - hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py') - }} + key: ${{ inputs.cache-prefix }}|testrun-deps|${{ inputs.arch }}|windows|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ inputs.nox-archive-hash }} # If we get a cache miss here it means the dependencies step failed to save the cache fail-on-cache-miss: true From 5f2673aa29b6875db2bce809b679096da513ecfb Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Wed, 3 Jan 2024 20:23:20 +0000 Subject: [PATCH 017/146] Prefer GitHub hosted actions runners when generating the matrix Signed-off-by: Pedro Algarvio --- .github/workflows/test-action-linux.yml | 5 +---- .github/workflows/test-action-windows.yml | 5 +---- .github/workflows/test-packages-action-linux.yml | 5 +---- .github/workflows/test-packages-action-macos.yml | 5 +---- .github/workflows/test-packages-action-windows.yml | 5 +---- 5 files changed, 5 insertions(+), 20 deletions(-) diff --git a/.github/workflows/test-action-linux.yml b/.github/workflows/test-action-linux.yml index 2626bb5fdf2..522a10f7191 100644 --- a/.github/workflows/test-action-linux.yml +++ b/.github/workflows/test-action-linux.yml @@ -87,10 +87,7 @@ jobs: generate-matrix: name: Test Matrix - runs-on: - - self-hosted - - linux - - x86_64 + runs-on: ubuntu-latest outputs: matrix-include: ${{ steps.generate-matrix.outputs.matrix }} steps: diff --git a/.github/workflows/test-action-windows.yml b/.github/workflows/test-action-windows.yml index bdc944494f3..e303a992ca2 100644 --- a/.github/workflows/test-action-windows.yml +++ b/.github/workflows/test-action-windows.yml @@ -87,10 +87,7 @@ jobs: generate-matrix: name: Test Matrix - runs-on: - - self-hosted - - linux - - x86_64 + runs-on: ubuntu-latest outputs: matrix-include: ${{ steps.generate-matrix.outputs.matrix }} steps: diff --git a/.github/workflows/test-packages-action-linux.yml b/.github/workflows/test-packages-action-linux.yml index 740000e008f..45ef34eae82 100644 --- a/.github/workflows/test-packages-action-linux.yml +++ b/.github/workflows/test-packages-action-linux.yml @@ -81,10 +81,7 @@ jobs: generate-matrix: name: Generate Matrix - runs-on: - - self-hosted - - linux - - x86_64 + runs-on: ubuntu-latest outputs: pkg-matrix-include: ${{ steps.generate-pkg-matrix.outputs.matrix }} steps: diff --git a/.github/workflows/test-packages-action-macos.yml b/.github/workflows/test-packages-action-macos.yml index 16dbe829790..a23145c83b4 100644 --- a/.github/workflows/test-packages-action-macos.yml +++ b/.github/workflows/test-packages-action-macos.yml @@ -74,10 +74,7 @@ jobs: generate-matrix: name: Generate Matrix - runs-on: - - self-hosted - - linux - - x86_64 + runs-on: ubuntu-latest outputs: pkg-matrix-include: ${{ steps.generate-pkg-matrix.outputs.matrix }} steps: diff --git a/.github/workflows/test-packages-action-windows.yml b/.github/workflows/test-packages-action-windows.yml index 7a15a681c95..c8994f6e52c 100644 --- a/.github/workflows/test-packages-action-windows.yml +++ b/.github/workflows/test-packages-action-windows.yml @@ -81,10 +81,7 @@ jobs: generate-matrix: name: Generate Matrix - runs-on: - - self-hosted - - linux - - x86_64 + runs-on: ubuntu-latest outputs: pkg-matrix-include: ${{ steps.generate-pkg-matrix.outputs.matrix }} steps: From 6d37d30ce755bb67eb413cd5921d0e063bcaeeeb Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Thu, 4 Jan 2024 06:27:54 +0000 Subject: [PATCH 018/146] Package tests matrix jobs need to run on our own runners Signed-off-by: Pedro Algarvio --- .github/workflows/test-packages-action-linux.yml | 7 ++++++- .github/workflows/test-packages-action-macos.yml | 7 ++++++- .github/workflows/test-packages-action-windows.yml | 7 ++++++- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test-packages-action-linux.yml b/.github/workflows/test-packages-action-linux.yml index 45ef34eae82..bc19892213b 100644 --- a/.github/workflows/test-packages-action-linux.yml +++ b/.github/workflows/test-packages-action-linux.yml @@ -81,7 +81,12 @@ jobs: generate-matrix: name: Generate Matrix - runs-on: ubuntu-latest + runs-on: + # We need to run on our self-hosted runners because we need proper credentials + # for boto3 to scan through our repositories. + - self-hosted + - linux + - x86_64 outputs: pkg-matrix-include: ${{ steps.generate-pkg-matrix.outputs.matrix }} steps: diff --git a/.github/workflows/test-packages-action-macos.yml b/.github/workflows/test-packages-action-macos.yml index a23145c83b4..9a5ab71cf16 100644 --- a/.github/workflows/test-packages-action-macos.yml +++ b/.github/workflows/test-packages-action-macos.yml @@ -74,7 +74,12 @@ jobs: generate-matrix: name: Generate Matrix - runs-on: ubuntu-latest + runs-on: + # We need to run on our self-hosted runners because we need proper credentials + # for boto3 to scan through our repositories. + - self-hosted + - linux + - x86_64 outputs: pkg-matrix-include: ${{ steps.generate-pkg-matrix.outputs.matrix }} steps: diff --git a/.github/workflows/test-packages-action-windows.yml b/.github/workflows/test-packages-action-windows.yml index c8994f6e52c..0855b48606c 100644 --- a/.github/workflows/test-packages-action-windows.yml +++ b/.github/workflows/test-packages-action-windows.yml @@ -81,7 +81,12 @@ jobs: generate-matrix: name: Generate Matrix - runs-on: ubuntu-latest + runs-on: + # We need to run on our self-hosted runners because we need proper credentials + # for boto3 to scan through our repositories. + - self-hosted + - linux + - x86_64 outputs: pkg-matrix-include: ${{ steps.generate-pkg-matrix.outputs.matrix }} steps: From 4d5e47a10e9860e7ee7a2f13e2c4d3c8b6941011 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Thu, 4 Jan 2024 07:48:23 +0000 Subject: [PATCH 019/146] Revert "Use windows self hosted runners to build CI deps" This reverts commit f99055beb9cf867493a81ab9c60c4ce3c653b1f0. We would have to enable cross os caches(probably) --- .github/workflows/build-deps-ci-action.yml | 65 ++++++++++++++----- .../templates/build-deps-ci-action.yml.jinja | 65 ++++++++++++++----- 2 files changed, 98 insertions(+), 32 deletions(-) diff --git a/.github/workflows/build-deps-ci-action.yml b/.github/workflows/build-deps-ci-action.yml index 3bb08e11b34..6352797c9b1 100644 --- a/.github/workflows/build-deps-ci-action.yml +++ b/.github/workflows/build-deps-ci-action.yml @@ -247,7 +247,10 @@ jobs: windows-dependencies: name: Windows - runs-on: ${{ matrix.distro-slug }} + runs-on: + - self-hosted + - linux + - bastion timeout-minutes: 90 strategy: fail-fast: false @@ -260,7 +263,7 @@ jobs: - name: "Throttle Builds" shell: bash run: | - t=$(python3 -c 'import random, sys; sys.stdout.write(str(random.randint(1, 15)))'); echo "Sleeping $t seconds"; sleep "$t" + t=$(shuf -i 1-30 -n 1); echo "Sleeping $t seconds"; sleep "$t" - name: Checkout Source Code uses: actions/checkout@v4 @@ -287,34 +290,64 @@ jobs: cd artifacts tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-windows-${{ matrix.arch }}.tar.xz - - name: Set up Python ${{ inputs.python-version }} - if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' - uses: actions/setup-python@v4 - with: - python-version: "${{ inputs.python-version }}" - - - name: Install Nox + - name: PyPi Proxy if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' run: | - python3 -m pip install 'nox==${{ inputs.nox-version }}' + sed -i '7s;^;--index-url=https://pypi-proxy.saltstack.net/root/local/+simple/ --extra-index-url=https://pypi.org/simple\n;' requirements/static/ci/*/*.txt + + - name: Setup Python Tools Scripts + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + uses: ./.github/actions/setup-python-tools-scripts + with: + cache-prefix: ${{ inputs.cache-prefix }}-build-deps-ci + + - name: Get Salt Project GitHub Actions Bot Environment + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + TOKEN=$(curl -sS -f -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 30") + SPB_ENVIRONMENT=$(curl -sS -f -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/tags/instance/spb:environment) + echo "SPB_ENVIRONMENT=$SPB_ENVIRONMENT" >> "$GITHUB_ENV" + + - name: Start VM + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + id: spin-up-vm + run: | + tools --timestamps vm create --environment "${SPB_ENVIRONMENT}" --retries=2 ${{ matrix.distro-slug }} + + - name: List Free Space + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + tools --timestamps vm ssh ${{ matrix.distro-slug }} -- df -h || true + + - name: Upload Checkout To VM + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + tools --timestamps vm rsync ${{ matrix.distro-slug }} - name: Install Dependencies if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' - env: - PRINT_TEST_SELECTION: "0" - PRINT_SYSTEM_INFO: "0" run: | - nox --install-only -e ${{ inputs.nox-session }} + tools --timestamps vm install-dependencies --nox-session=${{ inputs.nox-session }} ${{ matrix.distro-slug }} - name: Cleanup .nox Directory if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' run: | - nox --force-color -e "pre-archive-cleanup(pkg=False)" + tools --timestamps vm pre-archive-cleanup ${{ matrix.distro-slug }} - name: Compress .nox Directory if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' run: | - nox --force-color -e compress-dependencies -- windows ${{ matrix.arch }} + tools --timestamps vm compress-dependencies ${{ matrix.distro-slug }} + + - name: Download Compressed .nox Directory + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + tools --timestamps vm download-dependencies ${{ matrix.distro-slug }} + + - name: Destroy VM + if: always() && steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + tools --timestamps vm destroy --no-wait ${{ matrix.distro-slug }} - name: Upload Nox Requirements Tarball uses: actions/upload-artifact@v3 diff --git a/.github/workflows/templates/build-deps-ci-action.yml.jinja b/.github/workflows/templates/build-deps-ci-action.yml.jinja index dea23b61444..e9c16833101 100644 --- a/.github/workflows/templates/build-deps-ci-action.yml.jinja +++ b/.github/workflows/templates/build-deps-ci-action.yml.jinja @@ -247,7 +247,10 @@ jobs: windows-dependencies: name: Windows - runs-on: ${{ matrix.distro-slug }} + runs-on: + - self-hosted + - linux + - bastion timeout-minutes: 90 strategy: fail-fast: false @@ -262,7 +265,7 @@ jobs: - name: "Throttle Builds" shell: bash run: | - t=$(python3 -c 'import random, sys; sys.stdout.write(str(random.randint(1, 15)))'); echo "Sleeping $t seconds"; sleep "$t" + t=$(shuf -i 1-30 -n 1); echo "Sleeping $t seconds"; sleep "$t" - name: Checkout Source Code uses: actions/checkout@v4 @@ -289,34 +292,64 @@ jobs: cd artifacts tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-windows-${{ matrix.arch }}.tar.xz - - name: Set up Python ${{ inputs.python-version }} - if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' - uses: actions/setup-python@v4 - with: - python-version: "${{ inputs.python-version }}" - - - name: Install Nox + - name: PyPi Proxy if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' run: | - python3 -m pip install 'nox==${{ inputs.nox-version }}' + sed -i '7s;^;--index-url=https://pypi-proxy.saltstack.net/root/local/+simple/ --extra-index-url=https://pypi.org/simple\n;' requirements/static/ci/*/*.txt + + - name: Setup Python Tools Scripts + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + uses: ./.github/actions/setup-python-tools-scripts + with: + cache-prefix: ${{ inputs.cache-prefix }}-build-deps-ci + + - name: Get Salt Project GitHub Actions Bot Environment + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + TOKEN=$(curl -sS -f -X PUT "http://169.254.169.254/latest/api/token" -H "X-aws-ec2-metadata-token-ttl-seconds: 30") + SPB_ENVIRONMENT=$(curl -sS -f -H "X-aws-ec2-metadata-token: $TOKEN" http://169.254.169.254/latest/meta-data/tags/instance/spb:environment) + echo "SPB_ENVIRONMENT=$SPB_ENVIRONMENT" >> "$GITHUB_ENV" + + - name: Start VM + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + id: spin-up-vm + run: | + tools --timestamps vm create --environment "${SPB_ENVIRONMENT}" --retries=2 ${{ matrix.distro-slug }} + + - name: List Free Space + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + tools --timestamps vm ssh ${{ matrix.distro-slug }} -- df -h || true + + - name: Upload Checkout To VM + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + tools --timestamps vm rsync ${{ matrix.distro-slug }} - name: Install Dependencies if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' - env: - PRINT_TEST_SELECTION: "0" - PRINT_SYSTEM_INFO: "0" run: | - nox --install-only -e ${{ inputs.nox-session }} + tools --timestamps vm install-dependencies --nox-session=${{ inputs.nox-session }} ${{ matrix.distro-slug }} - name: Cleanup .nox Directory if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' run: | - nox --force-color -e "pre-archive-cleanup(pkg=False)" + tools --timestamps vm pre-archive-cleanup ${{ matrix.distro-slug }} - name: Compress .nox Directory if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' run: | - nox --force-color -e compress-dependencies -- windows ${{ matrix.arch }} + tools --timestamps vm compress-dependencies ${{ matrix.distro-slug }} + + - name: Download Compressed .nox Directory + if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + tools --timestamps vm download-dependencies ${{ matrix.distro-slug }} + + - name: Destroy VM + if: always() && steps.nox-dependencies-cache.outputs.cache-hit != 'true' + run: | + tools --timestamps vm destroy --no-wait ${{ matrix.distro-slug }} - name: Upload Nox Requirements Tarball uses: actions/upload-artifact@v3 From ce128732b98a1ed1b08679fdbbbf1f56c93d4f90 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Thu, 4 Jan 2024 12:03:55 +0000 Subject: [PATCH 020/146] Bump to `actions/setup-python@v5` Signed-off-by: Pedro Algarvio --- .github/workflows/build-deps-ci-action.yml | 2 +- .github/workflows/build-deps-onedir.yml | 4 ++-- .github/workflows/build-packages.yml | 4 ++-- .github/workflows/build-salt-onedir.yml | 4 ++-- .github/workflows/ci.yml | 8 ++++---- .github/workflows/nightly.yml | 8 ++++---- .github/workflows/release-tag.yml | 2 +- .github/workflows/release-update-winrepo.yml | 2 +- .github/workflows/release-upload-virustotal.yml | 2 +- .github/workflows/release.yml | 2 +- .github/workflows/scheduled.yml | 8 ++++---- .github/workflows/staging.yml | 4 ++-- .../workflows/templates/build-deps-ci-action.yml.jinja | 2 +- .github/workflows/templates/ci.yml.jinja | 6 +++--- .github/workflows/templates/layout.yml.jinja | 2 +- .github/workflows/templates/release.yml.jinja | 2 +- .../templates/test-package-downloads-action.yml.jinja | 2 +- .github/workflows/test-action-macos.yml | 4 ++-- .github/workflows/test-package-downloads-action.yml | 2 +- .github/workflows/test-packages-action-macos.yml | 4 ++-- .github/workflows/triage.yml | 2 +- 21 files changed, 38 insertions(+), 38 deletions(-) diff --git a/.github/workflows/build-deps-ci-action.yml b/.github/workflows/build-deps-ci-action.yml index 6352797c9b1..fcdd9f37714 100644 --- a/.github/workflows/build-deps-ci-action.yml +++ b/.github/workflows/build-deps-ci-action.yml @@ -203,7 +203,7 @@ jobs: - name: Set up Python ${{ inputs.python-version }} if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: "${{ inputs.python-version }}" diff --git a/.github/workflows/build-deps-onedir.yml b/.github/workflows/build-deps-onedir.yml index 0ad923060f1..d99fc0e2461 100644 --- a/.github/workflows/build-deps-onedir.yml +++ b/.github/workflows/build-deps-onedir.yml @@ -105,7 +105,7 @@ jobs: - uses: actions/checkout@v4 - name: Set up Python 3.10 - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: "3.10" @@ -153,7 +153,7 @@ jobs: - uses: actions/checkout@v4 - name: Set up Python 3.10 - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: "3.10" diff --git a/.github/workflows/build-packages.yml b/.github/workflows/build-packages.yml index 266c9e064e6..6e1ec435da0 100644 --- a/.github/workflows/build-packages.yml +++ b/.github/workflows/build-packages.yml @@ -84,7 +84,7 @@ jobs: fi - uses: actions/checkout@v4 - - uses: actions/setup-python@v4 + - uses: actions/setup-python@v5 with: python-version: 3.11 @@ -387,7 +387,7 @@ jobs: fi - uses: actions/checkout@v4 - - uses: actions/setup-python@v4 + - uses: actions/setup-python@v5 with: python-version: 3.11 diff --git a/.github/workflows/build-salt-onedir.yml b/.github/workflows/build-salt-onedir.yml index 9c0e2aa7da6..eb807bd7fed 100644 --- a/.github/workflows/build-salt-onedir.yml +++ b/.github/workflows/build-salt-onedir.yml @@ -110,7 +110,7 @@ jobs: - uses: actions/checkout@v4 - name: Set up Python 3.10 - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: "3.10" @@ -165,7 +165,7 @@ jobs: - uses: actions/checkout@v4 - name: Set up Python 3.10 - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: "3.10" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 446e868bebd..e364ceeabab 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -132,7 +132,7 @@ jobs: - *pkg_tests_added_modified - name: Set up Python 3.10 - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: "3.10" @@ -279,7 +279,7 @@ jobs: - uses: actions/checkout@v4 - name: Set up Python 3.10 - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: "3.10" @@ -399,7 +399,7 @@ jobs: - uses: actions/checkout@v4 - name: Set up Python 3.10 - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: "3.10" @@ -2062,7 +2062,7 @@ jobs: - uses: actions/checkout@v4 - name: Set up Python 3.10 - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: "3.10" diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 55cda4e7425..0ee70ea129b 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -176,7 +176,7 @@ jobs: - *pkg_tests_added_modified - name: Set up Python 3.10 - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: "3.10" @@ -323,7 +323,7 @@ jobs: - uses: actions/checkout@v4 - name: Set up Python 3.10 - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: "3.10" @@ -448,7 +448,7 @@ jobs: - uses: actions/checkout@v4 - name: Set up Python 3.10 - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: "3.10" @@ -2119,7 +2119,7 @@ jobs: - uses: actions/checkout@v4 - name: Set up Python 3.10 - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: "3.10" diff --git a/.github/workflows/release-tag.yml b/.github/workflows/release-tag.yml index 85154bd59fa..66c16da7f97 100644 --- a/.github/workflows/release-tag.yml +++ b/.github/workflows/release-tag.yml @@ -54,7 +54,7 @@ jobs: custom_tag: ${{ github.event.inputs.saltVersion }} - name: Set up Python 3.8 - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: 3.8 diff --git a/.github/workflows/release-update-winrepo.yml b/.github/workflows/release-update-winrepo.yml index 7774657351c..2c5630034b8 100644 --- a/.github/workflows/release-update-winrepo.yml +++ b/.github/workflows/release-update-winrepo.yml @@ -34,7 +34,7 @@ jobs: repository: twangboy/salt-winrepo-ng - name: Set Up Python 3.10 - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: "3.10" diff --git a/.github/workflows/release-upload-virustotal.yml b/.github/workflows/release-upload-virustotal.yml index da13d83ca80..50e71594d50 100644 --- a/.github/workflows/release-upload-virustotal.yml +++ b/.github/workflows/release-upload-virustotal.yml @@ -37,7 +37,7 @@ jobs: uses: actions/checkout@v4 - name: Set Up Python 3.10 - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: "3.10" diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 87ecb2cd3f0..3142598e49f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -65,7 +65,7 @@ jobs: fetch-depth: 0 # Full clone to also get the tags to get the right salt version - name: Set up Python 3.10 - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: "3.10" diff --git a/.github/workflows/scheduled.yml b/.github/workflows/scheduled.yml index 00e1c1bbc90..a63a121cdb5 100644 --- a/.github/workflows/scheduled.yml +++ b/.github/workflows/scheduled.yml @@ -166,7 +166,7 @@ jobs: - *pkg_tests_added_modified - name: Set up Python 3.10 - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: "3.10" @@ -313,7 +313,7 @@ jobs: - uses: actions/checkout@v4 - name: Set up Python 3.10 - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: "3.10" @@ -433,7 +433,7 @@ jobs: - uses: actions/checkout@v4 - name: Set up Python 3.10 - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: "3.10" @@ -2096,7 +2096,7 @@ jobs: - uses: actions/checkout@v4 - name: Set up Python 3.10 - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: "3.10" diff --git a/.github/workflows/staging.yml b/.github/workflows/staging.yml index d12a2d39529..12773d45bcc 100644 --- a/.github/workflows/staging.yml +++ b/.github/workflows/staging.yml @@ -162,7 +162,7 @@ jobs: - *pkg_tests_added_modified - name: Set up Python 3.10 - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: "3.10" @@ -438,7 +438,7 @@ jobs: - uses: actions/checkout@v4 - name: Set up Python 3.10 - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: "3.10" diff --git a/.github/workflows/templates/build-deps-ci-action.yml.jinja b/.github/workflows/templates/build-deps-ci-action.yml.jinja index e9c16833101..100edcab7c4 100644 --- a/.github/workflows/templates/build-deps-ci-action.yml.jinja +++ b/.github/workflows/templates/build-deps-ci-action.yml.jinja @@ -203,7 +203,7 @@ jobs: - name: Set up Python ${{ inputs.python-version }} if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: "${{ inputs.python-version }}" diff --git a/.github/workflows/templates/ci.yml.jinja b/.github/workflows/templates/ci.yml.jinja index 8e71b976476..6c28dc992aa 100644 --- a/.github/workflows/templates/ci.yml.jinja +++ b/.github/workflows/templates/ci.yml.jinja @@ -62,7 +62,7 @@ <%- if not prepare_actual_release %> - name: Set up Python 3.10 - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: "3.10" @@ -210,7 +210,7 @@ - uses: actions/checkout@v4 - name: Set up Python 3.10 - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: "3.10" @@ -313,7 +313,7 @@ - uses: actions/checkout@v4 - name: Set up Python 3.10 - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: "3.10" diff --git a/.github/workflows/templates/layout.yml.jinja b/.github/workflows/templates/layout.yml.jinja index d448bd2e5a7..c8010fcded0 100644 --- a/.github/workflows/templates/layout.yml.jinja +++ b/.github/workflows/templates/layout.yml.jinja @@ -180,7 +180,7 @@ jobs: - *pkg_tests_added_modified - name: Set up Python 3.10 - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: "3.10" diff --git a/.github/workflows/templates/release.yml.jinja b/.github/workflows/templates/release.yml.jinja index 1417a7e9306..073a3c80677 100644 --- a/.github/workflows/templates/release.yml.jinja +++ b/.github/workflows/templates/release.yml.jinja @@ -93,7 +93,7 @@ permissions: fetch-depth: 0 # Full clone to also get the tags to get the right salt version - name: Set up Python 3.10 - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: "3.10" diff --git a/.github/workflows/templates/test-package-downloads-action.yml.jinja b/.github/workflows/templates/test-package-downloads-action.yml.jinja index 2a5b8310364..4cb2802ce0b 100644 --- a/.github/workflows/templates/test-package-downloads-action.yml.jinja +++ b/.github/workflows/templates/test-package-downloads-action.yml.jinja @@ -335,7 +335,7 @@ jobs: tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-macos-${{ matrix.arch }}.tar.xz - name: Set up Python ${{ inputs.python-version }} - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: "${{ inputs.python-version }}" update-environment: true diff --git a/.github/workflows/test-action-macos.yml b/.github/workflows/test-action-macos.yml index e95df52b7cd..baeaaa4206a 100644 --- a/.github/workflows/test-action-macos.yml +++ b/.github/workflows/test-action-macos.yml @@ -158,7 +158,7 @@ jobs: fail-on-cache-miss: true - name: Set up Python ${{ inputs.gh-actions-python-version }} - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: "${{ inputs.gh-actions-python-version }}" @@ -406,7 +406,7 @@ jobs: tree -a artifacts - name: Set up Python ${{ inputs.gh-actions-python-version }} - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: "${{ inputs.gh-actions-python-version }}" diff --git a/.github/workflows/test-package-downloads-action.yml b/.github/workflows/test-package-downloads-action.yml index 12d3da43a96..ccc5ca7de19 100644 --- a/.github/workflows/test-package-downloads-action.yml +++ b/.github/workflows/test-package-downloads-action.yml @@ -487,7 +487,7 @@ jobs: tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-macos-${{ matrix.arch }}.tar.xz - name: Set up Python ${{ inputs.python-version }} - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: "${{ inputs.python-version }}" update-environment: true diff --git a/.github/workflows/test-packages-action-macos.yml b/.github/workflows/test-packages-action-macos.yml index 9a5ab71cf16..95751cf6835 100644 --- a/.github/workflows/test-packages-action-macos.yml +++ b/.github/workflows/test-packages-action-macos.yml @@ -152,7 +152,7 @@ jobs: tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-${{ inputs.platform }}-${{ inputs.arch }}.tar.xz - name: Set up Python ${{ inputs.python-version }} - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: "${{ inputs.python-version }}" @@ -250,7 +250,7 @@ jobs: tree -a artifacts - name: Set up Python ${{ inputs.python-version }} - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: "${{ inputs.python-version }}" diff --git a/.github/workflows/triage.yml b/.github/workflows/triage.yml index 7d0ad560116..612460f6b56 100644 --- a/.github/workflows/triage.yml +++ b/.github/workflows/triage.yml @@ -28,7 +28,7 @@ jobs: - uses: actions/checkout@v4 - name: Set up Python - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: 3.8 From 18374305e6e6918fc445ecf79a53b59b6dfb94a1 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Fri, 5 Jan 2024 11:43:55 +0000 Subject: [PATCH 021/146] Prefer github hosted runners in favor of self hosted runners for reports Signed-off-by: Pedro Algarvio --- .github/workflows/test-action-linux.yml | 5 +---- .github/workflows/test-action-windows.yml | 5 +---- .github/workflows/test-packages-action-linux.yml | 5 +---- .github/workflows/test-packages-action-windows.yml | 5 +---- 4 files changed, 4 insertions(+), 16 deletions(-) diff --git a/.github/workflows/test-action-linux.yml b/.github/workflows/test-action-linux.yml index 522a10f7191..e6066e8b450 100644 --- a/.github/workflows/test-action-linux.yml +++ b/.github/workflows/test-action-linux.yml @@ -338,10 +338,7 @@ jobs: report: name: Test Reports if: always() && inputs.skip-code-coverage == false && needs.test.result != 'cancelled' && needs.test.result != 'skipped' - runs-on: - - self-hosted - - linux - - x86_64 + runs-on: ubuntu-latest needs: - test diff --git a/.github/workflows/test-action-windows.yml b/.github/workflows/test-action-windows.yml index e303a992ca2..d8931114838 100644 --- a/.github/workflows/test-action-windows.yml +++ b/.github/workflows/test-action-windows.yml @@ -338,10 +338,7 @@ jobs: report: name: Test Reports if: always() && inputs.skip-code-coverage == false && needs.test.result != 'cancelled' && needs.test.result != 'skipped' - runs-on: - - self-hosted - - linux - - x86_64 + runs-on: ubuntu-latest needs: - test diff --git a/.github/workflows/test-packages-action-linux.yml b/.github/workflows/test-packages-action-linux.yml index bc19892213b..d93c4177ac5 100644 --- a/.github/workflows/test-packages-action-linux.yml +++ b/.github/workflows/test-packages-action-linux.yml @@ -239,10 +239,7 @@ jobs: report: name: Report - runs-on: - - self-hosted - - linux - - x86_64 + runs-on: ubuntu-latest if: always() && (inputs.skip-code-coverage == false || inputs.skip-junit-reports == false) && needs.test.result != 'cancelled' && needs.test.result != 'skipped' needs: - test diff --git a/.github/workflows/test-packages-action-windows.yml b/.github/workflows/test-packages-action-windows.yml index 0855b48606c..5a9aaae7da3 100644 --- a/.github/workflows/test-packages-action-windows.yml +++ b/.github/workflows/test-packages-action-windows.yml @@ -240,10 +240,7 @@ jobs: report: name: Report - runs-on: - - self-hosted - - linux - - x86_64 + runs-on: ubuntu-latest if: always() && (inputs.skip-code-coverage == false || inputs.skip-junit-reports == false) && needs.test.result != 'cancelled' && needs.test.result != 'skipped' needs: - test From 9f2672793e0ebd18bbcf54b77e706929bd8986d6 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Tue, 9 Jan 2024 14:25:56 +0000 Subject: [PATCH 022/146] Remove unnecessary workflow steps while still showing the information Signed-off-by: Pedro Algarvio --- .github/workflows/ci.yml | 6 -- .github/workflows/nightly.yml | 6 -- .github/workflows/release.yml | 5 -- .github/workflows/scheduled.yml | 6 -- .github/workflows/staging.yml | 6 -- .github/workflows/templates/layout.yml.jinja | 6 -- .github/workflows/templates/release.yml.jinja | 5 -- tools/ci.py | 70 +++++++++---------- 8 files changed, 32 insertions(+), 78 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e364ceeabab..9409808161e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -221,12 +221,6 @@ jobs: run: | tools ci get-testing-releases ${{ join(fromJSON(steps.get-salt-releases.outputs.releases), ' ') }} --salt-version ${{ steps.setup-salt-version.outputs.salt-version }} - - name: Check Salt Releases - run: | - echo '${{ steps.get-salt-releases.outputs.latest-release }}' | jq -C '.' - echo '${{ steps.get-salt-releases.outputs.releases }}' | jq -C '.' - echo '${{ steps.get-testing-releases.outputs.testing-releases }}' | jq -C '.' - - name: Define Testrun id: define-testrun run: | diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 0ee70ea129b..cddac63041d 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -265,12 +265,6 @@ jobs: run: | tools ci get-testing-releases ${{ join(fromJSON(steps.get-salt-releases.outputs.releases), ' ') }} --salt-version ${{ steps.setup-salt-version.outputs.salt-version }} - - name: Check Salt Releases - run: | - echo '${{ steps.get-salt-releases.outputs.latest-release }}' | jq -C '.' - echo '${{ steps.get-salt-releases.outputs.releases }}' | jq -C '.' - echo '${{ steps.get-testing-releases.outputs.testing-releases }}' | jq -C '.' - - name: Define Testrun id: define-testrun run: | diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3142598e49f..9c624505c34 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -107,11 +107,6 @@ jobs: run: | tools ci get-releases - - name: Check Salt Releases - run: | - echo '${{ steps.get-salt-releases.outputs.latest-release }}' | jq -C '.' - echo '${{ steps.get-salt-releases.outputs.releases }}' | jq -C '.' - - name: Set Cache Seed Output id: set-cache-seed run: | diff --git a/.github/workflows/scheduled.yml b/.github/workflows/scheduled.yml index a63a121cdb5..50c3e43ee3c 100644 --- a/.github/workflows/scheduled.yml +++ b/.github/workflows/scheduled.yml @@ -255,12 +255,6 @@ jobs: run: | tools ci get-testing-releases ${{ join(fromJSON(steps.get-salt-releases.outputs.releases), ' ') }} --salt-version ${{ steps.setup-salt-version.outputs.salt-version }} - - name: Check Salt Releases - run: | - echo '${{ steps.get-salt-releases.outputs.latest-release }}' | jq -C '.' - echo '${{ steps.get-salt-releases.outputs.releases }}' | jq -C '.' - echo '${{ steps.get-testing-releases.outputs.testing-releases }}' | jq -C '.' - - name: Define Testrun id: define-testrun run: | diff --git a/.github/workflows/staging.yml b/.github/workflows/staging.yml index 12773d45bcc..f864c0537cc 100644 --- a/.github/workflows/staging.yml +++ b/.github/workflows/staging.yml @@ -260,12 +260,6 @@ jobs: run: | tools ci get-testing-releases ${{ join(fromJSON(steps.get-salt-releases.outputs.releases), ' ') }} --salt-version ${{ steps.setup-salt-version.outputs.salt-version }} - - name: Check Salt Releases - run: | - echo '${{ steps.get-salt-releases.outputs.latest-release }}' | jq -C '.' - echo '${{ steps.get-salt-releases.outputs.releases }}' | jq -C '.' - echo '${{ steps.get-testing-releases.outputs.testing-releases }}' | jq -C '.' - - name: Define Testrun id: define-testrun run: | diff --git a/.github/workflows/templates/layout.yml.jinja b/.github/workflows/templates/layout.yml.jinja index c8010fcded0..6f2f9b18e99 100644 --- a/.github/workflows/templates/layout.yml.jinja +++ b/.github/workflows/templates/layout.yml.jinja @@ -285,12 +285,6 @@ jobs: run: | tools ci get-testing-releases ${{ join(fromJSON(steps.get-salt-releases.outputs.releases), ' ') }} --salt-version ${{ steps.setup-salt-version.outputs.salt-version }} - - name: Check Salt Releases - run: | - echo '${{ steps.get-salt-releases.outputs.latest-release }}' | jq -C '.' - echo '${{ steps.get-salt-releases.outputs.releases }}' | jq -C '.' - echo '${{ steps.get-testing-releases.outputs.testing-releases }}' | jq -C '.' - - name: Define Testrun id: define-testrun run: | diff --git a/.github/workflows/templates/release.yml.jinja b/.github/workflows/templates/release.yml.jinja index 073a3c80677..704e2ec940b 100644 --- a/.github/workflows/templates/release.yml.jinja +++ b/.github/workflows/templates/release.yml.jinja @@ -135,11 +135,6 @@ permissions: run: | tools ci get-releases - - name: Check Salt Releases - run: | - echo '${{ steps.get-salt-releases.outputs.latest-release }}' | jq -C '.' - echo '${{ steps.get-salt-releases.outputs.releases }}' | jq -C '.' - - name: Set Cache Seed Output id: set-cache-seed run: | diff --git a/tools/ci.py b/tools/ci.py index e4ef802d9f2..6b3a7e7064e 100644 --- a/tools/ci.py +++ b/tools/ci.py @@ -891,15 +891,15 @@ def get_releases(ctx: Context, repository: str = "saltstack/salt"): """ Generate the latest salt release. """ + releases = tools.utils.get_salt_releases(ctx, repository) + str_releases = [str(version) for version in releases] + latest = str_releases[-1] + + ctx.info("Releases:", sorted(str_releases)) + ctx.info(f"Latest Release: '{latest}'") + github_output = os.environ.get("GITHUB_OUTPUT") - - if github_output is None: - ctx.exit(1, "The 'GITHUB_OUTPUT' variable is not set.") - else: - releases = tools.utils.get_salt_releases(ctx, repository) - str_releases = [str(version) for version in releases] - latest = str_releases[-1] - + if github_output is not None: with open(github_output, "a", encoding="utf-8") as wfh: wfh.write(f"latest-release={latest}\n") wfh.write(f"releases={json.dumps(str_releases)}\n") @@ -1035,40 +1035,34 @@ def get_testing_releases( """ Get a list of releases to use for the upgrade and downgrade tests. """ + # We aren't testing upgrades from anything before 3006.0 except the latest 3005.x + threshold_major = 3005 + parsed_salt_version = tools.utils.Version(salt_version) + # We want the latest 4 major versions, removing the oldest if this version is a new major + num_major_versions = 4 + if parsed_salt_version.minor == 0: + num_major_versions = 3 + majors = sorted( + list( + {version.major for version in releases if version.major >= threshold_major} + ) + )[-num_major_versions:] + testing_releases = [] + # Append the latest minor for each major + for major in majors: + minors_of_major = [version for version in releases if version.major == major] + testing_releases.append(minors_of_major[-1]) + + str_releases = [str(version) for version in testing_releases] + + ctx.info("Testing Releases:", sorted(str_releases)) + github_output = os.environ.get("GITHUB_OUTPUT") - if github_output is None: - ctx.exit(1, "The 'GITHUB_OUTPUT' variable is not set.") - else: - # We aren't testing upgrades from anything before 3006.0 except the latest 3005.x - threshold_major = 3005 - parsed_salt_version = tools.utils.Version(salt_version) - # We want the latest 4 major versions, removing the oldest if this version is a new major - num_major_versions = 4 - if parsed_salt_version.minor == 0: - num_major_versions = 3 - majors = sorted( - list( - { - version.major - for version in releases - if version.major >= threshold_major - } - ) - )[-num_major_versions:] - testing_releases = [] - # Append the latest minor for each major - for major in majors: - minors_of_major = [ - version for version in releases if version.major == major - ] - testing_releases.append(minors_of_major[-1]) - - str_releases = [str(version) for version in testing_releases] - + if github_output is not None: with open(github_output, "a", encoding="utf-8") as wfh: wfh.write(f"testing-releases={json.dumps(str_releases)}\n") - ctx.exit(0) + ctx.exit(0) @ci.command( From 8244df032540dbd5258806beb92b530843b99476 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Tue, 9 Jan 2024 16:03:19 +0000 Subject: [PATCH 023/146] Reduce the amount of annotations on workflows. Suggested by GitHub. Since our bigger builds always throw 500's by GitHub. We have to refresh a few times before being able to see the workflow. Signed-off-by: Pedro Algarvio --- .github/workflows/ci.yml | 66 ------------------- .github/workflows/nightly.yml | 66 ------------------- .github/workflows/scheduled.yml | 66 ------------------- .github/workflows/staging.yml | 66 ------------------- .github/workflows/templates/layout.yml.jinja | 1 - .github/workflows/templates/nightly.yml.jinja | 1 - .../workflows/templates/scheduled.yml.jinja | 1 - .github/workflows/templates/staging.yml.jinja | 1 - .../test-package-downloads-action.yml.jinja | 27 -------- .../templates/test-salt-pkg.yml.jinja | 3 - .../workflows/templates/test-salt.yml.jinja | 3 - .github/workflows/test-action-linux.yml | 15 ----- .github/workflows/test-action-macos.yml | 15 ----- .github/workflows/test-action-windows.yml | 14 ---- .../test-package-downloads-action.yml | 27 -------- .../workflows/test-packages-action-linux.yml | 16 +---- .../workflows/test-packages-action-macos.yml | 16 +---- .../test-packages-action-windows.yml | 16 +---- 18 files changed, 3 insertions(+), 417 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9409808161e..43d80353100 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -504,7 +504,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -527,7 +526,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -550,7 +548,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -573,7 +570,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -596,7 +592,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -619,7 +614,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -642,7 +636,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -665,7 +658,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -688,7 +680,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -711,7 +702,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -734,7 +724,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -757,7 +746,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -780,7 +768,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -803,7 +790,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -826,7 +812,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -849,7 +834,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true @@ -873,7 +857,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true @@ -897,7 +880,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true @@ -921,7 +903,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true @@ -945,7 +926,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -968,7 +948,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -991,7 +970,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1014,7 +992,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1037,7 +1014,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1060,7 +1036,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1083,7 +1058,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1106,7 +1080,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1129,7 +1102,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1152,7 +1124,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1175,7 +1146,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1198,7 +1168,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1221,7 +1190,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1243,7 +1211,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1266,7 +1233,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1289,7 +1255,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1312,7 +1277,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1335,7 +1299,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1358,7 +1321,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1381,7 +1343,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1404,7 +1365,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1427,7 +1387,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1450,7 +1409,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1473,7 +1431,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1496,7 +1453,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1519,7 +1475,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1542,7 +1497,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1565,7 +1519,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1588,7 +1541,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1611,7 +1563,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1634,7 +1585,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1657,7 +1607,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1680,7 +1629,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1703,7 +1651,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1726,7 +1673,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1749,7 +1695,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1772,7 +1717,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1795,7 +1739,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1818,7 +1761,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1841,7 +1783,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1865,7 +1806,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1889,7 +1829,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1913,7 +1852,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1937,7 +1875,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1960,7 +1897,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1983,7 +1919,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -2006,7 +1941,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} - skip-junit-reports: ${{ github.event_name == 'pull_request' }} workflow-slug: ci default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index cddac63041d..2e4ef6250dc 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -561,7 +561,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -584,7 +583,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -607,7 +605,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -630,7 +627,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -653,7 +649,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -676,7 +671,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -699,7 +693,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -722,7 +715,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -745,7 +737,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -768,7 +759,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -791,7 +781,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -814,7 +803,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -837,7 +825,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -860,7 +847,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -883,7 +869,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -906,7 +891,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true @@ -930,7 +914,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true @@ -954,7 +937,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true @@ -978,7 +960,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true @@ -1002,7 +983,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1025,7 +1005,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1048,7 +1027,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1071,7 +1049,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1094,7 +1071,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1117,7 +1093,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1140,7 +1115,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1163,7 +1137,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1186,7 +1159,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1209,7 +1181,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1232,7 +1203,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1255,7 +1225,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1278,7 +1247,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1300,7 +1268,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: nightly default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1323,7 +1290,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: nightly default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1346,7 +1312,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: nightly default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1369,7 +1334,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: nightly default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1392,7 +1356,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: nightly default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1415,7 +1378,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: nightly default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1438,7 +1400,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: nightly default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1461,7 +1422,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: nightly default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1484,7 +1444,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: nightly default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1507,7 +1466,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: nightly default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1530,7 +1488,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: nightly default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1553,7 +1510,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: nightly default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1576,7 +1532,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: nightly default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1599,7 +1554,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: nightly default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1622,7 +1576,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: nightly default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1645,7 +1598,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: nightly default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1668,7 +1620,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: nightly default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1691,7 +1642,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: nightly default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1714,7 +1664,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: nightly default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1737,7 +1686,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: nightly default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1760,7 +1708,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: nightly default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1783,7 +1730,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: nightly default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1806,7 +1752,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: nightly default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1829,7 +1774,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: nightly default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1852,7 +1796,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: nightly default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1875,7 +1818,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: nightly default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1898,7 +1840,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: nightly default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1922,7 +1863,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: nightly default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1946,7 +1886,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: nightly default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1970,7 +1909,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: nightly default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1994,7 +1932,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: nightly default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -2017,7 +1954,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: nightly default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -2040,7 +1976,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: nightly default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -2063,7 +1998,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: nightly default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" diff --git a/.github/workflows/scheduled.yml b/.github/workflows/scheduled.yml index 50c3e43ee3c..2dce4f3e95b 100644 --- a/.github/workflows/scheduled.yml +++ b/.github/workflows/scheduled.yml @@ -538,7 +538,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -561,7 +560,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -584,7 +582,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -607,7 +604,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -630,7 +626,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -653,7 +648,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -676,7 +670,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -699,7 +692,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -722,7 +714,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -745,7 +736,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -768,7 +758,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -791,7 +780,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -814,7 +802,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -837,7 +824,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -860,7 +846,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -883,7 +868,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true @@ -907,7 +891,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true @@ -931,7 +914,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true @@ -955,7 +937,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true @@ -979,7 +960,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1002,7 +982,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1025,7 +1004,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1048,7 +1026,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1071,7 +1048,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1094,7 +1070,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1117,7 +1092,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1140,7 +1114,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1163,7 +1136,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1186,7 +1158,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1209,7 +1180,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1232,7 +1202,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1255,7 +1224,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1277,7 +1245,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1300,7 +1267,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1323,7 +1289,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1346,7 +1311,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1369,7 +1333,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1392,7 +1355,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1415,7 +1377,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1438,7 +1399,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1461,7 +1421,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1484,7 +1443,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1507,7 +1465,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1530,7 +1487,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1553,7 +1509,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1576,7 +1531,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1599,7 +1553,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1622,7 +1575,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1645,7 +1597,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1668,7 +1619,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1691,7 +1641,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1714,7 +1663,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1737,7 +1685,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1760,7 +1707,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1783,7 +1729,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1806,7 +1751,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1829,7 +1773,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1852,7 +1795,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1875,7 +1817,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1899,7 +1840,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1923,7 +1863,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1947,7 +1886,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1971,7 +1909,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1994,7 +1931,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -2017,7 +1953,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -2040,7 +1975,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false - skip-junit-reports: false workflow-slug: scheduled default-timeout: 360 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" diff --git a/.github/workflows/staging.yml b/.github/workflows/staging.yml index f864c0537cc..a9576afc810 100644 --- a/.github/workflows/staging.yml +++ b/.github/workflows/staging.yml @@ -551,7 +551,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -574,7 +573,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -597,7 +595,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -620,7 +617,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -643,7 +639,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -666,7 +661,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -689,7 +683,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -712,7 +705,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -735,7 +727,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -758,7 +749,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -781,7 +771,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -804,7 +793,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -827,7 +815,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -850,7 +837,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -873,7 +859,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -896,7 +881,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true @@ -920,7 +904,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true @@ -944,7 +927,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true @@ -968,7 +950,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true @@ -992,7 +973,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1015,7 +995,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1038,7 +1017,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1061,7 +1039,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1084,7 +1061,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1107,7 +1083,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1130,7 +1105,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1153,7 +1127,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1176,7 +1149,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1199,7 +1171,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1222,7 +1193,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1245,7 +1215,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1268,7 +1237,6 @@ jobs: python-version: "3.10" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1290,7 +1258,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true workflow-slug: staging default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1313,7 +1280,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true workflow-slug: staging default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1336,7 +1302,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true workflow-slug: staging default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1359,7 +1324,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true workflow-slug: staging default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1382,7 +1346,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true workflow-slug: staging default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1405,7 +1368,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true workflow-slug: staging default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1428,7 +1390,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true workflow-slug: staging default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1451,7 +1412,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true workflow-slug: staging default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1474,7 +1434,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true workflow-slug: staging default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1497,7 +1456,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true workflow-slug: staging default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1520,7 +1478,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true workflow-slug: staging default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1543,7 +1500,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true workflow-slug: staging default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1566,7 +1522,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true workflow-slug: staging default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1589,7 +1544,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true workflow-slug: staging default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1612,7 +1566,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true workflow-slug: staging default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1635,7 +1588,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true workflow-slug: staging default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1658,7 +1610,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true workflow-slug: staging default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1681,7 +1632,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true workflow-slug: staging default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1704,7 +1654,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true workflow-slug: staging default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1727,7 +1676,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true workflow-slug: staging default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1750,7 +1698,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true workflow-slug: staging default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1773,7 +1720,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true workflow-slug: staging default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1796,7 +1742,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true workflow-slug: staging default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1819,7 +1764,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true workflow-slug: staging default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1842,7 +1786,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true workflow-slug: staging default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1865,7 +1808,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true workflow-slug: staging default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1888,7 +1830,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true workflow-slug: staging default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1912,7 +1853,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true workflow-slug: staging default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1936,7 +1876,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true workflow-slug: staging default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1960,7 +1899,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true workflow-slug: staging default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -1984,7 +1922,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true workflow-slug: staging default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -2007,7 +1944,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true workflow-slug: staging default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -2030,7 +1966,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true workflow-slug: staging default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -2053,7 +1988,6 @@ jobs: salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true - skip-junit-reports: true workflow-slug: staging default-timeout: 180 nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" diff --git a/.github/workflows/templates/layout.yml.jinja b/.github/workflows/templates/layout.yml.jinja index 6f2f9b18e99..96f26a5eb84 100644 --- a/.github/workflows/templates/layout.yml.jinja +++ b/.github/workflows/templates/layout.yml.jinja @@ -6,7 +6,6 @@ <%- set prepare_workflow_skip_pkg_download_test_suite = prepare_workflow_skip_pkg_download_test_suite|default("") %> <%- set prepare_workflow_salt_version_input = prepare_workflow_salt_version_input|default("") %> <%- set skip_test_coverage_check = skip_test_coverage_check|default("${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }}") %> -<%- set skip_junit_reports_check = skip_junit_reports_check|default("${{ github.event_name == 'pull_request' }}") %> <%- set gpg_key_id = "64CBBC8173D76B3F" %> <%- set prepare_actual_release = prepare_actual_release | default(False) %> <%- set gh_actions_workflows_python_version = "3.10" %> diff --git a/.github/workflows/templates/nightly.yml.jinja b/.github/workflows/templates/nightly.yml.jinja index b058b727b4d..2b1208021f1 100644 --- a/.github/workflows/templates/nightly.yml.jinja +++ b/.github/workflows/templates/nightly.yml.jinja @@ -1,6 +1,5 @@ <%- set gh_environment = gh_environment|default("nightly") %> <%- set skip_test_coverage_check = skip_test_coverage_check|default("false") %> -<%- set skip_junit_reports_check = skip_junit_reports_check|default("false") %> <%- set prepare_workflow_skip_test_suite = "${{ inputs.skip-salt-test-suite && ' --skip-tests' || '' }}" %> <%- set prepare_workflow_skip_pkg_test_suite = "${{ inputs.skip-salt-pkg-test-suite && ' --skip-pkg-tests' || '' }}" %> <%- set prepare_workflow_if_check = prepare_workflow_if_check|default("${{ fromJSON(needs.workflow-requirements.outputs.requirements-met) }}") %> diff --git a/.github/workflows/templates/scheduled.yml.jinja b/.github/workflows/templates/scheduled.yml.jinja index 4c78a978a44..48ead7ee0f4 100644 --- a/.github/workflows/templates/scheduled.yml.jinja +++ b/.github/workflows/templates/scheduled.yml.jinja @@ -1,6 +1,5 @@ <%- set prepare_workflow_if_check = "${{ fromJSON(needs.workflow-requirements.outputs.requirements-met) }}" %> <%- set skip_test_coverage_check = "false" %> -<%- set skip_junit_reports_check = "false" %> <%- extends 'ci.yml.jinja' %> diff --git a/.github/workflows/templates/staging.yml.jinja b/.github/workflows/templates/staging.yml.jinja index 45866284cfc..544015c5b85 100644 --- a/.github/workflows/templates/staging.yml.jinja +++ b/.github/workflows/templates/staging.yml.jinja @@ -6,7 +6,6 @@ <%- set gh_environment = "staging" %> <%- set prepare_actual_release = True %> <%- set skip_test_coverage_check = "true" %> -<%- set skip_junit_reports_check = "true" %> <%- extends 'nightly.yml.jinja' %> <%- block name %> diff --git a/.github/workflows/templates/test-package-downloads-action.yml.jinja b/.github/workflows/templates/test-package-downloads-action.yml.jinja index 4cb2802ce0b..5fe5d927d20 100644 --- a/.github/workflows/templates/test-package-downloads-action.yml.jinja +++ b/.github/workflows/templates/test-package-downloads-action.yml.jinja @@ -282,15 +282,6 @@ jobs: !artifacts/salt/* !artifacts/salt-*.tar.* - - name: Publish Test Report - uses: mikepenz/action-junit-report@v3 - # always run even if the previous steps fails - if: always() && job.status != 'cancelled' && steps.download-artifacts-from-vm.outcome == 'success' - with: - check_name: Overall Test Results(${{ matrix.distro-slug }} ${{ matrix.arch }}) - report_paths: 'artifacts/xml-unittests-output/*.xml' - annotate_only: true - macos: name: MacOS @@ -500,15 +491,6 @@ jobs: !artifacts/salt/* !artifacts/salt-*.tar.* - - name: Publish Test Report - uses: mikepenz/action-junit-report@v3 - # always run even if the previous steps fails - if: always() && job.status != 'cancelled' - with: - check_name: Overall Test Results(${{ matrix.distro-slug }} ${{ matrix.arch }}) - report_paths: 'artifacts/xml-unittests-output/*.xml' - annotate_only: true - windows: name: Windows @@ -728,12 +710,3 @@ jobs: artifacts !artifacts/salt/* !artifacts/salt-*.tar.* - - - name: Publish Test Report - uses: mikepenz/action-junit-report@v3 - # always run even if the previous steps fails - if: always() && job.status != 'cancelled' && steps.download-artifacts-from-vm.outcome == 'success' - with: - check_name: Overall Test Results(${{ matrix.distro-slug }} ${{ matrix.arch }} ${{ matrix.pkg-type }} ) - report_paths: 'artifacts/xml-unittests-output/*.xml' - annotate_only: true diff --git a/.github/workflows/templates/test-salt-pkg.yml.jinja b/.github/workflows/templates/test-salt-pkg.yml.jinja index 2afab9cf3ad..f51108c8287 100644 --- a/.github/workflows/templates/test-salt-pkg.yml.jinja +++ b/.github/workflows/templates/test-salt-pkg.yml.jinja @@ -21,7 +21,6 @@ python-version: "<{ gh_actions_workflows_python_version }>" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|<{ python_version }> skip-code-coverage: <{ skip_test_coverage_check }> - skip-junit-reports: <{ skip_junit_reports_check }> testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" <%- if fips == "fips" %> @@ -55,7 +54,6 @@ python-version: "<{ gh_actions_workflows_python_version }>" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|<{ python_version }> skip-code-coverage: <{ skip_test_coverage_check }> - skip-junit-reports: <{ skip_junit_reports_check }> testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -86,7 +84,6 @@ python-version: "<{ gh_actions_workflows_python_version }>" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|<{ python_version }> skip-code-coverage: <{ skip_test_coverage_check }> - skip-junit-reports: <{ skip_junit_reports_check }> testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" diff --git a/.github/workflows/templates/test-salt.yml.jinja b/.github/workflows/templates/test-salt.yml.jinja index 214985df355..d15c9f4623b 100644 --- a/.github/workflows/templates/test-salt.yml.jinja +++ b/.github/workflows/templates/test-salt.yml.jinja @@ -25,7 +25,6 @@ salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|<{ python_version }> skip-code-coverage: <{ skip_test_coverage_check }> - skip-junit-reports: <{ skip_junit_reports_check }> workflow-slug: <{ workflow_slug }> default-timeout: <{ timeout_value }> nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -54,7 +53,6 @@ salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|<{ python_version }> skip-code-coverage: <{ skip_test_coverage_check }> - skip-junit-reports: <{ skip_junit_reports_check }> workflow-slug: <{ workflow_slug }> default-timeout: <{ timeout_value }> nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" @@ -82,7 +80,6 @@ salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|<{ python_version }> skip-code-coverage: <{ skip_test_coverage_check }> - skip-junit-reports: <{ skip_junit_reports_check }> workflow-slug: <{ workflow_slug }> default-timeout: <{ timeout_value }> nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" diff --git a/.github/workflows/test-action-linux.yml b/.github/workflows/test-action-linux.yml index e6066e8b450..c1399e56fbf 100644 --- a/.github/workflows/test-action-linux.yml +++ b/.github/workflows/test-action-linux.yml @@ -60,11 +60,6 @@ on: type: boolean description: Skip code coverage default: false - skip-junit-reports: - required: false - type: boolean - description: Skip Publishing JUnit Reports - default: false workflow-slug: required: false type: string @@ -325,16 +320,6 @@ jobs: path: | artifacts/logs - - name: Publish Test Report - uses: mikepenz/action-junit-report@v3 - # always run even if the previous steps fails - if: always() && inputs.skip-junit-reports == false && job.status != 'cancelled' - with: - check_name: Test Results(${{ inputs.distro-slug }}, transport=${{ matrix.transport }}, tests-chunk=${{ matrix.tests-chunk }}, group=${{ matrix.test-group || '1' }}) - report_paths: 'artifacts/xml-unittests-output/*.xml' - annotate_only: true - - report: name: Test Reports if: always() && inputs.skip-code-coverage == false && needs.test.result != 'cancelled' && needs.test.result != 'skipped' diff --git a/.github/workflows/test-action-macos.yml b/.github/workflows/test-action-macos.yml index baeaaa4206a..9c731f2bd27 100644 --- a/.github/workflows/test-action-macos.yml +++ b/.github/workflows/test-action-macos.yml @@ -55,11 +55,6 @@ on: type: boolean description: Skip code coverage default: false - skip-junit-reports: - required: false - type: boolean - description: Skip Publishing JUnit Reports - default: false workflow-slug: required: false type: string @@ -372,16 +367,6 @@ jobs: path: | artifacts/logs - - name: Publish Test Report - uses: mikepenz/action-junit-report@v3 - # always run even if the previous steps fails - if: always() && inputs.skip-junit-reports == false - with: - check_name: Test Results(${{ inputs.distro-slug }}, transport=${{ matrix.transport }}, tests-chunk=${{ matrix.tests-chunk }}) - report_paths: 'artifacts/xml-unittests-output/*.xml' - annotate_only: true - - report: name: Test Reports if: always() && inputs.skip-code-coverage == false && needs.test.result != 'cancelled' && needs.test.result != 'skipped' diff --git a/.github/workflows/test-action-windows.yml b/.github/workflows/test-action-windows.yml index d8931114838..d430baab46a 100644 --- a/.github/workflows/test-action-windows.yml +++ b/.github/workflows/test-action-windows.yml @@ -60,11 +60,6 @@ on: type: boolean description: Skip code coverage default: false - skip-junit-reports: - required: false - type: boolean - description: Skip Publishing JUnit Reports - default: false workflow-slug: required: false type: string @@ -325,15 +320,6 @@ jobs: path: | artifacts/logs - - name: Publish Test Report - uses: mikepenz/action-junit-report@v3 - # always run even if the previous steps fails - if: always() && inputs.skip-junit-reports == false && job.status != 'cancelled' - with: - check_name: Test Results(${{ inputs.distro-slug }}, transport=${{ matrix.transport }}, tests-chunk=${{ matrix.tests-chunk }}, group=${{ matrix.test-group || '1' }}) - report_paths: 'artifacts/xml-unittests-output/*.xml' - annotate_only: true - report: name: Test Reports diff --git a/.github/workflows/test-package-downloads-action.yml b/.github/workflows/test-package-downloads-action.yml index ccc5ca7de19..21093ca3a51 100644 --- a/.github/workflows/test-package-downloads-action.yml +++ b/.github/workflows/test-package-downloads-action.yml @@ -427,15 +427,6 @@ jobs: !artifacts/salt/* !artifacts/salt-*.tar.* - - name: Publish Test Report - uses: mikepenz/action-junit-report@v3 - # always run even if the previous steps fails - if: always() && job.status != 'cancelled' && steps.download-artifacts-from-vm.outcome == 'success' - with: - check_name: Overall Test Results(${{ matrix.distro-slug }} ${{ matrix.arch }}) - report_paths: 'artifacts/xml-unittests-output/*.xml' - annotate_only: true - macos: name: MacOS @@ -652,15 +643,6 @@ jobs: !artifacts/salt/* !artifacts/salt-*.tar.* - - name: Publish Test Report - uses: mikepenz/action-junit-report@v3 - # always run even if the previous steps fails - if: always() && job.status != 'cancelled' - with: - check_name: Overall Test Results(${{ matrix.distro-slug }} ${{ matrix.arch }}) - report_paths: 'artifacts/xml-unittests-output/*.xml' - annotate_only: true - windows: name: Windows @@ -884,12 +866,3 @@ jobs: artifacts !artifacts/salt/* !artifacts/salt-*.tar.* - - - name: Publish Test Report - uses: mikepenz/action-junit-report@v3 - # always run even if the previous steps fails - if: always() && job.status != 'cancelled' && steps.download-artifacts-from-vm.outcome == 'success' - with: - check_name: Overall Test Results(${{ matrix.distro-slug }} ${{ matrix.arch }} ${{ matrix.pkg-type }} ) - report_paths: 'artifacts/xml-unittests-output/*.xml' - annotate_only: true diff --git a/.github/workflows/test-packages-action-linux.yml b/.github/workflows/test-packages-action-linux.yml index d93c4177ac5..4fa5f278708 100644 --- a/.github/workflows/test-packages-action-linux.yml +++ b/.github/workflows/test-packages-action-linux.yml @@ -64,11 +64,6 @@ on: type: boolean description: Skip code coverage default: false - skip-junit-reports: - required: false - type: boolean - description: Skip Publishing JUnit Reports - default: false env: COLUMNS: 190 @@ -240,7 +235,7 @@ jobs: report: name: Report runs-on: ubuntu-latest - if: always() && (inputs.skip-code-coverage == false || inputs.skip-junit-reports == false) && needs.test.result != 'cancelled' && needs.test.result != 'skipped' + if: always() && inputs.skip-code-coverage == false && needs.test.result != 'cancelled' && needs.test.result != 'skipped' needs: - test - generate-matrix @@ -264,12 +259,3 @@ jobs: if: always() && steps.download-test-run-artifacts.outcome == 'success' run: | tree -a artifacts - - - name: Publish Test Report - uses: mikepenz/action-junit-report@v3 - # always run even if the previous steps fails - if: always() && inputs.skip-junit-reports == false && steps.download-test-run-artifacts.outcome == 'success' - with: - check_name: Overall Test Results(${{ inputs.distro-slug }} ${{ matrix.tests-chunk }}) - report_paths: 'artifacts/xml-unittests-output/*.xml' - annotate_only: true diff --git a/.github/workflows/test-packages-action-macos.yml b/.github/workflows/test-packages-action-macos.yml index 95751cf6835..f81b367d475 100644 --- a/.github/workflows/test-packages-action-macos.yml +++ b/.github/workflows/test-packages-action-macos.yml @@ -59,11 +59,6 @@ on: type: boolean description: Skip code coverage default: false - skip-junit-reports: - required: false - type: boolean - description: Skip Publishing JUnit Reports - default: false env: COLUMNS: 190 @@ -224,7 +219,7 @@ jobs: report: name: Report runs-on: ubuntu-latest - if: always() && (inputs.skip-code-coverage == false || inputs.skip-junit-reports == false) && needs.test.result != 'cancelled' && needs.test.result != 'skipped' + if: always() && inputs.skip-code-coverage == false && needs.test.result != 'cancelled' && needs.test.result != 'skipped' needs: - test - generate-matrix @@ -257,12 +252,3 @@ jobs: - name: Install Nox run: | python3 -m pip install 'nox==${{ inputs.nox-version }}' - - - name: Publish Test Report - uses: mikepenz/action-junit-report@v3 - # always run even if the previous steps fails - if: always() && inputs.skip-junit-reports == false && steps.download-test-run-artifacts.outcome == 'success' - with: - check_name: Overall Test Results(${{ inputs.distro-slug }} ${{ matrix.tests-chunk }}) - report_paths: 'artifacts/xml-unittests-output/*.xml' - annotate_only: true diff --git a/.github/workflows/test-packages-action-windows.yml b/.github/workflows/test-packages-action-windows.yml index 5a9aaae7da3..dc8c290c9fb 100644 --- a/.github/workflows/test-packages-action-windows.yml +++ b/.github/workflows/test-packages-action-windows.yml @@ -64,11 +64,6 @@ on: type: boolean description: Skip code coverage default: false - skip-junit-reports: - required: false - type: boolean - description: Skip Publishing JUnit Reports - default: false env: COLUMNS: 190 @@ -241,7 +236,7 @@ jobs: report: name: Report runs-on: ubuntu-latest - if: always() && (inputs.skip-code-coverage == false || inputs.skip-junit-reports == false) && needs.test.result != 'cancelled' && needs.test.result != 'skipped' + if: always() && inputs.skip-code-coverage == false && needs.test.result != 'cancelled' && needs.test.result != 'skipped' needs: - test - generate-matrix @@ -265,12 +260,3 @@ jobs: if: always() && steps.download-test-run-artifacts.outcome == 'success' run: | tree -a artifacts - - - name: Publish Test Report - uses: mikepenz/action-junit-report@v3 - # always run even if the previous steps fails - if: always() && inputs.skip-junit-reports == false && steps.download-test-run-artifacts.outcome == 'success' - with: - check_name: Overall Test Results(${{ inputs.distro-slug }} ${{ matrix.tests-chunk }}) - report_paths: 'artifacts/xml-unittests-output/*.xml' - annotate_only: true From 81e15ea6c9bc53d410322a47916a0f106dee66c5 Mon Sep 17 00:00:00 2001 From: Megan Wilhite Date: Tue, 14 Nov 2023 13:36:32 -0700 Subject: [PATCH 024/146] Migrate package tests to the main test suite --- .../workflows/test-packages-action-linux.yml | 4 +- .../workflows/test-packages-action-macos.yml | 4 +- .gitignore | 1 - doc/topics/packaging/testing.rst | 4 +- noxfile.py | 18 ++-- {pkg/tests => tests/pytests/pkg}/__init__.py | 0 {pkg/tests => tests/pytests/pkg}/conftest.py | 19 ++-- .../pytests/pkg}/downgrade/__init__.py | 0 .../pkg}/downgrade/test_salt_downgrade.py | 2 - .../pytests/pkg}/download/__init__.py | 0 .../pkg}/download/test_pkg_download.py | 10 +-- .../pytests/pkg}/files/check_imports.sls | 0 .../pytests/pkg}/files/check_python.py | 0 .../pytests/pkg}/integration/__init__.py | 0 .../pkg}/integration/test_check_imports.py | 0 .../integration/test_clean_zmq_teardown.py | 0 .../pkg}/integration/test_enabled_disabled.py | 1 - .../pytests/pkg}/integration/test_help.py | 2 - .../pkg}/integration/test_logrotate_config.py | 0 .../pkg}/integration/test_multi_minion.py | 0 .../pytests/pkg}/integration/test_pip.py | 0 .../pkg}/integration/test_pip_upgrade.py | 0 .../pytests/pkg}/integration/test_pkg.py | 0 .../pytests/pkg}/integration/test_python.py | 18 +++- .../pytests/pkg}/integration/test_salt_api.py | 0 .../pkg}/integration/test_salt_call.py | 0 .../pkg}/integration/test_salt_exec.py | 0 .../pkg}/integration/test_salt_grains.py | 0 .../pytests/pkg}/integration/test_salt_key.py | 0 .../pkg}/integration/test_salt_minion.py | 0 .../pkg}/integration/test_salt_output.py | 0 .../pkg}/integration/test_salt_pillar.py | 0 .../pkg}/integration/test_salt_state_file.py | 0 .../pytests/pkg}/integration/test_salt_ufw.py | 0 .../pkg}/integration/test_salt_user.py | 6 +- .../pytests/pkg}/integration/test_ssm.py | 0 .../pkg}/integration/test_systemd_config.py | 0 .../pytests/pkg}/integration/test_version.py | 1 + tests/{ => pytests}/pkg/rpm/salt.spec | 0 .../pytests/pkg}/support/__init__.py | 0 .../pkg}/support/coverage/sitecustomize.py | 0 .../pytests/pkg}/support/helpers.py | 86 +++++++------------ .../pytests/pkg}/support/paths.py | 0 .../pytests/pkg}/support/runtests.py | 0 .../pytests/pkg}/support/sminion.py | 0 .../pytests/pkg}/upgrade/__init__.py | 0 .../pytests/pkg}/upgrade/test_salt_upgrade.py | 0 tools/vm.py | 2 +- 48 files changed, 81 insertions(+), 97 deletions(-) rename {pkg/tests => tests/pytests/pkg}/__init__.py (100%) rename {pkg/tests => tests/pytests/pkg}/conftest.py (97%) rename {pkg/tests => tests/pytests/pkg}/downgrade/__init__.py (100%) rename {pkg/tests => tests/pytests/pkg}/downgrade/test_salt_downgrade.py (99%) rename {pkg/tests => tests/pytests/pkg}/download/__init__.py (100%) rename {pkg/tests => tests/pytests/pkg}/download/test_pkg_download.py (98%) rename {pkg/tests => tests/pytests/pkg}/files/check_imports.sls (100%) rename {pkg/tests => tests/pytests/pkg}/files/check_python.py (100%) rename {pkg/tests => tests/pytests/pkg}/integration/__init__.py (100%) rename {pkg/tests => tests/pytests/pkg}/integration/test_check_imports.py (100%) rename {pkg/tests => tests/pytests/pkg}/integration/test_clean_zmq_teardown.py (100%) rename {pkg/tests => tests/pytests/pkg}/integration/test_enabled_disabled.py (96%) rename {pkg/tests => tests/pytests/pkg}/integration/test_help.py (94%) rename {pkg/tests => tests/pytests/pkg}/integration/test_logrotate_config.py (100%) rename {pkg/tests => tests/pytests/pkg}/integration/test_multi_minion.py (100%) rename {pkg/tests => tests/pytests/pkg}/integration/test_pip.py (100%) rename {pkg/tests => tests/pytests/pkg}/integration/test_pip_upgrade.py (100%) rename {pkg/tests => tests/pytests/pkg}/integration/test_pkg.py (100%) rename {pkg/tests => tests/pytests/pkg}/integration/test_python.py (68%) rename {pkg/tests => tests/pytests/pkg}/integration/test_salt_api.py (100%) rename {pkg/tests => tests/pytests/pkg}/integration/test_salt_call.py (100%) rename {pkg/tests => tests/pytests/pkg}/integration/test_salt_exec.py (100%) rename {pkg/tests => tests/pytests/pkg}/integration/test_salt_grains.py (100%) rename {pkg/tests => tests/pytests/pkg}/integration/test_salt_key.py (100%) rename {pkg/tests => tests/pytests/pkg}/integration/test_salt_minion.py (100%) rename {pkg/tests => tests/pytests/pkg}/integration/test_salt_output.py (100%) rename {pkg/tests => tests/pytests/pkg}/integration/test_salt_pillar.py (100%) rename {pkg/tests => tests/pytests/pkg}/integration/test_salt_state_file.py (100%) rename {pkg/tests => tests/pytests/pkg}/integration/test_salt_ufw.py (100%) rename {pkg/tests => tests/pytests/pkg}/integration/test_salt_user.py (98%) rename {pkg/tests => tests/pytests/pkg}/integration/test_ssm.py (100%) rename {pkg/tests => tests/pytests/pkg}/integration/test_systemd_config.py (100%) rename {pkg/tests => tests/pytests/pkg}/integration/test_version.py (99%) rename tests/{ => pytests}/pkg/rpm/salt.spec (100%) rename {pkg/tests => tests/pytests/pkg}/support/__init__.py (100%) rename {pkg/tests => tests/pytests/pkg}/support/coverage/sitecustomize.py (100%) rename {pkg/tests => tests/pytests/pkg}/support/helpers.py (96%) rename {pkg/tests => tests/pytests/pkg}/support/paths.py (100%) rename {pkg/tests => tests/pytests/pkg}/support/runtests.py (100%) rename {pkg/tests => tests/pytests/pkg}/support/sminion.py (100%) rename {pkg/tests => tests/pytests/pkg}/upgrade/__init__.py (100%) rename {pkg/tests => tests/pytests/pkg}/upgrade/test_salt_upgrade.py (100%) diff --git a/.github/workflows/test-packages-action-linux.yml b/.github/workflows/test-packages-action-linux.yml index 4fa5f278708..7318b2677b9 100644 --- a/.github/workflows/test-packages-action-linux.yml +++ b/.github/workflows/test-packages-action-linux.yml @@ -134,7 +134,7 @@ jobs: uses: actions/download-artifact@v3 with: name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-${{ inputs.arch }}-${{ inputs.pkg-type }} - path: pkg/artifacts/ + path: artifacts/pkg/ - name: Download Onedir Tarball as an Artifact uses: actions/download-artifact@v3 @@ -151,7 +151,7 @@ jobs: - name: List Packages run: | - tree pkg/artifacts + tree artifacts/pkg/ - name: Download cached nox.linux.${{ inputs.arch }}.tar.* for session ${{ inputs.nox-session }} uses: actions/cache@v3.3.1 diff --git a/.github/workflows/test-packages-action-macos.yml b/.github/workflows/test-packages-action-macos.yml index f81b367d475..078fccaae32 100644 --- a/.github/workflows/test-packages-action-macos.yml +++ b/.github/workflows/test-packages-action-macos.yml @@ -123,7 +123,7 @@ jobs: uses: actions/download-artifact@v3 with: name: salt-${{ inputs.salt-version }}-${{ inputs.arch }}-${{ inputs.pkg-type }} - path: pkg/artifacts/ + path: artifacts/pkg/ - name: Install System Dependencies run: | @@ -131,7 +131,7 @@ jobs: - name: List Packages run: | - tree pkg/artifacts + tree artifacts/pkg/ - name: Download Onedir Tarball as an Artifact uses: actions/download-artifact@v3 diff --git a/.gitignore b/.gitignore index f4f1babbb7c..e855a826154 100644 --- a/.gitignore +++ b/.gitignore @@ -117,7 +117,6 @@ kitchen.local.yml .bundle/ Gemfile.lock /artifacts/ -/pkg/artifacts/ requirements/static/*/py*/*.log # Vim's default session file diff --git a/doc/topics/packaging/testing.rst b/doc/topics/packaging/testing.rst index a5cad0ac393..371b59af855 100644 --- a/doc/topics/packaging/testing.rst +++ b/doc/topics/packaging/testing.rst @@ -27,7 +27,7 @@ In order to run the package tests, the `relenv built packages need to be placed in the correct locations. * Place all salt packages for the applicable testing version in - ``/pkg/artifacts/``. + ``/artifacts/pkg/``. * The onedir must be located under ``/artifacts/``. * Additionally, to ensure complete parity with Salt's CI/CD suite, place the ``nox`` virtual environment in ``/.nox/test-pkgs-onedir``. @@ -109,7 +109,7 @@ can be performed for artifacts from nightly builds. #. Place the artifacts in the correct location: - Unzip the packages and place them in ``/pkg/artifacts/``. + Unzip the packages and place them in ``/artifacts/pkg/``. You must unzip and untar the onedir packages and place them in ``/artifacts/``. Windows onedir requires an additional unzip diff --git a/noxfile.py b/noxfile.py index e3999ce8293..fc151ab0d73 100644 --- a/noxfile.py +++ b/noxfile.py @@ -463,7 +463,7 @@ def _report_coverage( xml_coverage_file = COVERAGE_OUTPUT_DIR.relative_to(REPO_ROOT) / "salt.xml" html_coverage_dir = COVERAGE_OUTPUT_DIR.relative_to(REPO_ROOT) / "html" / "salt" cmd_args = [ - "--omit=tests/*,pkg/tests/*", + "--omit=tests/*,tests/pytests/pkg/*", "--include=salt/*", ] @@ -475,7 +475,7 @@ def _report_coverage( ) cmd_args = [ "--omit=salt/*", - "--include=tests/*,pkg/tests/*", + "--include=tests/*,tests/pytests/pkg/*", ] else: json_coverage_file = ( @@ -484,7 +484,7 @@ def _report_coverage( xml_coverage_file = COVERAGE_OUTPUT_DIR.relative_to(REPO_ROOT) / "coverage.xml" html_coverage_dir = COVERAGE_OUTPUT_DIR.relative_to(REPO_ROOT) / "html" / "full" cmd_args = [ - "--include=salt/*,tests/*,pkg/tests/*", + "--include=salt/*,tests/*,tests/pytests/pkg/*", ] if cli_report: @@ -1837,30 +1837,30 @@ def ci_test_onedir_pkgs(session): ) chunks = { - "install": ["pkg/tests/"], + "install": ["tests/pytests/pkg/"], "upgrade": [ "--upgrade", "--no-uninstall", - "pkg/tests/upgrade/", + "tests/pytests/pkg/upgrade/", ], "upgrade-classic": [ "--upgrade", "--no-uninstall", - "pkg/tests/upgrade/", + "tests/pytests/pkg/upgrade/", ], "downgrade": [ "--downgrade", "--no-uninstall", - "pkg/tests/downgrade/", + "tests/pytests/pkg/downgrade/", ], "downgrade-classic": [ "--downgrade", "--no-uninstall", - "pkg/tests/downgrade/", + "tests/pytests/pkg/downgrade/", ], "download-pkgs": [ "--download-pkgs", - "pkg/tests/download/", + "tests/pytests/pkg/download/", ], } diff --git a/pkg/tests/__init__.py b/tests/pytests/pkg/__init__.py similarity index 100% rename from pkg/tests/__init__.py rename to tests/pytests/pkg/__init__.py diff --git a/pkg/tests/conftest.py b/tests/pytests/pkg/conftest.py similarity index 97% rename from pkg/tests/conftest.py rename to tests/pytests/pkg/conftest.py index d550a118100..3a64757c63e 100644 --- a/pkg/tests/conftest.py +++ b/tests/pytests/pkg/conftest.py @@ -12,7 +12,7 @@ from saltfactories.utils import random_string from saltfactories.utils.tempfiles import SaltPillarTree, SaltStateTree import salt.config -from tests.support.helpers import ( +from tests.pytests.pkg.support.helpers import ( CODE_DIR, TESTS_DIR, ApiRequest, @@ -209,7 +209,7 @@ def state_tree(): envs = { "base": [ str(file_root), - str(TESTS_DIR / "files"), + str(TESTS_DIR / "pytests" / "pkg" / "files"), ], } tree = SaltStateTree(envs=envs) @@ -345,7 +345,7 @@ def salt_master(salt_factories, install_salt, state_tree, pillar_tree): test_user = False master_config = install_salt.config_path / "master" if master_config.exists(): - with open(master_config) as fp: + with salt.utils.files.fopen(master_config) as fp: data = yaml.safe_load(fp) if data and "user" in data: test_user = True @@ -439,15 +439,18 @@ def salt_master(salt_factories, install_salt, state_tree, pillar_tree): "-R", "salt:salt", str(pathlib.Path("/etc", "salt", "pki", "master")), - ] + ], + check=True, ) # The engines_dirs is created in .nox path. We need to set correct perms # for the user running the Salt Master - subprocess.run(["chown", "-R", "salt:salt", str(CODE_DIR.parent / ".nox")]) + subprocess.run( + ["chown", "-R", "salt:salt", str(CODE_DIR.parent / ".nox")], check=False + ) file_roots = pathlib.Path("/srv/", "salt") pillar_roots = pathlib.Path("/srv/", "pillar") for _dir in [file_roots, pillar_roots]: - subprocess.run(["chown", "-R", "salt:salt", str(_dir)]) + subprocess.run(["chown", "-R", "salt:salt", str(_dir)], check=False) with factory.started(start_timeout=start_timeout): yield factory @@ -504,10 +507,10 @@ def salt_minion(salt_factories, salt_master, install_salt): file_roots = pathlib.Path("/srv/", "salt") pillar_roots = pathlib.Path("/srv/", "pillar") for _dir in [file_roots, pillar_roots]: - subprocess.run(["chown", "-R", "salt:salt", str(_dir)]) + subprocess.run(["chown", "-R", "salt:salt", str(_dir)], check=True) factory.after_terminate( - pytest.helpers.remove_stale_minion_key, salt_master, factory.id + pytest.helpers.remove_stale_minion_key_pkg, salt_master, factory.id ) with factory.started(start_timeout=start_timeout): yield factory diff --git a/pkg/tests/downgrade/__init__.py b/tests/pytests/pkg/downgrade/__init__.py similarity index 100% rename from pkg/tests/downgrade/__init__.py rename to tests/pytests/pkg/downgrade/__init__.py diff --git a/pkg/tests/downgrade/test_salt_downgrade.py b/tests/pytests/pkg/downgrade/test_salt_downgrade.py similarity index 99% rename from pkg/tests/downgrade/test_salt_downgrade.py rename to tests/pytests/pkg/downgrade/test_salt_downgrade.py index 3ba0de05089..f6a8ef17a23 100644 --- a/pkg/tests/downgrade/test_salt_downgrade.py +++ b/tests/pytests/pkg/downgrade/test_salt_downgrade.py @@ -1,5 +1,3 @@ -import shutil - import packaging.version import pytest from pytestskipmarkers.utils import platform diff --git a/pkg/tests/download/__init__.py b/tests/pytests/pkg/download/__init__.py similarity index 100% rename from pkg/tests/download/__init__.py rename to tests/pytests/pkg/download/__init__.py diff --git a/pkg/tests/download/test_pkg_download.py b/tests/pytests/pkg/download/test_pkg_download.py similarity index 98% rename from pkg/tests/download/test_pkg_download.py rename to tests/pytests/pkg/download/test_pkg_download.py index f14114d143e..0fa9089e77d 100644 --- a/pkg/tests/download/test_pkg_download.py +++ b/tests/pytests/pkg/download/test_pkg_download.py @@ -267,7 +267,7 @@ def setup_redhat_family( try: pytest.helpers.download_file(gpg_file_url, downloads_path / gpg_key_name) - except Exception as exc: + except Exception as exc: # pylint: disable=broad-except pytest.fail(f"Failed to download {gpg_file_url}: {exc}") ret = shell.run("rpm", "--import", str(downloads_path / gpg_key_name), check=False) @@ -333,7 +333,7 @@ def setup_debian_family( try: pytest.helpers.download_file(gpg_file_url, downloads_path / gpg_key_name) - except Exception as exc: + except Exception as exc: # pylint: disable=broad-except pytest.fail(f"Failed to download {gpg_file_url}: {exc}") salt_sources_path = downloads_path / "salt.list" @@ -384,7 +384,7 @@ def setup_debian_family( try: pytest.helpers.download_file(onedir_url, onedir_location) - except Exception as exc: + except Exception as exc: # pylint: disable=broad-except pytest.fail(f"Failed to download {onedir_url}: {exc}") shell.run("tar", "xvf", str(onedir_location), "-C", str(onedir_extracted)) @@ -439,7 +439,7 @@ def setup_macos( try: pytest.helpers.download_file(onedir_url, onedir_location) - except Exception as exc: + except Exception as exc: # pylint: disable=broad-except pytest.fail(f"Failed to download {onedir_url}: {exc}") shell.run("tar", "xvf", str(onedir_location), "-C", str(onedir_extracted)) @@ -516,7 +516,7 @@ def setup_windows( try: pytest.helpers.download_file(onedir_url, onedir_location) - except Exception as exc: + except Exception as exc: # pylint: disable=broad-except pytest.fail(f"Failed to download {onedir_url}: {exc}") shell.run("unzip", str(onedir_location), "-d", str(onedir_extracted)) diff --git a/pkg/tests/files/check_imports.sls b/tests/pytests/pkg/files/check_imports.sls similarity index 100% rename from pkg/tests/files/check_imports.sls rename to tests/pytests/pkg/files/check_imports.sls diff --git a/pkg/tests/files/check_python.py b/tests/pytests/pkg/files/check_python.py similarity index 100% rename from pkg/tests/files/check_python.py rename to tests/pytests/pkg/files/check_python.py diff --git a/pkg/tests/integration/__init__.py b/tests/pytests/pkg/integration/__init__.py similarity index 100% rename from pkg/tests/integration/__init__.py rename to tests/pytests/pkg/integration/__init__.py diff --git a/pkg/tests/integration/test_check_imports.py b/tests/pytests/pkg/integration/test_check_imports.py similarity index 100% rename from pkg/tests/integration/test_check_imports.py rename to tests/pytests/pkg/integration/test_check_imports.py diff --git a/pkg/tests/integration/test_clean_zmq_teardown.py b/tests/pytests/pkg/integration/test_clean_zmq_teardown.py similarity index 100% rename from pkg/tests/integration/test_clean_zmq_teardown.py rename to tests/pytests/pkg/integration/test_clean_zmq_teardown.py diff --git a/pkg/tests/integration/test_enabled_disabled.py b/tests/pytests/pkg/integration/test_enabled_disabled.py similarity index 96% rename from pkg/tests/integration/test_enabled_disabled.py rename to tests/pytests/pkg/integration/test_enabled_disabled.py index f5a3f906691..c6f0d75db8f 100644 --- a/pkg/tests/integration/test_enabled_disabled.py +++ b/tests/pytests/pkg/integration/test_enabled_disabled.py @@ -1,6 +1,5 @@ import pytest from pytestskipmarkers.utils import platform -from saltfactories.utils.functional import MultiStateResult @pytest.mark.skip_on_windows(reason="Linux test only") diff --git a/pkg/tests/integration/test_help.py b/tests/pytests/pkg/integration/test_help.py similarity index 94% rename from pkg/tests/integration/test_help.py rename to tests/pytests/pkg/integration/test_help.py index 4bc4a49401c..b5070638fe2 100644 --- a/pkg/tests/integration/test_help.py +++ b/tests/pytests/pkg/integration/test_help.py @@ -1,7 +1,5 @@ import subprocess -from pytestskipmarkers.utils import platform - def test_help(install_salt): """ diff --git a/pkg/tests/integration/test_logrotate_config.py b/tests/pytests/pkg/integration/test_logrotate_config.py similarity index 100% rename from pkg/tests/integration/test_logrotate_config.py rename to tests/pytests/pkg/integration/test_logrotate_config.py diff --git a/pkg/tests/integration/test_multi_minion.py b/tests/pytests/pkg/integration/test_multi_minion.py similarity index 100% rename from pkg/tests/integration/test_multi_minion.py rename to tests/pytests/pkg/integration/test_multi_minion.py diff --git a/pkg/tests/integration/test_pip.py b/tests/pytests/pkg/integration/test_pip.py similarity index 100% rename from pkg/tests/integration/test_pip.py rename to tests/pytests/pkg/integration/test_pip.py diff --git a/pkg/tests/integration/test_pip_upgrade.py b/tests/pytests/pkg/integration/test_pip_upgrade.py similarity index 100% rename from pkg/tests/integration/test_pip_upgrade.py rename to tests/pytests/pkg/integration/test_pip_upgrade.py diff --git a/pkg/tests/integration/test_pkg.py b/tests/pytests/pkg/integration/test_pkg.py similarity index 100% rename from pkg/tests/integration/test_pkg.py rename to tests/pytests/pkg/integration/test_pkg.py diff --git a/pkg/tests/integration/test_python.py b/tests/pytests/pkg/integration/test_python.py similarity index 68% rename from pkg/tests/integration/test_python.py rename to tests/pytests/pkg/integration/test_python.py index a7271994a85..b2eba135681 100644 --- a/pkg/tests/integration/test_python.py +++ b/tests/pytests/pkg/integration/test_python.py @@ -2,7 +2,7 @@ import subprocess import pytest -from tests.support.helpers import TESTS_DIR +from tests.pytests.pkg.support.helpers import TESTS_DIR @pytest.fixture @@ -16,7 +16,13 @@ def python_script_bin(install_salt): @pytest.mark.parametrize("exp_ret,user_arg", [(1, "false"), (0, "true")]) def test_python_script(install_salt, exp_ret, user_arg, python_script_bin): ret = install_salt.proc.run( - *(python_script_bin + [str(TESTS_DIR / "files" / "check_python.py"), user_arg]), + *( + python_script_bin + + [ + str(TESTS_DIR / "pytests" / "pkg" / "files" / "check_python.py"), + user_arg, + ] + ), stdout=subprocess.PIPE, stderr=subprocess.PIPE, check=False, @@ -28,7 +34,13 @@ def test_python_script(install_salt, exp_ret, user_arg, python_script_bin): def test_python_script_exception(install_salt, python_script_bin): ret = install_salt.proc.run( - *(python_script_bin + [str(TESTS_DIR / "files" / "check_python.py"), "raise"]), + *( + python_script_bin + + [ + str(TESTS_DIR / "pytests" / "pkg" / "files" / "check_python.py"), + "raise", + ] + ), stdout=subprocess.PIPE, stderr=subprocess.PIPE, check=False, diff --git a/pkg/tests/integration/test_salt_api.py b/tests/pytests/pkg/integration/test_salt_api.py similarity index 100% rename from pkg/tests/integration/test_salt_api.py rename to tests/pytests/pkg/integration/test_salt_api.py diff --git a/pkg/tests/integration/test_salt_call.py b/tests/pytests/pkg/integration/test_salt_call.py similarity index 100% rename from pkg/tests/integration/test_salt_call.py rename to tests/pytests/pkg/integration/test_salt_call.py diff --git a/pkg/tests/integration/test_salt_exec.py b/tests/pytests/pkg/integration/test_salt_exec.py similarity index 100% rename from pkg/tests/integration/test_salt_exec.py rename to tests/pytests/pkg/integration/test_salt_exec.py diff --git a/pkg/tests/integration/test_salt_grains.py b/tests/pytests/pkg/integration/test_salt_grains.py similarity index 100% rename from pkg/tests/integration/test_salt_grains.py rename to tests/pytests/pkg/integration/test_salt_grains.py diff --git a/pkg/tests/integration/test_salt_key.py b/tests/pytests/pkg/integration/test_salt_key.py similarity index 100% rename from pkg/tests/integration/test_salt_key.py rename to tests/pytests/pkg/integration/test_salt_key.py diff --git a/pkg/tests/integration/test_salt_minion.py b/tests/pytests/pkg/integration/test_salt_minion.py similarity index 100% rename from pkg/tests/integration/test_salt_minion.py rename to tests/pytests/pkg/integration/test_salt_minion.py diff --git a/pkg/tests/integration/test_salt_output.py b/tests/pytests/pkg/integration/test_salt_output.py similarity index 100% rename from pkg/tests/integration/test_salt_output.py rename to tests/pytests/pkg/integration/test_salt_output.py diff --git a/pkg/tests/integration/test_salt_pillar.py b/tests/pytests/pkg/integration/test_salt_pillar.py similarity index 100% rename from pkg/tests/integration/test_salt_pillar.py rename to tests/pytests/pkg/integration/test_salt_pillar.py diff --git a/pkg/tests/integration/test_salt_state_file.py b/tests/pytests/pkg/integration/test_salt_state_file.py similarity index 100% rename from pkg/tests/integration/test_salt_state_file.py rename to tests/pytests/pkg/integration/test_salt_state_file.py diff --git a/pkg/tests/integration/test_salt_ufw.py b/tests/pytests/pkg/integration/test_salt_ufw.py similarity index 100% rename from pkg/tests/integration/test_salt_ufw.py rename to tests/pytests/pkg/integration/test_salt_ufw.py diff --git a/pkg/tests/integration/test_salt_user.py b/tests/pytests/pkg/integration/test_salt_user.py similarity index 98% rename from pkg/tests/integration/test_salt_user.py rename to tests/pytests/pkg/integration/test_salt_user.py index f785c6854d2..466f4d91977 100644 --- a/pkg/tests/integration/test_salt_user.py +++ b/tests/pytests/pkg/integration/test_salt_user.py @@ -90,7 +90,7 @@ def test_salt_user_home(install_salt): home = "" try: home = proc.stdout.decode().split(":")[5] - except: + except Exception: # pylint: disable=broad-except pass assert home == "/opt/saltstack/salt" @@ -106,7 +106,7 @@ def test_salt_user_group(install_salt): for group in proc.stdout.decode().split(" "): if "salt" in group: in_group = True - except: + except Exception: # pylint: disable=broad-except pass assert in_group is True @@ -124,7 +124,7 @@ def test_salt_user_shell(install_salt): try: shell = proc.stdout.decode().split(":")[6].strip() shell_exists = pathlib.Path(shell).exists() - except: + except Exception: # pylint: disable=broad-except pass assert shell_exists is True diff --git a/pkg/tests/integration/test_ssm.py b/tests/pytests/pkg/integration/test_ssm.py similarity index 100% rename from pkg/tests/integration/test_ssm.py rename to tests/pytests/pkg/integration/test_ssm.py diff --git a/pkg/tests/integration/test_systemd_config.py b/tests/pytests/pkg/integration/test_systemd_config.py similarity index 100% rename from pkg/tests/integration/test_systemd_config.py rename to tests/pytests/pkg/integration/test_systemd_config.py diff --git a/pkg/tests/integration/test_version.py b/tests/pytests/pkg/integration/test_version.py similarity index 99% rename from pkg/tests/integration/test_version.py rename to tests/pytests/pkg/integration/test_version.py index d905155d60f..fb122581554 100644 --- a/pkg/tests/integration/test_version.py +++ b/tests/pytests/pkg/integration/test_version.py @@ -32,6 +32,7 @@ def test_salt_versions_report_master(install_salt): ret.stdout.matcher.fnmatch_lines(["*Salt Version:*"]) py_version = subprocess.run( [str(python_bin), "--version"], + check=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, ).stdout diff --git a/tests/pkg/rpm/salt.spec b/tests/pytests/pkg/rpm/salt.spec similarity index 100% rename from tests/pkg/rpm/salt.spec rename to tests/pytests/pkg/rpm/salt.spec diff --git a/pkg/tests/support/__init__.py b/tests/pytests/pkg/support/__init__.py similarity index 100% rename from pkg/tests/support/__init__.py rename to tests/pytests/pkg/support/__init__.py diff --git a/pkg/tests/support/coverage/sitecustomize.py b/tests/pytests/pkg/support/coverage/sitecustomize.py similarity index 100% rename from pkg/tests/support/coverage/sitecustomize.py rename to tests/pytests/pkg/support/coverage/sitecustomize.py diff --git a/pkg/tests/support/helpers.py b/tests/pytests/pkg/support/helpers.py similarity index 96% rename from pkg/tests/support/helpers.py rename to tests/pytests/pkg/support/helpers.py index e835223cf18..e6d3765744a 100644 --- a/pkg/tests/support/helpers.py +++ b/tests/pytests/pkg/support/helpers.py @@ -16,6 +16,7 @@ import packaging import psutil import pytest import requests +import saltfactories.cli from pytestshellutils.shell import DaemonImpl, Subprocess from pytestshellutils.utils.processes import ( ProcessResult, @@ -24,10 +25,12 @@ from pytestshellutils.utils.processes import ( ) from pytestskipmarkers.utils import platform from saltfactories.bases import SystemdSaltDaemonImpl -from saltfactories.cli import call, key, salt +from saltfactories.cli import call, key from saltfactories.daemons import api, master, minion from saltfactories.utils import cli_scripts +import salt.utils.files + try: import crypt @@ -41,9 +44,9 @@ try: except ImportError: HAS_PWD = False -TESTS_DIR = pathlib.Path(__file__).resolve().parent.parent +TESTS_DIR = pathlib.Path(__file__).resolve().parent.parent.parent.parent CODE_DIR = TESTS_DIR.parent -ARTIFACTS_DIR = CODE_DIR / "artifacts" +ARTIFACTS_DIR = CODE_DIR / "artifacts" / "pkg" log = logging.getLogger(__name__) @@ -420,7 +423,7 @@ class SaltPkgInstall: # expects unless we do it via a batch file batch_file = pathlib.Path(pkg).parent / "install_msi.cmd" batch_content = f'msiexec /qn /i "{str(pkg)}" START_MINION=""\n' - with open(batch_file, "w") as fp: + with salt.utils.files.fopen(batch_file, "w") as fp: fp.write(batch_content) # Now run the batch file ret = self.proc.run("cmd.exe", "/c", str(batch_file)) @@ -618,7 +621,7 @@ class SaltPkgInstall: f"https://repo.saltproject.io/{root_url}{distro_name}/{self.distro_version}/{arch}/{major_ver}/{gpg_key}", f"/etc/apt/keyrings/{gpg_dest}", ) - with open( + with salt.utils.files.fopen( pathlib.Path("/etc", "apt", "sources.list.d", "salt.list"), "w" ) as fp: fp.write( @@ -665,8 +668,8 @@ class SaltPkgInstall: # Let's not check the returncode if this is the case if not ( downgrade - and not packaging.version.parse(self.prev_version) - >= packaging.version.parse("3006.0") + and packaging.version.parse(self.prev_version) + < packaging.version.parse("3006.0") ): self._check_retcode(ret) if downgrade: @@ -710,7 +713,7 @@ class SaltPkgInstall: # expects unless we do it via a batch file batch_file = pkg_path.parent / "install_msi.cmd" batch_content = f'msiexec /qn /i {str(pkg_path)} START_MINION=""' - with open(batch_file, "w") as fp: + with salt.utils.files.fopen(batch_file, "w") as fp: fp.write(batch_content) # Now run the batch file ret = self.proc.run("cmd.exe", "/c", str(batch_file)) @@ -814,40 +817,6 @@ class SaltPkgInstall: ret = self.proc.run(self.pkg_mngr, self.rm_pkg, "-y", *self.salt_pkgs) self._check_retcode(ret) - def assert_uninstalled(self): - """ - Assert that the paths in /opt/saltstack/ were correctly - removed or not removed - """ - return - if platform.is_windows(): - # I'm not sure where the /opt/saltstack path is coming from - # This is the path we're using to test windows - opt_path = pathlib.Path(os.getenv("LocalAppData"), "salt", "pypath") - else: - opt_path = pathlib.Path(os.sep, "opt", "saltstack", "salt", "pypath") - if not opt_path.exists(): - if platform.is_windows(): - assert not opt_path.parent.exists() - else: - assert not opt_path.parent.parent.exists() - else: - opt_path_contents = list(opt_path.rglob("*")) - if not opt_path_contents: - pytest.fail( - f"The path '{opt_path}' exists but there are no files in it." - ) - else: - for path in list(opt_path_contents): - if path.name in (".installs.json", "__pycache__"): - opt_path_contents.remove(path) - if opt_path_contents: - pytest.fail( - "The test left some files behind: {}".format( - ", ".join([str(p) for p in opt_path_contents]) - ) - ) - def write_launchd_conf(self, service): service_name = f"com.saltstack.salt.{service}" ret = self.proc.run("launchctl", "list", service_name) @@ -953,7 +922,6 @@ class SaltPkgInstall: def __exit__(self, *_): if not self.no_uninstall: self.uninstall() - self.assert_uninstalled() class PkgSystemdSaltDaemonImpl(SystemdSaltDaemonImpl): @@ -1335,17 +1303,21 @@ class SaltMaster(DaemonPkgMixin, master.SaltMaster): factory_class=SaltApi, salt_pkg_install=self.salt_pkg_install, **kwargs ) - def salt_key_cli(self, **factory_class_kwargs): + def salt_key_cli(self, factory_class=None, **factory_class_kwargs): + if not factory_class: + factory_class = SaltKey + factory_class_kwargs["salt_pkg_install"] = self.salt_pkg_install return super().salt_key_cli( - factory_class=SaltKey, - salt_pkg_install=self.salt_pkg_install, + factory_class=factory_class, **factory_class_kwargs, ) - def salt_cli(self, **factory_class_kwargs): + def salt_cli(self, factory_class=None, **factory_class_kwargs): + if not factory_class: + factory_class = SaltCli + factory_class_kwargs["salt_pkg_install"] = self.salt_pkg_install return super().salt_cli( - factory_class=SaltCli, - salt_pkg_install=self.salt_pkg_install, + factory_class=factory_class, **factory_class_kwargs, ) @@ -1403,10 +1375,12 @@ class SaltMinion(DaemonPkgMixin, minion.SaltMinion): "salt-minion", self.salt_pkg_install.binary_paths["minion"] ) - def salt_call_cli(self, **factory_class_kwargs): + def salt_call_cli(self, factory_class=None, **factory_class_kwargs): + if not factory_class: + factory_class = SaltCall + factory_class_kwargs["salt_pkg_install"] = self.salt_pkg_install return super().salt_call_cli( - factory_class=SaltCall, - salt_pkg_install=self.salt_pkg_install, + factory_class=factory_class, **factory_class_kwargs, ) @@ -1453,14 +1427,14 @@ class SaltCall(PkgMixin, call.SaltCall): @attr.s(kw_only=True, slots=True) -class SaltCli(PkgMixin, salt.SaltCli): +class SaltCli(PkgMixin, saltfactories.cli.salt.SaltCli): """ Subclassed just to tweak the binary paths if needed. """ def __attrs_post_init__(self): self.script_name = "salt" - salt.SaltCli.__attrs_post_init__(self) + saltfactories.cli.salt.SaltCli.__attrs_post_init__(self) @attr.s(kw_only=True, slots=True) @@ -1586,7 +1560,7 @@ class ApiRequest: @pytest.helpers.register -def remove_stale_minion_key(master, minion_id): +def remove_stale_minion_key_pkg(master, minion_id): key_path = os.path.join(master.config["pki_dir"], "minions", minion_id) if os.path.exists(key_path): os.unlink(key_path) @@ -1624,7 +1598,7 @@ def download_file(url, dest, auth=None): # NOTE the stream=True parameter below with requests.get(url, stream=True, auth=auth) as r: r.raise_for_status() - with open(dest, "wb") as f: + with salt.utils.files.fopen(dest, "wb") as f: for chunk in r.iter_content(chunk_size=8192): if chunk: f.write(chunk) diff --git a/pkg/tests/support/paths.py b/tests/pytests/pkg/support/paths.py similarity index 100% rename from pkg/tests/support/paths.py rename to tests/pytests/pkg/support/paths.py diff --git a/pkg/tests/support/runtests.py b/tests/pytests/pkg/support/runtests.py similarity index 100% rename from pkg/tests/support/runtests.py rename to tests/pytests/pkg/support/runtests.py diff --git a/pkg/tests/support/sminion.py b/tests/pytests/pkg/support/sminion.py similarity index 100% rename from pkg/tests/support/sminion.py rename to tests/pytests/pkg/support/sminion.py diff --git a/pkg/tests/upgrade/__init__.py b/tests/pytests/pkg/upgrade/__init__.py similarity index 100% rename from pkg/tests/upgrade/__init__.py rename to tests/pytests/pkg/upgrade/__init__.py diff --git a/pkg/tests/upgrade/test_salt_upgrade.py b/tests/pytests/pkg/upgrade/test_salt_upgrade.py similarity index 100% rename from pkg/tests/upgrade/test_salt_upgrade.py rename to tests/pytests/pkg/upgrade/test_salt_upgrade.py diff --git a/tools/vm.py b/tools/vm.py index 9fb48ebcc36..00c5c2fcaed 100644 --- a/tools/vm.py +++ b/tools/vm.py @@ -1315,7 +1315,7 @@ class VM: "--include", "artifacts/salt", "--include", - "pkg/artifacts/*", + "artifacts/pkg/*", # But we also want to exclude all other entries under artifacts/ "--exclude", "artifacts/*", From 6575f9b627eb2840774777249f56570ed84481fa Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Wed, 6 Dec 2023 11:45:32 +0000 Subject: [PATCH 025/146] Fix variable name Signed-off-by: Pedro Algarvio --- tests/pytests/pkg/integration/test_salt_user.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/pytests/pkg/integration/test_salt_user.py b/tests/pytests/pkg/integration/test_salt_user.py index 466f4d91977..de92847cdfc 100644 --- a/tests/pytests/pkg/integration/test_salt_user.py +++ b/tests/pytests/pkg/integration/test_salt_user.py @@ -252,7 +252,8 @@ def test_paths_log_rotation( f"cp -a {_path}/* {str(temp_dir_path_4)}/" ) elif bkup_count > 5: - assert bkupcount < bkup_count_max # force assertion + # force assertion + assert bkup_count < bkup_count_max ret = salt_call_cli.run( "--local", "cmd.run", cmd_to_run @@ -349,7 +350,8 @@ def test_paths_log_rotation( # use --update since /opt/saltstack/salt and would get SIGSEGV since mucking with running code cmd_to_run = f"cp -a --update --force {str(temp_dir_path_4)}/* {_path}/" elif bkup_count > 5: - assert bkupcount < bkup_count_max # force assertion + # force assertion + assert bkup_count < bkup_count_max ret = salt_call_cli.run( "--local", "cmd.run", cmd_to_run From 2c389db4f4545d720ab430eed81d2f214d4878ab Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Wed, 6 Dec 2023 11:55:46 +0000 Subject: [PATCH 026/146] Remove some duplicate fixtures Signed-off-by: Pedro Algarvio --- tests/pytests/pkg/conftest.py | 13 +---------- tests/pytests/pkg/support/helpers.py | 34 ---------------------------- tests/support/pytest/helpers.py | 25 ++++++++++++++++++++ 3 files changed, 26 insertions(+), 46 deletions(-) diff --git a/tests/pytests/pkg/conftest.py b/tests/pytests/pkg/conftest.py index 3a64757c63e..f9b849f9ab6 100644 --- a/tests/pytests/pkg/conftest.py +++ b/tests/pytests/pkg/conftest.py @@ -21,7 +21,6 @@ from tests.pytests.pkg.support.helpers import ( SaltPkgInstall, TestUser, ) -from tests.support.sminion import create_sminion log = logging.getLogger(__name__) @@ -37,16 +36,6 @@ def version(install_salt): return install_salt.version -@pytest.fixture(scope="session") -def sminion(): - return create_sminion() - - -@pytest.fixture(scope="session") -def grains(sminion): - return sminion.opts["grains"].copy() - - @pytest.fixture(scope="session", autouse=True) def _system_up_to_date( grains, @@ -510,7 +499,7 @@ def salt_minion(salt_factories, salt_master, install_salt): subprocess.run(["chown", "-R", "salt:salt", str(_dir)], check=True) factory.after_terminate( - pytest.helpers.remove_stale_minion_key_pkg, salt_master, factory.id + pytest.helpers.remove_stale_minion_key, salt_master, factory.id ) with factory.started(start_timeout=start_timeout): yield factory diff --git a/tests/pytests/pkg/support/helpers.py b/tests/pytests/pkg/support/helpers.py index e6d3765744a..50b79528ed0 100644 --- a/tests/pytests/pkg/support/helpers.py +++ b/tests/pytests/pkg/support/helpers.py @@ -1559,40 +1559,6 @@ class ApiRequest: self.session.__exit__(*args) -@pytest.helpers.register -def remove_stale_minion_key_pkg(master, minion_id): - key_path = os.path.join(master.config["pki_dir"], "minions", minion_id) - if os.path.exists(key_path): - os.unlink(key_path) - else: - log.debug("The minion(id=%r) key was not found at %s", minion_id, key_path) - - -@pytest.helpers.register -def remove_stale_master_key(master): - keys_path = os.path.join(master.config["pki_dir"], "master") - for key_name in ("master.pem", "master.pub"): - key_path = os.path.join(keys_path, key_name) - if os.path.exists(key_path): - os.unlink(key_path) - else: - log.debug( - "The master(id=%r) %s key was not found at %s", - master.id, - key_name, - key_path, - ) - key_path = os.path.join(master.config["pki_dir"], "minion", "minion_master.pub") - if os.path.exists(key_path): - os.unlink(key_path) - else: - log.debug( - "The master(id=%r) minion_master.pub key was not found at %s", - master.id, - key_path, - ) - - @pytest.helpers.register def download_file(url, dest, auth=None): # NOTE the stream=True parameter below diff --git a/tests/support/pytest/helpers.py b/tests/support/pytest/helpers.py index 441e4ea3af9..fa12784c04e 100644 --- a/tests/support/pytest/helpers.py +++ b/tests/support/pytest/helpers.py @@ -174,6 +174,31 @@ def remove_stale_minion_key(master, minion_id): log.debug("The minion(id=%r) key was not found at %s", minion_id, key_path) +@pytest.helpers.register +def remove_stale_master_key(master): + keys_path = os.path.join(master.config["pki_dir"], "master") + for key_name in ("master.pem", "master.pub"): + key_path = os.path.join(keys_path, key_name) + if os.path.exists(key_path): + os.unlink(key_path) + else: + log.debug( + "The master(id=%r) %s key was not found at %s", + master.id, + key_name, + key_path, + ) + key_path = os.path.join(master.config["pki_dir"], "minion", "minion_master.pub") + if os.path.exists(key_path): + os.unlink(key_path) + else: + log.debug( + "The master(id=%r) minion_master.pub key was not found at %s", + master.id, + key_path, + ) + + @pytest.helpers.register def remove_stale_proxy_minion_cache_file(proxy_minion, minion_id=None): cachefile = os.path.join( From db0d01dbd01a3eb34ce4f47ebb1e4c94c395f209 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Wed, 6 Dec 2023 12:29:29 +0000 Subject: [PATCH 027/146] Remove unused import Signed-off-by: Pedro Algarvio --- tests/pytests/pkg/integration/test_version.py | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/pytests/pkg/integration/test_version.py b/tests/pytests/pkg/integration/test_version.py index fb122581554..121aa6fd550 100644 --- a/tests/pytests/pkg/integration/test_version.py +++ b/tests/pytests/pkg/integration/test_version.py @@ -1,6 +1,5 @@ import os.path import pathlib -import re import subprocess import pytest From 59a045b3af4ba965caca41c53574bf7a893fda2c Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Wed, 6 Dec 2023 12:39:40 +0000 Subject: [PATCH 028/146] Address some lint issues Signed-off-by: Pedro Algarvio --- tests/pytests/pkg/support/helpers.py | 47 +++++++++++++++------------- 1 file changed, 25 insertions(+), 22 deletions(-) diff --git a/tests/pytests/pkg/support/helpers.py b/tests/pytests/pkg/support/helpers.py index 50b79528ed0..560e3c3cf00 100644 --- a/tests/pytests/pkg/support/helpers.py +++ b/tests/pytests/pkg/support/helpers.py @@ -925,11 +925,14 @@ class SaltPkgInstall: class PkgSystemdSaltDaemonImpl(SystemdSaltDaemonImpl): + # pylint: disable=access-member-before-definition def get_service_name(self): if self._service_name is None: self._service_name = self.factory.script_name return self._service_name + # pylint: enable=access-member-before-definition + @attr.s(kw_only=True) class PkgLaunchdSaltDaemonImpl(PkgSystemdSaltDaemonImpl): @@ -1008,12 +1011,12 @@ class PkgLaunchdSaltDaemonImpl(PkgSystemdSaltDaemonImpl): # We completely override the parent class method because we're not using # the self._terminal property, it's a launchd service if self._process is None: # pragma: no cover + # pylint: disable=access-member-before-definition if TYPE_CHECKING: # Make mypy happy assert self._terminal_result - return ( - self._terminal_result - ) # pylint: disable=access-member-before-definition + return self._terminal_result + # pylint: enable=access-member-before-definition atexit.unregister(self.terminate) log.info("Stopping %s", self.factory) @@ -1021,12 +1024,10 @@ class PkgLaunchdSaltDaemonImpl(PkgSystemdSaltDaemonImpl): # Collect any child processes information before terminating the process with contextlib.suppress(psutil.NoSuchProcess): for child in psutil.Process(pid).children(recursive=True): - if ( - child not in self._children - ): # pylint: disable=access-member-before-definition - self._children.append( - child - ) # pylint: disable=access-member-before-definition + # pylint: disable=access-member-before-definition + if child not in self._children: + self._children.append(child) + # pylint: enable=access-member-before-definition if self._process.is_running(): # pragma: no cover cmdline = _get_cmdline(self._process) @@ -1065,10 +1066,12 @@ class PkgLaunchdSaltDaemonImpl(PkgSystemdSaltDaemonImpl): slow_stop=self.factory.slow_stop, ) + # pylint: disable=access-member-before-definition if self._terminal_stdout is not None: - self._terminal_stdout.close() # pylint: disable=access-member-before-definition + self._terminal_stdout.close() if self._terminal_stderr is not None: - self._terminal_stderr.close() # pylint: disable=access-member-before-definition + self._terminal_stderr.close() + # pylint: enable=access-member-before-definition stdout = stderr = "" try: self._terminal_result = ProcessResult( @@ -1143,12 +1146,12 @@ class PkgSsmSaltDaemonImpl(PkgSystemdSaltDaemonImpl): # We completely override the parent class method because we're not using the # self._terminal property, it's a systemd service if self._process is None: # pragma: no cover + # pylint: disable=access-member-before-definition if TYPE_CHECKING: # Make mypy happy assert self._terminal_result - return ( - self._terminal_result - ) # pylint: disable=access-member-before-definition + return self._terminal_result + # pylint: enable=access-member-before-definition atexit.unregister(self.terminate) log.info("Stopping %s", self.factory) @@ -1156,12 +1159,10 @@ class PkgSsmSaltDaemonImpl(PkgSystemdSaltDaemonImpl): # Collect any child processes information before terminating the process with contextlib.suppress(psutil.NoSuchProcess): for child in psutil.Process(pid).children(recursive=True): - if ( - child not in self._children - ): # pylint: disable=access-member-before-definition - self._children.append( - child - ) # pylint: disable=access-member-before-definition + # pylint: disable=access-member-before-definition + if child not in self._children: + self._children.append(child) + # pylint: enable=access-member-before-definition if self._process.is_running(): # pragma: no cover cmdline = _get_cmdline(self._process) @@ -1201,10 +1202,12 @@ class PkgSsmSaltDaemonImpl(PkgSystemdSaltDaemonImpl): slow_stop=self.factory.slow_stop, ) + # pylint: disable=access-member-before-definition if self._terminal_stdout is not None: - self._terminal_stdout.close() # pylint: disable=access-member-before-definition + self._terminal_stdout.close() if self._terminal_stderr is not None: - self._terminal_stderr.close() # pylint: disable=access-member-before-definition + self._terminal_stderr.close() + # pylint: enable=access-member-before-definition stdout = stderr = "" try: self._terminal_result = ProcessResult( From 689696858bddaefc655d1d94cd81e218662bef12 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Wed, 6 Dec 2023 13:23:36 +0000 Subject: [PATCH 029/146] Reduce duplication, de-clutter, simplify Signed-off-by: Pedro Algarvio --- tests/pytests/pkg/conftest.py | 35 +-- tests/pytests/pkg/files/check_imports.sls | 53 ---- tests/pytests/pkg/files/check_python.py | 13 - .../pkg/integration/test_check_imports.py | 70 ++++- tests/pytests/pkg/integration/test_pip.py | 31 ++- tests/pytests/pkg/integration/test_python.py | 38 ++- .../pytests/pkg/integration/test_salt_call.py | 10 +- .../pytests/pkg/integration/test_salt_user.py | 12 +- tests/pytests/pkg/support/__init__.py | 0 .../pkg/support/coverage/sitecustomize.py | 11 - tests/pytests/pkg/support/paths.py | 102 ------- tests/pytests/pkg/support/runtests.py | 209 -------------- tests/pytests/pkg/support/sminion.py | 256 ------------------ .../pkg/support/helpers.py => support/pkg.py} | 99 +------ 14 files changed, 162 insertions(+), 777 deletions(-) delete mode 100644 tests/pytests/pkg/files/check_imports.sls delete mode 100644 tests/pytests/pkg/files/check_python.py delete mode 100644 tests/pytests/pkg/support/__init__.py delete mode 100644 tests/pytests/pkg/support/coverage/sitecustomize.py delete mode 100644 tests/pytests/pkg/support/paths.py delete mode 100644 tests/pytests/pkg/support/runtests.py delete mode 100644 tests/pytests/pkg/support/sminion.py rename tests/{pytests/pkg/support/helpers.py => support/pkg.py} (95%) diff --git a/tests/pytests/pkg/conftest.py b/tests/pytests/pkg/conftest.py index f9b849f9ab6..c86981d1ef9 100644 --- a/tests/pytests/pkg/conftest.py +++ b/tests/pytests/pkg/conftest.py @@ -12,15 +12,8 @@ from saltfactories.utils import random_string from saltfactories.utils.tempfiles import SaltPillarTree, SaltStateTree import salt.config -from tests.pytests.pkg.support.helpers import ( - CODE_DIR, - TESTS_DIR, - ApiRequest, - SaltMaster, - SaltMasterWindows, - SaltPkgInstall, - TestUser, -) +from tests.conftest import CODE_DIR, TESTS_DIR +from tests.support.pkg import ApiRequest, SaltMaster, SaltMasterWindows, SaltPkgInstall log = logging.getLogger(__name__) @@ -303,7 +296,9 @@ def sls(state_tree): @pytest.fixture(scope="session") -def salt_master(salt_factories, install_salt, state_tree, pillar_tree): +def salt_master( + salt_factories, install_salt, state_tree, pillar_tree, pkg_tests_account +): """ Start up a master """ @@ -327,7 +322,13 @@ def salt_master(salt_factories, install_salt, state_tree, pillar_tree): "pillar_roots": pillar_tree.as_dict(), "rest_cherrypy": {"port": 8000, "disable_ssl": True}, "netapi_enable_clients": ["local"], - "external_auth": {"auto": {"saltdev": [".*"]}}, + "external_auth": { + "auto": { + pkg_tests_account.username: [ + ".*", + ], + }, + }, "fips_mode": FIPS_TESTRUN, "open_mode": True, } @@ -520,9 +521,9 @@ def salt_call_cli(salt_minion): return salt_minion.salt_call_cli() -@pytest.fixture(scope="module") -def test_account(salt_call_cli): - with TestUser(salt_call_cli=salt_call_cli) as account: +@pytest.fixture(scope="session") +def pkg_tests_account(): + with pytest.helpers.create_account() as account: yield account @@ -557,6 +558,8 @@ def salt_api(salt_master, install_salt, extras_pypath): @pytest.fixture(scope="module") -def api_request(test_account, salt_api): - with ApiRequest(salt_api=salt_api, test_account=test_account) as session: +def api_request(pkg_tests_account, salt_api): + with ApiRequest( + port=salt_api.config["rest_cherrypy"]["port"], account=pkg_tests_account + ) as session: yield session diff --git a/tests/pytests/pkg/files/check_imports.sls b/tests/pytests/pkg/files/check_imports.sls deleted file mode 100644 index 0dde9d6ad33..00000000000 --- a/tests/pytests/pkg/files/check_imports.sls +++ /dev/null @@ -1,53 +0,0 @@ -#!py -import importlib - -def run(): - config = {} - for test_import in [ - 'templates', 'platform', 'cli', 'executors', 'config', 'wheel', 'netapi', - 'cache', 'proxy', 'transport', 'metaproxy', 'modules', 'tokens', 'matchers', - 'acl', 'auth', 'log', 'engines', 'client', 'returners', 'runners', 'tops', - 'output', 'daemons', 'thorium', 'renderers', 'states', 'cloud', 'roster', - 'beacons', 'pillar', 'spm', 'utils', 'sdb', 'fileserver', 'defaults', - 'ext', 'queues', 'grains', 'serializers' - ]: - try: - import_name = "salt.{}".format(test_import) - importlib.import_module(import_name) - config['test_imports_succeeded'] = { - 'test.succeed_without_changes': [ - { - 'name': import_name - }, - ], - } - except ModuleNotFoundError as err: - config['test_imports_failed'] = { - 'test.fail_without_changes': [ - { - 'name': import_name, - 'comment': "The imports test failed. The error was: {}".format(err) - }, - ], - } - - for stdlib_import in ["telnetlib"]: - try: - importlib.import_module(stdlib_import) - config['stdlib_imports_succeeded'] = { - 'test.succeed_without_changes': [ - { - 'name': stdlib_import - }, - ], - } - except ModuleNotFoundError as err: - config['stdlib_imports_failed'] = { - 'test.fail_without_changes': [ - { - 'name': stdlib_import, - 'comment': "The stdlib imports test failed. The error was: {}".format(err) - }, - ], - } - return config diff --git a/tests/pytests/pkg/files/check_python.py b/tests/pytests/pkg/files/check_python.py deleted file mode 100644 index f1d46b76df7..00000000000 --- a/tests/pytests/pkg/files/check_python.py +++ /dev/null @@ -1,13 +0,0 @@ -import sys - -import salt.utils.data - -user_arg = sys.argv - -if user_arg[1] == "raise": - raise Exception("test") - -if salt.utils.data.is_true(user_arg[1]): - sys.exit(0) -else: - sys.exit(1) diff --git a/tests/pytests/pkg/integration/test_check_imports.py b/tests/pytests/pkg/integration/test_check_imports.py index 9a0f1c5fbe4..1cd14573a97 100644 --- a/tests/pytests/pkg/integration/test_check_imports.py +++ b/tests/pytests/pkg/integration/test_check_imports.py @@ -10,11 +10,77 @@ pytestmark = [ log = logging.getLogger(__name__) -def test_check_imports(salt_cli, salt_minion): +CHECK_IMPORTS_SLS_CONTENTS = """ +#!py +import importlib + +def run(): + config = {} + for test_import in [ + 'templates', 'platform', 'cli', 'executors', 'config', 'wheel', 'netapi', + 'cache', 'proxy', 'transport', 'metaproxy', 'modules', 'tokens', 'matchers', + 'acl', 'auth', 'log', 'engines', 'client', 'returners', 'runners', 'tops', + 'output', 'daemons', 'thorium', 'renderers', 'states', 'cloud', 'roster', + 'beacons', 'pillar', 'spm', 'utils', 'sdb', 'fileserver', 'defaults', + 'ext', 'queues', 'grains', 'serializers' + ]: + try: + import_name = "salt.{}".format(test_import) + importlib.import_module(import_name) + config['test_imports_succeeded'] = { + 'test.succeed_without_changes': [ + { + 'name': import_name + }, + ], + } + except ModuleNotFoundError as err: + config['test_imports_failed'] = { + 'test.fail_without_changes': [ + { + 'name': import_name, + 'comment': "The imports test failed. The error was: {}".format(err) + }, + ], + } + + for stdlib_import in ["telnetlib"]: + try: + importlib.import_module(stdlib_import) + config['stdlib_imports_succeeded'] = { + 'test.succeed_without_changes': [ + { + 'name': stdlib_import + }, + ], + } + except ModuleNotFoundError as err: + config['stdlib_imports_failed'] = { + 'test.fail_without_changes': [ + { + 'name': stdlib_import, + 'comment': "The stdlib imports test failed. The error was: {}".format(err) + }, + ], + } + return config +""" + + +@pytest.fixture +def state_name(salt_master): + name = "check-imports" + with salt_master.state_tree.base.temp_file( + f"{name}.sls", CHECK_IMPORTS_SLS_CONTENTS + ): + yield name + + +def test_check_imports(salt_cli, salt_minion, state_name): """ Test imports """ - ret = salt_cli.run("state.sls", "check_imports", minion_tgt=salt_minion.id) + ret = salt_cli.run("state.sls", state_name, minion_tgt=salt_minion.id) assert ret.returncode == 0 assert ret.data result = MultiStateResult(raw=ret.data) diff --git a/tests/pytests/pkg/integration/test_pip.py b/tests/pytests/pkg/integration/test_pip.py index a55d8fdd8bb..b10adb3c105 100644 --- a/tests/pytests/pkg/integration/test_pip.py +++ b/tests/pytests/pkg/integration/test_pip.py @@ -42,6 +42,14 @@ def wipe_pydeps(shell, install_salt, extras_pypath): shutil.rmtree(dirname, ignore_errors=True) +@pytest.fixture +def pkg_tests_account_environ(pkg_tests_account): + environ = os.environ.copy() + environ["LOGNAME"] = environ["USER"] = pkg_tests_account.username + environ["HOME"] = pkg_tests_account.info.home + return environ + + def test_pip_install(salt_call_cli, install_salt, shell): """ Test pip.install and ensure module can use installed library @@ -98,18 +106,25 @@ def test_pip_install_extras(shell, install_salt, extras_pypath_bin): assert ret.returncode == 0 -def demote(user_uid, user_gid): +def demote(account): def result(): # os.setgid does not remove group membership, so we remove them here so they are REALLY non-root os.setgroups([]) - os.setgid(user_gid) - os.setuid(user_uid) + os.setgid(account.info.gid) + os.setuid(account.info.uid) return result @pytest.mark.skip_on_windows(reason="We can't easily demote users on Windows") -def test_pip_non_root(shell, install_salt, test_account, extras_pypath_bin, pypath): +def test_pip_non_root( + shell, + install_salt, + pkg_tests_account, + extras_pypath_bin, + pypath, + pkg_tests_account_environ, +): if install_salt.classic: pytest.skip("We can install non-root for classic packages") check_path = extras_pypath_bin / "pep8" @@ -118,8 +133,8 @@ def test_pip_non_root(shell, install_salt, test_account, extras_pypath_bin, pypa # We should be able to issue a --help without being root ret = subprocess.run( install_salt.binary_paths["salt"] + ["--help"], - preexec_fn=demote(test_account.uid, test_account.gid), - env=test_account.env, + preexec_fn=demote(pkg_tests_account), + env=pkg_tests_account_environ, stdout=subprocess.PIPE, stderr=subprocess.PIPE, check=False, @@ -141,8 +156,8 @@ def test_pip_non_root(shell, install_salt, test_account, extras_pypath_bin, pypa # Now, we should still not be able to install as non-root ret = subprocess.run( install_salt.binary_paths["pip"] + ["install", "pep8"], - preexec_fn=demote(test_account.uid, test_account.gid), - env=test_account.env, + preexec_fn=demote(pkg_tests_account), + env=pkg_tests_account_environ, stdout=subprocess.PIPE, stderr=subprocess.PIPE, check=False, diff --git a/tests/pytests/pkg/integration/test_python.py b/tests/pytests/pkg/integration/test_python.py index b2eba135681..9b16cea3796 100644 --- a/tests/pytests/pkg/integration/test_python.py +++ b/tests/pytests/pkg/integration/test_python.py @@ -1,9 +1,8 @@ import subprocess +import textwrap import pytest -from tests.pytests.pkg.support.helpers import TESTS_DIR - @pytest.fixture def python_script_bin(install_salt): @@ -13,13 +12,40 @@ def python_script_bin(install_salt): return install_salt.binary_paths["python"] +@pytest.fixture +def check_python_file(tmp_path): + script_path = tmp_path / "check_python.py" + script_path.write_text( + textwrap.dedent( + """ + import sys + + import salt.utils.data + + user_arg = sys.argv + + if user_arg[1] == "raise": + raise Exception("test") + + if salt.utils.data.is_true(user_arg[1]): + sys.exit(0) + else: + sys.exit(1) + """ + ) + ) + return script_path + + @pytest.mark.parametrize("exp_ret,user_arg", [(1, "false"), (0, "true")]) -def test_python_script(install_salt, exp_ret, user_arg, python_script_bin): +def test_python_script( + install_salt, exp_ret, user_arg, python_script_bin, check_python_file +): ret = install_salt.proc.run( *( python_script_bin + [ - str(TESTS_DIR / "pytests" / "pkg" / "files" / "check_python.py"), + str(check_python_file), user_arg, ] ), @@ -32,12 +58,12 @@ def test_python_script(install_salt, exp_ret, user_arg, python_script_bin): assert ret.returncode == exp_ret, ret.stderr -def test_python_script_exception(install_salt, python_script_bin): +def test_python_script_exception(install_salt, python_script_bin, check_python_file): ret = install_salt.proc.run( *( python_script_bin + [ - str(TESTS_DIR / "pytests" / "pkg" / "files" / "check_python.py"), + str(check_python_file), "raise", ] ), diff --git a/tests/pytests/pkg/integration/test_salt_call.py b/tests/pytests/pkg/integration/test_salt_call.py index da7834b70b1..6be81847972 100644 --- a/tests/pytests/pkg/integration/test_salt_call.py +++ b/tests/pytests/pkg/integration/test_salt_call.py @@ -49,11 +49,13 @@ def test_salt_call_local_sys_doc_aliases(salt_call_cli): @pytest.mark.skip_on_windows() -def test_salt_call_cmd_run_id_runas(salt_call_cli, test_account, caplog): +def test_salt_call_cmd_run_id_runas(salt_call_cli, pkg_tests_account, caplog): """ Test salt-call --local cmd_run id with runas """ - ret = salt_call_cli.run("--local", "cmd.run", "id", runas=test_account.username) + ret = salt_call_cli.run( + "--local", "cmd.run", "id", runas=pkg_tests_account.username + ) assert "Environment could not be retrieved for user" not in caplog.text - assert str(test_account.uid) in ret.stdout - assert str(test_account.gid) in ret.stdout + assert str(pkg_tests_account.info.uid) in ret.stdout + assert str(pkg_tests_account.info.gid) in ret.stdout diff --git a/tests/pytests/pkg/integration/test_salt_user.py b/tests/pytests/pkg/integration/test_salt_user.py index de92847cdfc..4538ce79adb 100644 --- a/tests/pytests/pkg/integration/test_salt_user.py +++ b/tests/pytests/pkg/integration/test_salt_user.py @@ -175,7 +175,7 @@ def test_pkg_paths( @pytest.mark.skip_if_binaries_missing("logrotate") def test_paths_log_rotation( - salt_master, salt_minion, salt_call_cli, install_salt, test_account + salt_master, salt_minion, salt_call_cli, install_salt, pkg_tests_account ): """ Test the correct ownership is assigned when log rotation occurs @@ -267,7 +267,7 @@ def test_paths_log_rotation( "file.replace", f"{install_salt.conf_dir}/master", "user: salt", - f"user: {test_account.username}", + f"user: {pkg_tests_account.username}", "flags=['IGNORECASE']", "append_if_not_found=True", ) @@ -276,7 +276,7 @@ def test_paths_log_rotation( # change ownership of appropriate paths to user for _path in log_pkg_paths: chg_ownership_cmd = ( - f"chown -R {test_account.username} {_path}" + f"chown -R {pkg_tests_account.username} {_path}" ) ret = salt_call_cli.run( "--local", "cmd.run", chg_ownership_cmd @@ -317,7 +317,9 @@ def test_paths_log_rotation( for _path in log_files_list: log_path = pathlib.Path(_path) assert log_path.exists() - assert log_path.owner() == test_account.username + assert ( + log_path.owner() == pkg_tests_account.username + ) assert log_path.stat().st_mode & 0o7777 == 0o640 # cleanup @@ -328,7 +330,7 @@ def test_paths_log_rotation( "--local", "file.replace", f"{install_salt.conf_dir}/master", - f"user: {test_account.username}", + f"user: {pkg_tests_account.username}", "user: salt", "flags=['IGNORECASE']", "append_if_not_found=True", diff --git a/tests/pytests/pkg/support/__init__.py b/tests/pytests/pkg/support/__init__.py deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/tests/pytests/pkg/support/coverage/sitecustomize.py b/tests/pytests/pkg/support/coverage/sitecustomize.py deleted file mode 100644 index bee2ff80f2f..00000000000 --- a/tests/pytests/pkg/support/coverage/sitecustomize.py +++ /dev/null @@ -1,11 +0,0 @@ -""" -Python will always try to import sitecustomize. -We use that fact to try and support code coverage for sub-processes -""" - -try: - import coverage - - coverage.process_startup() -except ImportError: - pass diff --git a/tests/pytests/pkg/support/paths.py b/tests/pytests/pkg/support/paths.py deleted file mode 100644 index a8a82bce0e0..00000000000 --- a/tests/pytests/pkg/support/paths.py +++ /dev/null @@ -1,102 +0,0 @@ -""" - :codeauthor: Pedro Algarvio (pedro@algarvio.me) - :copyright: Copyright 2017 by the SaltStack Team, see AUTHORS for more details. - :license: Apache 2.0, see LICENSE for more details. - - - tests.support.paths - ~~~~~~~~~~~~~~~~~~~ - - Tests related paths -""" - -import logging -import os -import re -import sys -import tempfile - -log = logging.getLogger(__name__) - -SALT_CODE_DIR = os.path.join( - os.path.dirname( - os.path.dirname( - os.path.dirname( - os.path.dirname(os.path.normpath(os.path.abspath(__file__))) - ) - ) - ), - "salt", -) -TESTS_DIR = os.path.join(os.path.dirname(SALT_CODE_DIR), "tests") -if TESTS_DIR.startswith("//"): - # Have we been given an initial double forward slash? Ditch it! - TESTS_DIR = TESTS_DIR[1:] -if sys.platform.startswith("win"): - TESTS_DIR = os.path.normcase(TESTS_DIR) -CODE_DIR = os.path.dirname(TESTS_DIR) -if sys.platform.startswith("win"): - CODE_DIR = CODE_DIR.replace("\\", "\\\\") -UNIT_TEST_DIR = os.path.join(TESTS_DIR, "unit") -INTEGRATION_TEST_DIR = os.path.join(TESTS_DIR, "integration") - -# Let's inject CODE_DIR so salt is importable if not there already -if TESTS_DIR in sys.path: - sys.path.remove(TESTS_DIR) -if CODE_DIR in sys.path and sys.path[0] != CODE_DIR: - sys.path.remove(CODE_DIR) -if CODE_DIR not in sys.path: - sys.path.insert(0, CODE_DIR) -if TESTS_DIR not in sys.path: - sys.path.insert(1, TESTS_DIR) - -SYS_TMP_DIR = os.path.abspath( - os.path.realpath( - # Avoid ${TMPDIR} and gettempdir() on MacOS as they yield a base path too long - # for unix sockets: ``error: AF_UNIX path too long`` - # Gentoo Portage prefers ebuild tests are rooted in ${TMPDIR} - os.environ.get("TMPDIR", tempfile.gettempdir()) - if not sys.platform.startswith("darwin") - else "/tmp" - ) -) -TMP = os.path.join(SYS_TMP_DIR, "salt-tests-tmpdir") -TMP_ROOT_DIR = os.path.join(TMP, "rootdir") -FILES = os.path.join(INTEGRATION_TEST_DIR, "files") -BASE_FILES = os.path.join(INTEGRATION_TEST_DIR, "files", "file", "base") -PROD_FILES = os.path.join(INTEGRATION_TEST_DIR, "files", "file", "prod") -PYEXEC = "python{}.{}".format(*sys.version_info) -MOCKBIN = os.path.join(INTEGRATION_TEST_DIR, "mockbin") -SCRIPT_DIR = os.path.join(CODE_DIR, "scripts") -TMP_STATE_TREE = os.path.join(SYS_TMP_DIR, "salt-temp-state-tree") -TMP_PILLAR_TREE = os.path.join(SYS_TMP_DIR, "salt-temp-pillar-tree") -TMP_PRODENV_STATE_TREE = os.path.join(SYS_TMP_DIR, "salt-temp-prodenv-state-tree") -TMP_PRODENV_PILLAR_TREE = os.path.join(SYS_TMP_DIR, "salt-temp-prodenv-pillar-tree") -TMP_CONF_DIR = TMP_MINION_CONF_DIR = os.path.join(TMP, "config") -TMP_SUB_MINION_CONF_DIR = os.path.join(TMP_CONF_DIR, "sub-minion") -TMP_SYNDIC_MINION_CONF_DIR = os.path.join(TMP_CONF_DIR, "syndic-minion") -TMP_SYNDIC_MASTER_CONF_DIR = os.path.join(TMP_CONF_DIR, "syndic-master") -TMP_SSH_CONF_DIR = TMP_MINION_CONF_DIR -CONF_DIR = os.path.join(INTEGRATION_TEST_DIR, "files", "conf") -PILLAR_DIR = os.path.join(FILES, "pillar") -TMP_SCRIPT_DIR = os.path.join(TMP, "scripts") -ENGINES_DIR = os.path.join(FILES, "engines") -LOG_HANDLERS_DIR = os.path.join(FILES, "log_handlers") - - -def list_test_mods(): - """ - A generator which returns all of the test files - """ - test_re = re.compile(r"^test_.+\.py$") - for dirname in (UNIT_TEST_DIR, INTEGRATION_TEST_DIR): - test_type = os.path.basename(dirname) - for root, _, files in os.walk(dirname): - parent_mod = root[len(dirname) :].lstrip(os.sep).replace(os.sep, ".") - for filename in files: - if test_re.match(filename): - mod_name = test_type - if parent_mod: - mod_name += "." + parent_mod - mod_name += "." + filename[:-3] - yield mod_name diff --git a/tests/pytests/pkg/support/runtests.py b/tests/pytests/pkg/support/runtests.py deleted file mode 100644 index ce5c9644cd3..00000000000 --- a/tests/pytests/pkg/support/runtests.py +++ /dev/null @@ -1,209 +0,0 @@ -""" - :codeauthor: Pedro Algarvio (pedro@algarvio.me) - - .. _runtime_vars: - - Runtime Variables - ----------------- - - :command:`salt-runtests` provides a variable, :py:attr:`RUNTIME_VARS` which has some common paths defined at - startup: - - .. autoattribute:: tests.support.runtests.RUNTIME_VARS - :annotation: - - :TMP: Tests suite temporary directory - :TMP_CONF_DIR: Configuration directory from where the daemons that :command:`salt-runtests` starts get their - configuration files. - :TMP_CONF_MASTER_INCLUDES: Salt Master configuration files includes directory. See - :salt_conf_master:`default_include`. - :TMP_CONF_MINION_INCLUDES: Salt Minion configuration files includes directory. Seei - :salt_conf_minion:`include`. - :TMP_CONF_CLOUD_INCLUDES: Salt cloud configuration files includes directory. The same as the salt master and - minion includes configuration, though under a different directory name. - :TMP_CONF_CLOUD_PROFILE_INCLUDES: Salt cloud profiles configuration files includes directory. Same as above. - :TMP_CONF_CLOUD_PROVIDER_INCLUDES: Salt cloud providers configuration files includes directory. Same as above. - :TMP_SCRIPT_DIR: Temporary scripts directory from where the Salt CLI tools will be called when running tests. - :TMP_SALT_INTEGRATION_FILES: Temporary directory from where Salt's test suite integration files are copied to. - :TMP_BASEENV_STATE_TREE: Salt master's **base** environment state tree directory - :TMP_PRODENV_STATE_TREE: Salt master's **production** environment state tree directory - :TMP_BASEENV_PILLAR_TREE: Salt master's **base** environment pillar tree directory - :TMP_PRODENV_PILLAR_TREE: Salt master's **production** environment pillar tree directory - - - Use it on your test case in case of need. As simple as: - - .. code-block:: python - - import os - from tests.support.runtests import RUNTIME_VARS - - # Path to the testing minion configuration file - minion_config_path = os.path.join(RUNTIME_VARS.TMP_CONF_DIR, 'minion') - - .. _`pytest`: http://pytest.org - """ - -import logging -import os -import shutil - -import salt.utils.path -import salt.utils.platform -import tests.support.paths as paths - -try: - import pwd -except ImportError: - import salt.utils.win_functions - -log = logging.getLogger(__name__) - - -def this_user(): - """ - Get the user associated with the current process. - """ - if salt.utils.platform.is_windows(): - return salt.utils.win_functions.get_current_user(with_domain=False) - return pwd.getpwuid(os.getuid())[0] - - -class RootsDict(dict): - def merge(self, data): - for key, values in data.items(): - if key not in self: - self[key] = values - continue - for value in values: - if value not in self[key]: - self[key].append(value) - return self - - def to_dict(self): - return dict(self) - - -def recursive_copytree(source, destination, overwrite=False): - for root, dirs, files in os.walk(source): - for item in dirs: - src_path = os.path.join(root, item) - dst_path = os.path.join( - destination, src_path.replace(source, "").lstrip(os.sep) - ) - if not os.path.exists(dst_path): - log.debug("Creating directory: %s", dst_path) - os.makedirs(dst_path) - for item in files: - src_path = os.path.join(root, item) - dst_path = os.path.join( - destination, src_path.replace(source, "").lstrip(os.sep) - ) - if os.path.exists(dst_path) and not overwrite: - if os.stat(src_path).st_mtime > os.stat(dst_path).st_mtime: - log.debug("Copying %s to %s", src_path, dst_path) - shutil.copy2(src_path, dst_path) - else: - if not os.path.isdir(os.path.dirname(dst_path)): - log.debug("Creating directory: %s", os.path.dirname(dst_path)) - os.makedirs(os.path.dirname(dst_path)) - log.debug("Copying %s to %s", src_path, dst_path) - shutil.copy2(src_path, dst_path) - - -class RuntimeVars: - - __self_attributes__ = ("_vars", "_locked", "lock") - - def __init__(self, **kwargs): - self._vars = kwargs - self._locked = False - - def lock(self): - # Late import - from salt.utils.immutabletypes import freeze - - frozen_vars = freeze(self._vars.copy()) - self._vars = frozen_vars - self._locked = True - - def __iter__(self): - yield from self._vars.items() - - def __getattribute__(self, name): - if name in object.__getattribute__(self, "_vars"): - return object.__getattribute__(self, "_vars")[name] - return object.__getattribute__(self, name) - - def __setattr__(self, name, value): - if getattr(self, "_locked", False) is True: - raise RuntimeError( - "After {} is locked, no additional data can be added to it".format( - self.__class__.__name__ - ) - ) - if name in object.__getattribute__(self, "__self_attributes__"): - object.__setattr__(self, name, value) - return - self._vars[name] = value - - -# <---- Helper Methods ----------------------------------------------------------------------------------------------- - - -# ----- Global Variables --------------------------------------------------------------------------------------------> -XML_OUTPUT_DIR = os.environ.get( - "SALT_XML_TEST_REPORTS_DIR", os.path.join(paths.TMP, "xml-test-reports") -) -# <---- Global Variables --------------------------------------------------------------------------------------------- - - -# ----- Tests Runtime Variables -------------------------------------------------------------------------------------> - -RUNTIME_VARS = RuntimeVars( - TMP=paths.TMP, - SYS_TMP_DIR=paths.SYS_TMP_DIR, - FILES=paths.FILES, - CONF_DIR=paths.CONF_DIR, - PILLAR_DIR=paths.PILLAR_DIR, - ENGINES_DIR=paths.ENGINES_DIR, - LOG_HANDLERS_DIR=paths.LOG_HANDLERS_DIR, - TMP_ROOT_DIR=paths.TMP_ROOT_DIR, - TMP_CONF_DIR=paths.TMP_CONF_DIR, - TMP_MINION_CONF_DIR=paths.TMP_MINION_CONF_DIR, - TMP_CONF_MASTER_INCLUDES=os.path.join(paths.TMP_CONF_DIR, "master.d"), - TMP_CONF_MINION_INCLUDES=os.path.join(paths.TMP_CONF_DIR, "minion.d"), - TMP_CONF_PROXY_INCLUDES=os.path.join(paths.TMP_CONF_DIR, "proxy.d"), - TMP_CONF_CLOUD_INCLUDES=os.path.join(paths.TMP_CONF_DIR, "cloud.conf.d"), - TMP_CONF_CLOUD_PROFILE_INCLUDES=os.path.join( - paths.TMP_CONF_DIR, "cloud.profiles.d" - ), - TMP_CONF_CLOUD_PROVIDER_INCLUDES=os.path.join( - paths.TMP_CONF_DIR, "cloud.providers.d" - ), - TMP_SUB_MINION_CONF_DIR=paths.TMP_SUB_MINION_CONF_DIR, - TMP_SYNDIC_MASTER_CONF_DIR=paths.TMP_SYNDIC_MASTER_CONF_DIR, - TMP_SYNDIC_MINION_CONF_DIR=paths.TMP_SYNDIC_MINION_CONF_DIR, - TMP_SSH_CONF_DIR=paths.TMP_SSH_CONF_DIR, - TMP_SCRIPT_DIR=paths.TMP_SCRIPT_DIR, - TMP_STATE_TREE=paths.TMP_STATE_TREE, - TMP_BASEENV_STATE_TREE=paths.TMP_STATE_TREE, - TMP_PILLAR_TREE=paths.TMP_PILLAR_TREE, - TMP_BASEENV_PILLAR_TREE=paths.TMP_PILLAR_TREE, - TMP_PRODENV_STATE_TREE=paths.TMP_PRODENV_STATE_TREE, - TMP_PRODENV_PILLAR_TREE=paths.TMP_PRODENV_PILLAR_TREE, - SHELL_TRUE_PATH=salt.utils.path.which("true") - if not salt.utils.platform.is_windows() - else "cmd /c exit 0 > nul", - SHELL_FALSE_PATH=salt.utils.path.which("false") - if not salt.utils.platform.is_windows() - else "cmd /c exit 1 > nul", - RUNNING_TESTS_USER=this_user(), - RUNTIME_CONFIGS={}, - CODE_DIR=paths.CODE_DIR, - SALT_CODE_DIR=paths.SALT_CODE_DIR, - BASE_FILES=paths.BASE_FILES, - PROD_FILES=paths.PROD_FILES, - TESTS_DIR=paths.TESTS_DIR, -) -# <---- Tests Runtime Variables -------------------------------------------------------------------------------------- diff --git a/tests/pytests/pkg/support/sminion.py b/tests/pytests/pkg/support/sminion.py deleted file mode 100644 index abf45fd7bde..00000000000 --- a/tests/pytests/pkg/support/sminion.py +++ /dev/null @@ -1,256 +0,0 @@ -""" -tests.support.sminion -~~~~~~~~~~~~~~~~~~~~~ - -SMinion's support functions -""" - -import fnmatch -import hashlib -import logging -import os -import shutil -import sys - -import salt.minion -import salt.utils.path -import salt.utils.stringutils -from tests.support.runtests import RUNTIME_VARS - -log = logging.getLogger(__name__) - -DEFAULT_SMINION_ID = "pytest-internal-sminion" - - -def build_minion_opts( - minion_id=None, - root_dir=None, - initial_conf_file=None, - minion_opts_overrides=None, - skip_cached_opts=False, - cache_opts=True, - minion_role=None, -): - if minion_id is None: - minion_id = DEFAULT_SMINION_ID - if skip_cached_opts is False: - try: - opts_cache = build_minion_opts.__cached_opts__ - except AttributeError: - opts_cache = build_minion_opts.__cached_opts__ = {} - cached_opts = opts_cache.get(minion_id) - if cached_opts: - return cached_opts - - log.info("Generating testing minion %r configuration...", minion_id) - if root_dir is None: - hashed_minion_id = hashlib.sha1() - hashed_minion_id.update(salt.utils.stringutils.to_bytes(minion_id)) - root_dir = os.path.join( - RUNTIME_VARS.TMP_ROOT_DIR, hashed_minion_id.hexdigest()[:6] - ) - - if initial_conf_file is not None: - minion_opts = salt.config._read_conf_file( - initial_conf_file - ) # pylint: disable=protected-access - else: - minion_opts = {} - - conf_dir = os.path.join(root_dir, "conf") - conf_file = os.path.join(conf_dir, "minion") - - minion_opts["id"] = minion_id - minion_opts["conf_file"] = conf_file - minion_opts["root_dir"] = root_dir - minion_opts["cachedir"] = "cache" - minion_opts["user"] = RUNTIME_VARS.RUNNING_TESTS_USER - minion_opts["pki_dir"] = "pki" - minion_opts["hosts.file"] = os.path.join(RUNTIME_VARS.TMP_ROOT_DIR, "hosts") - minion_opts["aliases.file"] = os.path.join(RUNTIME_VARS.TMP_ROOT_DIR, "aliases") - minion_opts["file_client"] = "local" - minion_opts["server_id_use_crc"] = "adler32" - minion_opts["pillar_roots"] = {"base": [RUNTIME_VARS.TMP_PILLAR_TREE]} - minion_opts["file_roots"] = { - "base": [ - # Let's support runtime created files that can be used like: - # salt://my-temp-file.txt - RUNTIME_VARS.TMP_STATE_TREE - ], - # Alternate root to test __env__ choices - "prod": [ - os.path.join(RUNTIME_VARS.FILES, "file", "prod"), - RUNTIME_VARS.TMP_PRODENV_STATE_TREE, - ], - } - if initial_conf_file and initial_conf_file.startswith(RUNTIME_VARS.FILES): - # We assume we were passed a minion configuration file defined fo testing and, as such - # we define the file and pillar roots to include the testing states/pillar trees - minion_opts["pillar_roots"]["base"].append( - os.path.join(RUNTIME_VARS.FILES, "pillar", "base"), - ) - minion_opts["file_roots"]["base"].append( - os.path.join(RUNTIME_VARS.FILES, "file", "base"), - ) - minion_opts["file_roots"]["prod"].append( - os.path.join(RUNTIME_VARS.FILES, "file", "prod"), - ) - - # We need to copy the extension modules into the new master root_dir or - # it will be prefixed by it - extension_modules_path = os.path.join(root_dir, "extension_modules") - if not os.path.exists(extension_modules_path): - shutil.copytree( - os.path.join(RUNTIME_VARS.FILES, "extension_modules"), - extension_modules_path, - ) - minion_opts["extension_modules"] = extension_modules_path - - # Custom grains - if "grains" not in minion_opts: - minion_opts["grains"] = {} - if minion_role is not None: - minion_opts["grains"]["role"] = minion_role - - # Under windows we can't seem to properly create a virtualenv off of another - # virtualenv, we can on linux but we will still point to the virtualenv binary - # outside the virtualenv running the test suite, if that's the case. - try: - real_prefix = sys.real_prefix - # The above attribute exists, this is a virtualenv - if salt.utils.platform.is_windows(): - virtualenv_binary = os.path.join(real_prefix, "Scripts", "virtualenv.exe") - else: - # We need to remove the virtualenv from PATH or we'll get the virtualenv binary - # from within the virtualenv, we don't want that - path = os.environ.get("PATH") - if path is not None: - path_items = path.split(os.pathsep) - for item in path_items[:]: - if item.startswith(sys.base_prefix): - path_items.remove(item) - os.environ["PATH"] = os.pathsep.join(path_items) - virtualenv_binary = salt.utils.path.which("virtualenv") - if path is not None: - # Restore previous environ PATH - os.environ["PATH"] = path - if not virtualenv_binary.startswith(real_prefix): - virtualenv_binary = None - if virtualenv_binary and not os.path.exists(virtualenv_binary): - # It doesn't exist?! - virtualenv_binary = None - except AttributeError: - # We're not running inside a virtualenv - virtualenv_binary = None - if virtualenv_binary: - minion_opts["venv_bin"] = virtualenv_binary - - # Override minion_opts with minion_opts_overrides - if minion_opts_overrides: - minion_opts.update(minion_opts_overrides) - - if not os.path.exists(conf_dir): - os.makedirs(conf_dir) - - with salt.utils.files.fopen(conf_file, "w") as fp_: - salt.utils.yaml.safe_dump(minion_opts, fp_, default_flow_style=False) - - log.info("Generating testing minion %r configuration completed.", minion_id) - minion_opts = salt.config.minion_config( - conf_file, minion_id=minion_id, cache_minion_id=True - ) - salt.utils.verify.verify_env( - [ - os.path.join(minion_opts["pki_dir"], "accepted"), - os.path.join(minion_opts["pki_dir"], "rejected"), - os.path.join(minion_opts["pki_dir"], "pending"), - os.path.dirname(minion_opts["log_file"]), - minion_opts["extension_modules"], - minion_opts["cachedir"], - minion_opts["sock_dir"], - RUNTIME_VARS.TMP_STATE_TREE, - RUNTIME_VARS.TMP_PILLAR_TREE, - RUNTIME_VARS.TMP_PRODENV_STATE_TREE, - RUNTIME_VARS.TMP, - ], - RUNTIME_VARS.RUNNING_TESTS_USER, - root_dir=root_dir, - ) - if cache_opts: - try: - opts_cache = build_minion_opts.__cached_opts__ - except AttributeError: - opts_cache = build_minion_opts.__cached_opts__ = {} - opts_cache[minion_id] = minion_opts - return minion_opts - - -def create_sminion( - minion_id=None, - root_dir=None, - initial_conf_file=None, - sminion_cls=salt.minion.SMinion, - minion_opts_overrides=None, - skip_cached_minion=False, - cache_sminion=True, -): - if minion_id is None: - minion_id = DEFAULT_SMINION_ID - if skip_cached_minion is False: - try: - minions_cache = create_sminion.__cached_minions__ - except AttributeError: - create_sminion.__cached_minions__ = {} - cached_minion = create_sminion.__cached_minions__.get(minion_id) - if cached_minion: - return cached_minion - minion_opts = build_minion_opts( - minion_id=minion_id, - root_dir=root_dir, - initial_conf_file=initial_conf_file, - minion_opts_overrides=minion_opts_overrides, - skip_cached_opts=skip_cached_minion, - cache_opts=cache_sminion, - ) - log.info("Instantiating a testing %s(%s)", sminion_cls.__name__, minion_id) - sminion = sminion_cls(minion_opts) - if cache_sminion: - try: - minions_cache = create_sminion.__cached_minions__ - except AttributeError: - minions_cache = create_sminion.__cached_minions__ = {} - minions_cache[minion_id] = sminion - return sminion - - -def check_required_sminion_attributes(sminion_attr, required_items): - """ - :param sminion_attr: The name of the sminion attribute to check, such as 'functions' or 'states' - :param required_items: The items that must be part of the designated sminion attribute for the decorated test - :return The packages that are not available - """ - required_salt_items = set(required_items) - sminion = create_sminion(minion_id=DEFAULT_SMINION_ID) - available_items = list(getattr(sminion, sminion_attr)) - not_available_items = set() - - name = "__not_available_{items}s__".format(items=sminion_attr) - if not hasattr(sminion, name): - setattr(sminion, name, set()) - - cached_not_available_items = getattr(sminion, name) - - for not_available_item in cached_not_available_items: - if not_available_item in required_salt_items: - not_available_items.add(not_available_item) - required_salt_items.remove(not_available_item) - - for required_item_name in required_salt_items: - search_name = required_item_name - if "." not in search_name: - search_name += ".*" - if not fnmatch.filter(available_items, search_name): - not_available_items.add(required_item_name) - cached_not_available_items.add(required_item_name) - - return not_available_items diff --git a/tests/pytests/pkg/support/helpers.py b/tests/support/pkg.py similarity index 95% rename from tests/pytests/pkg/support/helpers.py rename to tests/support/pkg.py index 560e3c3cf00..64c29048b17 100644 --- a/tests/pytests/pkg/support/helpers.py +++ b/tests/support/pkg.py @@ -30,22 +30,9 @@ from saltfactories.daemons import api, master, minion from saltfactories.utils import cli_scripts import salt.utils.files +from tests.conftest import CODE_DIR +from tests.support.pytest.helpers import TestAccount -try: - import crypt - - HAS_CRYPT = True -except ImportError: - HAS_CRYPT = False -try: - import pwd - - HAS_PWD = True -except ImportError: - HAS_PWD = False - -TESTS_DIR = pathlib.Path(__file__).resolve().parent.parent.parent.parent -CODE_DIR = TESTS_DIR.parent ARTIFACTS_DIR = CODE_DIR / "artifacts" / "pkg" log = logging.getLogger(__name__) @@ -1451,82 +1438,10 @@ class SaltKey(PkgMixin, key.SaltKey): key.SaltKey.__attrs_post_init__(self) -@attr.s(kw_only=True, slots=True) -class TestUser: - """ - Add a test user - """ - - salt_call_cli = attr.ib() - - username = attr.ib(default="saltdev") - # Must follow Windows Password Complexity requirements - password = attr.ib(default="P@ssW0rd") - _pw_record = attr.ib(init=False, repr=False, default=None) - - def salt_call_local(self, *args): - ret = self.salt_call_cli.run("--local", *args) - if ret.returncode != 0: - log.error(ret) - assert ret.returncode == 0 - return ret.data - - def add_user(self): - log.debug("Adding system account %r", self.username) - if platform.is_windows(): - self.salt_call_local("user.add", self.username, self.password) - else: - self.salt_call_local("user.add", self.username) - hash_passwd = crypt.crypt(self.password, crypt.mksalt(crypt.METHOD_SHA512)) - self.salt_call_local("shadow.set_password", self.username, hash_passwd) - assert self.username in self.salt_call_local("user.list_users") - - def remove_user(self): - log.debug("Removing system account %r", self.username) - if platform.is_windows(): - self.salt_call_local( - "user.delete", self.username, "purge=True", "force=True" - ) - else: - self.salt_call_local("user.delete", self.username, "remove=True") - - @property - def pw_record(self): - if self._pw_record is None and HAS_PWD: - self._pw_record = pwd.getpwnam(self.username) - return self._pw_record - - @property - def uid(self): - if HAS_PWD: - return self.pw_record.pw_uid - return None - - @property - def gid(self): - if HAS_PWD: - return self.pw_record.pw_gid - return None - - @property - def env(self): - environ = os.environ.copy() - environ["LOGNAME"] = environ["USER"] = self.username - environ["HOME"] = self.pw_record.pw_dir - return environ - - def __enter__(self): - self.add_user() - return self - - def __exit__(self, *_): - self.remove_user() - - @attr.s(kw_only=True, slots=True) class ApiRequest: - salt_api: SaltApi = attr.ib(repr=False) - test_account: TestUser = attr.ib(repr=False) + port: int = attr.ib(repr=False) + account: TestAccount = attr.ib(repr=False) session: requests.Session = attr.ib(init=False, repr=False) api_uri: str = attr.ib(init=False) auth_data: Dict[str, str] = attr.ib(init=False) @@ -1537,13 +1452,13 @@ class ApiRequest: @api_uri.default def _default_api_uri(self): - return f"http://localhost:{self.salt_api.config['rest_cherrypy']['port']}" + return f"http://localhost:{self.port}" @auth_data.default def _default_auth_data(self): return { - "username": self.test_account.username, - "password": self.test_account.password, + "username": self.account.username, + "password": self.account.password, "eauth": "auto", "out": "json", } From 447e2e2ff792cee1a86f23b726bad47d667b9000 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Wed, 6 Dec 2023 13:35:31 +0000 Subject: [PATCH 030/146] Remove file which shouldn't have been copied over Signed-off-by: Pedro Algarvio --- tests/pytests/pkg/rpm/salt.spec | 470 -------------------------------- 1 file changed, 470 deletions(-) delete mode 100644 tests/pytests/pkg/rpm/salt.spec diff --git a/tests/pytests/pkg/rpm/salt.spec b/tests/pytests/pkg/rpm/salt.spec deleted file mode 100644 index 7d8183a9d87..00000000000 --- a/tests/pytests/pkg/rpm/salt.spec +++ /dev/null @@ -1,470 +0,0 @@ -# Maintainer: Erik Johnson (https://github.com/terminalmage) -# -# This is a modified version of the spec file, which supports git builds. It -# should be kept more or less up-to-date with upstream changes. -# -# Please contact the maintainer before submitting any pull requests for this -# spec file. - -%if ! (0%{?rhel} >= 6 || 0%{?fedora} > 12) -%global with_python26 1 -%define pybasever 2.6 -%define __python_ver 26 -%define __python %{_bindir}/python%{?pybasever} -%endif - -%global include_tests 0 - -%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} -%{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(1))")} -%{!?pythonpath: %global pythonpath %(%{__python} -c "import os, sys; print(os.pathsep.join(x for x in sys.path if x))")} - -%global srcver REPLACE_ME - -Name: salt -Version: REPLACE_ME -Release: 1%{?dist} -Summary: A parallel remote execution system - -Group: System Environment/Daemons -License: ASL 2.0 -URL: http://saltstack.org/ -Source0: %{name}-%{srcver}.tar.gz -Source1: %{name}-master -Source2: %{name}-syndic -Source3: %{name}-minion -Source4: %{name}-api -Source5: %{name}-master.service -Source6: %{name}-syndic.service -Source7: %{name}-minion.service -Source8: %{name}-api.service -Source9: README.fedora -Source10: logrotate.salt -Source11: salt.bash - -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) -BuildArch: noarch - -%ifarch %{ix86} x86_64 -Requires: dmidecode -%endif - -Requires: pciutils -Requires: which -Requires: yum-utils - -%if 0%{?with_python26} - -BuildRequires: python26-devel -Requires: python26-crypto >= 2.6.1 -Requires: python26-jinja2 -Requires: python26-msgpack > 0.3 -Requires: python26-PyYAML -Requires: python26-tornado >= 4.2.1 -Requires: python26-zmq -Requires: python26-six - -%else - -%if ((0%{?rhel} >= 6 || 0%{?fedora} > 12) && 0%{?include_tests}) -BuildRequires: python-tornado >= 4.2.1 -BuildRequires: python-futures >= 2.0 -BuildRequires: python-crypto >= 2.6.1 -BuildRequires: python-jinja2 -BuildRequires: python-msgpack > 0.3 -BuildRequires: python-pip -BuildRequires: python-zmq -BuildRequires: PyYAML -# this BR causes windows tests to happen -# clearly, that's not desired -# https://github.com/saltstack/salt/issues/3749 -BuildRequires: git -BuildRequires: python-libcloud -BuildRequires: python-six - - -%endif -BuildRequires: python-devel -Requires: m2crypto -Requires: python-crypto -Requires: python-zmq -Requires: python-jinja2 -Requires: PyYAML -Requires: python-msgpack -Requires: python-requests - -%endif - -%if ! (0%{?rhel} >= 7 || 0%{?fedora} >= 15) - -Requires(post): chkconfig -Requires(preun): chkconfig -Requires(preun): initscripts -Requires(postun): initscripts - -%else - -%if 0%{?systemd_preun:1} - -Requires(post): systemd-units -Requires(preun): systemd-units -Requires(postun): systemd-units - -%endif - -BuildRequires: systemd-units -Requires: systemd-python - -%endif - -%description -Salt is a distributed remote execution system used to execute commands and -query data. It was developed in order to bring the best solutions found in -the world of remote execution together and make them better, faster and more -malleable. Salt accomplishes this via its ability to handle larger loads of -information, and not just dozens, but hundreds or even thousands of individual -servers, handle them quickly and through a simple and manageable interface. - -%package master -Summary: Management component for salt, a parallel remote execution system -Group: System Environment/Daemons -Requires: %{name} = %{version}-%{release} -%if (0%{?rhel} >= 7 || 0%{?fedora} >= 15) -Requires: systemd-python -%endif - -%description master -The Salt master is the central server to which all minions connect. - -%package minion -Summary: Client component for Salt, a parallel remote execution system -Group: System Environment/Daemons -Requires: %{name} = %{version}-%{release} - -%description minion -The Salt minion is the agent component of Salt. It listens for instructions -from the master, runs jobs, and returns results back to the master. - -%package syndic -Summary: Master-of-master component for Salt, a parallel remote execution system -Group: System Environment/Daemons -Requires: %{name}-master = %{version}-%{release} - -%description syndic -The Salt syndic is a master daemon which can receive instruction from a -higher-level master, allowing for tiered organization of your Salt -infrastructure. - -%package api -Summary: REST API for Salt, a parallel remote execution system -Group: System administration tools -Requires: %{name}-master = %{version}-%{release} -%if 0%{?with_python26} -Requires: python26-cherrypy -%else -Requires: python-cherrypy -%endif - - -%description api -salt-api provides a REST interface to the Salt master. - -%package cloud -Summary: Cloud provisioner for Salt, a parallel remote execution system -Group: System administration tools -Requires: %{name}-master = %{version}-%{release} -%if 0%{?with_python26} -Requires: python26-libcloud -%else -Requires: python-libcloud -%endif - -%description cloud -The salt-cloud tool provisions new cloud VMs, installs salt-minion on them, and -adds them to the master's collection of controllable minions. - -%package ssh -Summary: Agentless SSH-based version of Salt, a parallel remote execution system -Group: System administration tools -Requires: %{name} = %{version}-%{release} - -%description ssh -The salt-ssh tool can run remote execution functions and states without the use -of an agent (salt-minion) service. - -%prep -%setup -n %{name}-%{srcver} - -%build - - -%install -rm -rf %{buildroot} -%{__python} setup.py install -O1 --root %{buildroot} - -# Add some directories -install -d -m 0755 %{buildroot}%{_var}/log/salt -touch %{buildroot}%{_var}/log/salt/minion -touch %{buildroot}%{_var}/log/salt/master -install -d -m 0755 %{buildroot}%{_var}/cache/salt -install -d -m 0755 %{buildroot}%{_sysconfdir}/salt -install -d -m 0755 %{buildroot}%{_sysconfdir}/salt/master.d -install -d -m 0755 %{buildroot}%{_sysconfdir}/salt/minion.d -install -d -m 0755 %{buildroot}%{_sysconfdir}/salt/pki -install -d -m 0755 %{buildroot}%{_sysconfdir}/salt/pki/master -install -d -m 0755 %{buildroot}%{_sysconfdir}/salt/pki/minion -install -d -m 0755 %{buildroot}%{_sysconfdir}/salt/cloud.conf.d -install -d -m 0755 %{buildroot}%{_sysconfdir}/salt/cloud.deploy.d -install -d -m 0755 %{buildroot}%{_sysconfdir}/salt/cloud.maps.d -install -d -m 0755 %{buildroot}%{_sysconfdir}/salt/cloud.profiles.d -install -d -m 0755 %{buildroot}%{_sysconfdir}/salt/cloud.providers.d - -# Add the config files -install -p -m 0640 conf/minion %{buildroot}%{_sysconfdir}/salt/minion -install -p -m 0640 conf/master %{buildroot}%{_sysconfdir}/salt/master -install -p -m 0640 conf/cloud %{buildroot}%{_sysconfdir}/salt/cloud -install -p -m 0640 conf/roster %{buildroot}%{_sysconfdir}/salt/roster -install -p -m 0640 conf/proxy %{buildroot}%{_sysconfdir}/salt/proxy - -%if ! (0%{?rhel} >= 7 || 0%{?fedora} >= 15) -mkdir -p %{buildroot}%{_initrddir} -install -p %{SOURCE1} %{buildroot}%{_initrddir}/ -install -p %{SOURCE2} %{buildroot}%{_initrddir}/ -install -p %{SOURCE3} %{buildroot}%{_initrddir}/ -install -p %{SOURCE4} %{buildroot}%{_initrddir}/ -%else -mkdir -p %{buildroot}%{_unitdir} -install -p -m 0644 %{SOURCE5} %{buildroot}%{_unitdir}/ -install -p -m 0644 %{SOURCE6} %{buildroot}%{_unitdir}/ -install -p -m 0644 %{SOURCE7} %{buildroot}%{_unitdir}/ -install -p -m 0644 %{SOURCE8} %{buildroot}%{_unitdir}/ -%endif - -# Force python2.6 on EPEL6 -# https://github.com/saltstack/salt/issues/22003 -%if 0%{?rhel} == 6 -sed -i 's#/usr/bin/python#/usr/bin/python2.6#g' %{buildroot}%{_bindir}/salt* -sed -i 's#/usr/bin/python#/usr/bin/python2.6#g' %{buildroot}%{_initrddir}/salt* -%endif - -install -p %{SOURCE9} . - -# Logrotate -mkdir -p %{buildroot}%{_sysconfdir}/logrotate.d/ -install -p %{SOURCE10} %{buildroot}%{_sysconfdir}/logrotate.d/salt - -# Bash completion -mkdir -p %{buildroot}%{_sysconfdir}/bash_completion.d/ -install -p -m 0644 %{SOURCE11} %{buildroot}%{_sysconfdir}/bash_completion.d/salt.bash - -%clean -rm -rf %{buildroot} - -%files -%defattr(-,root,root,-) -%doc LICENSE -%doc %{_mandir}/man1/spm.1.* -%{python_sitelib}/%{name}/* -%{python_sitelib}/%{name}-*-py?.?.egg-info -%{_sysconfdir}/logrotate.d/salt -%{_sysconfdir}/bash_completion.d/salt.bash -%{_var}/cache/salt -%{_var}/log/salt -%doc README.fedora -%{_bindir}/spm -%config(noreplace) %{_sysconfdir}/salt/ -%config(noreplace) %{_sysconfdir}/salt/pki - -%files master -%defattr(-,root,root) -%doc %{_mandir}/man7/salt.7.* -%doc %{_mandir}/man1/salt-cp.1.* -%doc %{_mandir}/man1/salt-key.1.* -%doc %{_mandir}/man1/salt-master.1.* -%doc %{_mandir}/man1/salt-run.1.* -%{_bindir}/salt -%{_bindir}/salt-cp -%{_bindir}/salt-key -%{_bindir}/salt-master -%{_bindir}/salt-run -%if ! (0%{?rhel} >= 7 || 0%{?fedora} >= 15) -%attr(0755, root, root) %{_initrddir}/salt-master -%else -%{_unitdir}/salt-master.service -%endif -%config(noreplace) %{_sysconfdir}/salt/master -%config(noreplace) %{_sysconfdir}/salt/master.d -%config(noreplace) %{_sysconfdir}/salt/pki/master -%config(noreplace) %{_var}/log/salt/master - -%files minion -%defattr(-,root,root) -%doc %{_mandir}/man1/salt-call.1.* -%doc %{_mandir}/man1/salt-minion.1.* -%doc %{_mandir}/man1/salt-proxy.1.* -%{_bindir}/salt-minion -%{_bindir}/salt-call -%{_bindir}/salt-proxy -%if ! (0%{?rhel} >= 7 || 0%{?fedora} >= 15) -%attr(0755, root, root) %{_initrddir}/salt-minion -%else -%{_unitdir}/salt-minion.service -%endif -%config(noreplace) %{_sysconfdir}/salt/minion -%config(noreplace) %{_sysconfdir}/salt/proxy -%config(noreplace) %{_sysconfdir}/salt/minion.d -%config(noreplace) %{_sysconfdir}/salt/pki/minion -%config(noreplace) %{_var}/log/salt/minion - -%files syndic -%doc %{_mandir}/man1/salt-syndic.1.* -%{_bindir}/salt-syndic -%if ! (0%{?rhel} >= 7 || 0%{?fedora} >= 15) -%attr(0755, root, root) %{_initrddir}/salt-syndic -%else -%{_unitdir}/salt-syndic.service -%endif - -%files api -%defattr(-,root,root) -%doc %{_mandir}/man1/salt-api.1.* -%{_bindir}/salt-api -%if ! (0%{?rhel} >= 7 || 0%{?fedora} >= 15) -%attr(0755, root, root) %{_initrddir}/salt-api -%else -%{_unitdir}/salt-api.service -%endif - -%files cloud -%doc %{_mandir}/man1/salt-cloud.1.* -%{_bindir}/salt-cloud -%{_sysconfdir}/salt/cloud.conf.d -%{_sysconfdir}/salt/cloud.deploy.d -%{_sysconfdir}/salt/cloud.maps.d -%{_sysconfdir}/salt/cloud.profiles.d -%{_sysconfdir}/salt/cloud.providers.d -%config(noreplace) %{_sysconfdir}/salt/cloud - -%files ssh -%doc %{_mandir}/man1/salt-ssh.1.* -%{_bindir}/salt-ssh -%config(noreplace) %{_sysconfdir}/salt/roster - - -# less than RHEL 8 / Fedora 16 -# not sure if RHEL 7 will use systemd yet -%if ! (0%{?rhel} >= 7 || 0%{?fedora} >= 15) - -%preun master - if [ $1 -eq 0 ] ; then - /sbin/service salt-master stop >/dev/null 2>&1 - /sbin/chkconfig --del salt-master - fi - -%preun syndic - if [ $1 -eq 0 ] ; then - /sbin/service salt-syndic stop >/dev/null 2>&1 - /sbin/chkconfig --del salt-syndic - fi - -%preun minion - if [ $1 -eq 0 ] ; then - /sbin/service salt-minion stop >/dev/null 2>&1 - /sbin/chkconfig --del salt-minion - fi - -%post master - /sbin/chkconfig --add salt-master - -%post minion - /sbin/chkconfig --add salt-minion - -%postun master - if [ "$1" -ge "1" ] ; then - /sbin/service salt-master condrestart >/dev/null 2>&1 || : - fi - -%postun syndic - if [ "$1" -ge "1" ] ; then - /sbin/service salt-syndic condrestart >/dev/null 2>&1 || : - fi - -%postun minion - if [ "$1" -ge "1" ] ; then - /sbin/service salt-minion condrestart >/dev/null 2>&1 || : - fi - -%else - -%preun master -%if 0%{?systemd_preun:1} - %systemd_preun salt-master.service -%else - if [ $1 -eq 0 ] ; then - # Package removal, not upgrade - /bin/systemctl --no-reload disable salt-master.service > /dev/null 2>&1 || : - /bin/systemctl stop salt-master.service > /dev/null 2>&1 || : - fi -%endif - -%preun syndic -%if 0%{?systemd_preun:1} - %systemd_preun salt-syndic.service -%else - if [ $1 -eq 0 ] ; then - # Package removal, not upgrade - /bin/systemctl --no-reload disable salt-syndic.service > /dev/null 2>&1 || : - /bin/systemctl stop salt-syndic.service > /dev/null 2>&1 || : - fi -%endif - -%preun minion -%if 0%{?systemd_preun:1} - %systemd_preun salt-minion.service -%else - if [ $1 -eq 0 ] ; then - # Package removal, not upgrade - /bin/systemctl --no-reload disable salt-minion.service > /dev/null 2>&1 || : - /bin/systemctl stop salt-minion.service > /dev/null 2>&1 || : - fi -%endif - -%post master -%if 0%{?systemd_post:1} - %systemd_post salt-master.service -%else - /bin/systemctl daemon-reload &>/dev/null || : -%endif - -%post minion -%if 0%{?systemd_post:1} - %systemd_post salt-minion.service -%else - /bin/systemctl daemon-reload &>/dev/null || : -%endif - -%postun master -%if 0%{?systemd_post:1} - %systemd_postun salt-master.service -%else - /bin/systemctl daemon-reload &>/dev/null - [ $1 -gt 0 ] && /bin/systemctl try-restart salt-master.service &>/dev/null || : -%endif - -%postun syndic -%if 0%{?systemd_post:1} - %systemd_postun salt-syndic.service -%else - /bin/systemctl daemon-reload &>/dev/null - [ $1 -gt 0 ] && /bin/systemctl try-restart salt-syndic.service &>/dev/null || : -%endif - -%postun minion -%if 0%{?systemd_post:1} - %systemd_postun salt-minion.service -%else - /bin/systemctl daemon-reload &>/dev/null - [ $1 -gt 0 ] && /bin/systemctl try-restart salt-minion.service &>/dev/null || : -%endif - -%endif From 562368ce2ebe06f93d13a12948c5af2102587248 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Wed, 6 Dec 2023 13:39:44 +0000 Subject: [PATCH 031/146] Fix the path to where package downloads should go Signed-off-by: Pedro Algarvio --- tools/utils/gh.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/utils/gh.py b/tools/utils/gh.py index 34008936e4a..513e2cf2110 100644 --- a/tools/utils/gh.py +++ b/tools/utils/gh.py @@ -195,7 +195,7 @@ def download_pkgs_artifact( ctx.error(f"We do not build packages for {slug}") return ExitCode.FAIL - artifacts_path = tools.utils.REPO_ROOT / "pkg" / "artifacts" + artifacts_path = tools.utils.REPO_ROOT / "artifacts" / "pkg" artifacts_path.mkdir(exist_ok=True) ctx.info( From 2025b4e33b1ec36bcd9360a0272d199d7f86f0a4 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Wed, 6 Dec 2023 15:24:46 +0000 Subject: [PATCH 032/146] Fail early when failing to extract the version from the packages Signed-off-by: Pedro Algarvio --- tests/support/pkg.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/tests/support/pkg.py b/tests/support/pkg.py index 64c29048b17..8a28b7affcc 100644 --- a/tests/support/pkg.py +++ b/tests/support/pkg.py @@ -197,7 +197,8 @@ class SaltPkgInstall: The version of the local salt artifacts being tested, based on regex matching """ version = "" - for artifact in ARTIFACTS_DIR.glob("**/*.*"): + artifacts = list(ARTIFACTS_DIR.glob("**/*.*")) + for artifact in artifacts: version = re.search( r"([0-9].*)(\-[0-9].fc|\-[0-9].el|\+ds|\_all|\_any|\_amd64|\_arm64|\-[0-9].am|(\-[0-9]-[a-z]*-[a-z]*[0-9_]*.|\-[0-9]*.*)(exe|msi|pkg|rpm|deb))", artifact.name, @@ -206,6 +207,11 @@ class SaltPkgInstall: version = version.groups()[0].replace("_", "-").replace("~", "") version = version.split("-")[0] break + if not version: + pytest.fail( + f"Failed to package artifacts in '{ARTIFACTS_DIR}'. " + f"Directory Contents:\n{pprint.pformat(artifacts)}" + ) return version def update_process_path(self): From 3366ba233facfec3d725d31b1acdfc1db32fb634 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Wed, 6 Dec 2023 15:25:52 +0000 Subject: [PATCH 033/146] It's a single `nox.*.tar.xz` archive now Signed-off-by: Pedro Algarvio --- tools/testsuite/__init__.py | 9 --------- 1 file changed, 9 deletions(-) diff --git a/tools/testsuite/__init__.py b/tools/testsuite/__init__.py index 4ae4e07527c..d09d29be979 100644 --- a/tools/testsuite/__init__.py +++ b/tools/testsuite/__init__.py @@ -151,15 +151,6 @@ def setup_testsuite( if exitcode and exitcode != ExitCode.SOFT_FAIL: ctx.exit(exitcode) if pkg: - exitcode = tools.utils.gh.download_nox_artifact( - ctx, - run_id=run_id, - slug=slug, - nox_env=f"test-pkgs-onedir-{arch}", - repository=repository, - ) - if exitcode and exitcode != ExitCode.SOFT_FAIL: - ctx.exit(exitcode) exitcode = tools.utils.gh.download_pkgs_artifact( ctx, run_id=run_id, From a4289b0f1b437714870930ef3f6fe11f1e3f561f Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Wed, 6 Dec 2023 16:40:53 +0000 Subject: [PATCH 034/146] Make sure that the package artifacts are uploaded to VMs Signed-off-by: Pedro Algarvio --- tools/vm.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/vm.py b/tools/vm.py index 00c5c2fcaed..83493c3b04d 100644 --- a/tools/vm.py +++ b/tools/vm.py @@ -1315,7 +1315,7 @@ class VM: "--include", "artifacts/salt", "--include", - "artifacts/pkg/*", + "artifacts/pkg", # But we also want to exclude all other entries under artifacts/ "--exclude", "artifacts/*", From cfe7e1fecb3ada1e4ff7d74b0d0071b7d18d9f69 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Thu, 7 Dec 2023 13:29:10 +0000 Subject: [PATCH 035/146] Define and laydown the state and pillar files only when required for tests Signed-off-by: Pedro Algarvio --- tests/pytests/pkg/conftest.py | 173 ++++-------------- .../pytests/pkg/integration/test_salt_call.py | 30 ++- .../pkg/integration/test_salt_pillar.py | 22 ++- .../pkg/integration/test_salt_state_file.py | 38 +++- 4 files changed, 111 insertions(+), 152 deletions(-) diff --git a/tests/pytests/pkg/conftest.py b/tests/pytests/pkg/conftest.py index c86981d1ef9..93a89579919 100644 --- a/tests/pytests/pkg/conftest.py +++ b/tests/pytests/pkg/conftest.py @@ -9,10 +9,9 @@ import pytest import yaml from pytestskipmarkers.utils import platform from saltfactories.utils import random_string -from saltfactories.utils.tempfiles import SaltPillarTree, SaltStateTree import salt.config -from tests.conftest import CODE_DIR, TESTS_DIR +from tests.conftest import CODE_DIR from tests.support.pkg import ApiRequest, SaltMaster, SaltMasterWindows, SaltPkgInstall log = logging.getLogger(__name__) @@ -181,127 +180,20 @@ def salt_factories(salt_factories, salt_factories_root_dir): @pytest.fixture(scope="session") -def state_tree(): - if platform.is_windows(): - file_root = pathlib.Path("C:/salt/srv/salt") - elif platform.is_darwin(): - file_root = pathlib.Path("/opt/srv/salt") - else: - file_root = pathlib.Path("/srv/salt") - envs = { - "base": [ - str(file_root), - str(TESTS_DIR / "pytests" / "pkg" / "files"), - ], - } - tree = SaltStateTree(envs=envs) - test_sls_contents = """ - test_foo: - test.succeed_with_changes: - - name: foo - """ - states_sls_contents = """ - update: - pkg.installed: - - name: bash - salt_dude: - user.present: - - name: dude - - fullname: Salt Dude - """ - win_states_sls_contents = """ - create_empty_file: - file.managed: - - name: C://salt/test/txt - salt_dude: - user.present: - - name: dude - - fullname: Salt Dude - """ - with tree.base.temp_file("test.sls", test_sls_contents), tree.base.temp_file( - "states.sls", states_sls_contents - ), tree.base.temp_file("win_states.sls", win_states_sls_contents): - yield tree - - -@pytest.fixture(scope="session") -def pillar_tree(): - """ - Add pillar files - """ - if platform.is_windows(): - pillar_root = pathlib.Path("C:/salt/srv/pillar") - elif platform.is_darwin(): - pillar_root = pathlib.Path("/opt/srv/pillar") - else: - pillar_root = pathlib.Path("/srv/pillar") - pillar_root.mkdir(mode=0o777, parents=True, exist_ok=True) - tree = SaltPillarTree( - envs={ - "base": [ - str(pillar_root), - ] - }, - ) - top_file_contents = """ - base: - '*': - - test - """ - test_file_contents = """ - info: test - """ - with tree.base.temp_file("top.sls", top_file_contents), tree.base.temp_file( - "test.sls", test_file_contents - ): - yield tree - - -@pytest.fixture(scope="module") -def sls(state_tree): - """ - Add an sls file - """ - test_sls_contents = """ - test_foo: - test.succeed_with_changes: - - name: foo - """ - states_sls_contents = """ - update: - pkg.installed: - - name: bash - salt_dude: - user.present: - - name: dude - - fullname: Salt Dude - """ - win_states_sls_contents = """ - create_empty_file: - file.managed: - - name: C://salt/test/txt - salt_dude: - user.present: - - name: dude - - fullname: Salt Dude - """ - with state_tree.base.temp_file( - "tests.sls", test_sls_contents - ), state_tree.base.temp_file( - "states.sls", states_sls_contents - ), state_tree.base.temp_file( - "win_states.sls", win_states_sls_contents - ): - yield - - -@pytest.fixture(scope="session") -def salt_master( - salt_factories, install_salt, state_tree, pillar_tree, pkg_tests_account -): +def salt_master(salt_factories, install_salt, pkg_tests_account): """ Start up a master """ + if platform.is_windows(): + state_tree = "C:/salt/srv/salt" + pillar_tree = "C:/salt/srv/pillar" + elif platform.is_darwin(): + state_tree = "/opt/srv/salt" + pillar_tree = "/opt/srv/pillar" + else: + state_tree = "/srv/salt" + pillar_tree = "/srv/pillar" + start_timeout = None # Since the daemons are "packaged" with tiamat, the salt plugins provided # by salt-factories won't be discovered. Provide the required `*_dirs` on @@ -318,9 +210,20 @@ def salt_master( config_defaults["enable_fqdns_grains"] = False config_overrides = { "timeout": 30, - "file_roots": state_tree.as_dict(), - "pillar_roots": pillar_tree.as_dict(), - "rest_cherrypy": {"port": 8000, "disable_ssl": True}, + "file_roots": { + "base": [ + state_tree, + ] + }, + "pillar_roots": { + "base": [ + pillar_tree, + ] + }, + "rest_cherrypy": { + "port": 8000, + "disable_ssl": True, + }, "netapi_enable_clients": ["local"], "external_auth": { "auto": { @@ -432,15 +335,14 @@ def salt_master( ], check=True, ) + # The engines_dirs is created in .nox path. We need to set correct perms # for the user running the Salt Master - subprocess.run( - ["chown", "-R", "salt:salt", str(CODE_DIR.parent / ".nox")], check=False - ) - file_roots = pathlib.Path("/srv/", "salt") - pillar_roots = pathlib.Path("/srv/", "pillar") - for _dir in [file_roots, pillar_roots]: - subprocess.run(["chown", "-R", "salt:salt", str(_dir)], check=False) + check_paths = [state_tree, pillar_tree, CODE_DIR / ".nox"] + for path in check_paths: + if os.path.exists(path) is False: + continue + subprocess.run(["chown", "-R", "salt:salt", str(path)], check=False) with factory.started(start_timeout=start_timeout): yield factory @@ -494,10 +396,13 @@ def salt_minion(salt_factories, salt_master, install_salt): # which sets root perms on /srv/salt and /srv/pillar since we are running # the test suite as root, but we want to run Salt master as salt if not platform.is_windows() and not platform.is_darwin(): - file_roots = pathlib.Path("/srv/", "salt") - pillar_roots = pathlib.Path("/srv/", "pillar") - for _dir in [file_roots, pillar_roots]: - subprocess.run(["chown", "-R", "salt:salt", str(_dir)], check=True) + state_tree = "/srv/salt" + pillar_tree = "/srv/pillar" + check_paths = [state_tree, pillar_tree, CODE_DIR / ".nox"] + for path in check_paths: + if os.path.exists(path) is False: + continue + subprocess.run(["chown", "-R", "salt:salt", str(path)], check=False) factory.after_terminate( pytest.helpers.remove_stale_minion_key, salt_master, factory.id diff --git a/tests/pytests/pkg/integration/test_salt_call.py b/tests/pytests/pkg/integration/test_salt_call.py index 6be81847972..609620fb302 100644 --- a/tests/pytests/pkg/integration/test_salt_call.py +++ b/tests/pytests/pkg/integration/test_salt_call.py @@ -6,8 +6,8 @@ def test_salt_call_local(salt_call_cli): Test salt-call --local test.ping """ ret = salt_call_cli.run("--local", "test.ping") - assert ret.data is True assert ret.returncode == 0 + assert ret.data is True def test_salt_call(salt_call_cli): @@ -15,19 +15,31 @@ def test_salt_call(salt_call_cli): Test salt-call test.ping """ ret = salt_call_cli.run("test.ping") - assert ret.data is True assert ret.returncode == 0 + assert ret.data is True -def test_sls(salt_call_cli): +@pytest.fixture +def state_name(salt_master): + name = "some-test-state" + sls_contents = """ + test_foo: + test.succeed_with_changes: + - name: foo + """ + with salt_master.state_tree.base.temp_file(f"{name}.sls", sls_contents): + yield name + + +def test_sls(salt_call_cli, state_name): """ Test calling a sls file """ - ret = salt_call_cli.run("state.apply", "test") - assert ret.data, ret + ret = salt_call_cli.run("state.apply", state_name) + assert ret.returncode == 0 + assert ret.data sls_ret = ret.data[next(iter(ret.data))] assert sls_ret["changes"]["testing"]["new"] == "Something pretended to change" - assert ret.returncode == 0 def test_salt_call_local_sys_doc_none(salt_call_cli): @@ -35,8 +47,8 @@ def test_salt_call_local_sys_doc_none(salt_call_cli): Test salt-call --local sys.doc none """ ret = salt_call_cli.run("--local", "sys.doc", "none") - assert not ret.data assert ret.returncode == 0 + assert not ret.data def test_salt_call_local_sys_doc_aliases(salt_call_cli): @@ -44,11 +56,11 @@ def test_salt_call_local_sys_doc_aliases(salt_call_cli): Test salt-call --local sys.doc aliases """ ret = salt_call_cli.run("--local", "sys.doc", "aliases.list_aliases") - assert "aliases.list_aliases" in ret.data assert ret.returncode == 0 + assert "aliases.list_aliases" in ret.data -@pytest.mark.skip_on_windows() +@pytest.mark.skip_on_windows def test_salt_call_cmd_run_id_runas(salt_call_cli, pkg_tests_account, caplog): """ Test salt-call --local cmd_run id with runas diff --git a/tests/pytests/pkg/integration/test_salt_pillar.py b/tests/pytests/pkg/integration/test_salt_pillar.py index 007bae21f96..c2d1c80eedd 100644 --- a/tests/pytests/pkg/integration/test_salt_pillar.py +++ b/tests/pytests/pkg/integration/test_salt_pillar.py @@ -5,9 +5,27 @@ pytestmark = [ ] -def test_salt_pillar(salt_cli, salt_minion): +@pytest.fixture +def pillar_name(salt_master): + name = "info" + top_file_contents = """ + base: + '*': + - test + """ + test_file_contents = f""" + {name}: test + """ + with salt_master.pillar_tree.base.temp_file( + "top.sls", top_file_contents + ), salt_master.pillar_tree.base.temp_file("test.sls", test_file_contents): + yield name + + +def test_salt_pillar(salt_cli, salt_minion, pillar_name): """ Test pillar.items """ ret = salt_cli.run("pillar.items", minion_tgt=salt_minion.id) - assert "info" in ret.data + assert ret.returncode == 0 + assert pillar_name in ret.data diff --git a/tests/pytests/pkg/integration/test_salt_state_file.py b/tests/pytests/pkg/integration/test_salt_state_file.py index b951b48bde6..5e3d4f56d30 100644 --- a/tests/pytests/pkg/integration/test_salt_state_file.py +++ b/tests/pytests/pkg/integration/test_salt_state_file.py @@ -7,16 +7,40 @@ pytestmark = [ ] -def test_salt_state_file(salt_cli, salt_minion): +@pytest.fixture +def state_name(salt_master): + name = "some-state" + if sys.platform.startswith("win"): + sls_contents = """ + create_empty_file: + file.managed: + - name: C://salt/test/txt + salt_dude: + user.present: + - name: dude + - fullname: Salt Dude + """ + else: + sls_contents = """ + update: + pkg.installed: + - name: bash + salt_dude: + user.present: + - name: dude + - fullname: Salt Dude + """ + with salt_master.state_tree.base.temp_file(f"{name}.sls", sls_contents): + yield name + + +def test_salt_state_file(salt_cli, salt_minion, state_name): """ Test state file """ - if sys.platform.startswith("win"): - ret = salt_cli.run("state.apply", "win_states", minion_tgt=salt_minion.id) - else: - ret = salt_cli.run("state.apply", "states", minion_tgt=salt_minion.id) - - assert ret.data, ret + ret = salt_cli.run("state.apply", state_name, minion_tgt=salt_minion.id) + assert ret.returncode == 0 + assert ret.data if ret.stdout and "Minion did not return" in ret.stdout: pytest.skip("Skipping test, state took too long to apply") sls_ret = ret.data[next(iter(ret.data))] From f1882947d8bf57d42acdaee0d93d21ec24d7c68b Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Fri, 8 Dec 2023 22:11:21 +0000 Subject: [PATCH 036/146] Fix the daemons path on the generated `.plist` files on MacOS Signed-off-by: Pedro Algarvio --- tests/support/pkg.py | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/tests/support/pkg.py b/tests/support/pkg.py index 8a28b7affcc..1030ef32caf 100644 --- a/tests/support/pkg.py +++ b/tests/support/pkg.py @@ -823,8 +823,7 @@ class SaltPkgInstall: plist_file.unlink() log.debug("Creating plist file for service: %s", service) - contents = textwrap.dedent( - f"""\ + contents = f"""\ @@ -836,9 +835,12 @@ class SaltPkgInstall: KeepAlive ProgramArguments - - {self.run_root} - {service} + """ + for part in self.binary_paths[service]: + contents += ( + f"""\n {part}\n""" + ) + contents += f"""\ -c {self.conf_dir} @@ -855,8 +857,7 @@ class SaltPkgInstall: """ - ) - plist_file.write_text(contents, encoding="utf-8") + plist_file.write_text(textwrap.dedent(contents), encoding="utf-8") contents = plist_file.read_text() log.debug("Created '%s'. Contents:\n%s", plist_file, contents) From 457d5f71fc56f6c142a910b0c83dc1007a4fb5ec Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Sat, 9 Dec 2023 10:32:58 +0000 Subject: [PATCH 037/146] Exitcode 3 just means the service is not running. Signed-off-by: Pedro Algarvio --- tests/support/pkg.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/support/pkg.py b/tests/support/pkg.py index 1030ef32caf..3d0e086e077 100644 --- a/tests/support/pkg.py +++ b/tests/support/pkg.py @@ -868,7 +868,7 @@ class SaltPkgInstall: ret = self.proc.run("systemctl", "daemon-reload") self._check_retcode(ret) ret = self.proc.run("systemctl", "status", service) - if ret.returncode in (3, 4): + if ret.returncode == 4: log.warning( "No systemd unit file was found for service %s. Creating one.", service ) @@ -892,7 +892,7 @@ class SaltPkgInstall: binary = shutil.which(binary[0]) or binary[0] elif isinstance(binary, list): binary = " ".join(binary) - unit_path = pathlib.Path("/etc", "systemd", "system", f"{service}.service") + unit_path = pathlib.Path(f"/etc/systemd/system/{service}.service") contents = contents.format( service=service, tgt=binary, conf_dir=self.conf_dir ) From 9344f61ea038562e67cc696e00bb964de52fa6a2 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Sat, 9 Dec 2023 10:43:53 +0000 Subject: [PATCH 038/146] Make sure the state tree files created have the right permissions Signed-off-by: Pedro Algarvio --- tests/pytests/pkg/conftest.py | 15 ++++++++------- .../pytests/pkg/integration/test_check_imports.py | 12 ++++++++++++ tests/pytests/pkg/integration/test_salt_call.py | 13 +++++++++++++ tests/pytests/pkg/integration/test_salt_pillar.py | 13 +++++++++++++ .../pkg/integration/test_salt_state_file.py | 15 +++++++++++++-- 5 files changed, 59 insertions(+), 9 deletions(-) diff --git a/tests/pytests/pkg/conftest.py b/tests/pytests/pkg/conftest.py index 93a89579919..048ad7a238d 100644 --- a/tests/pytests/pkg/conftest.py +++ b/tests/pytests/pkg/conftest.py @@ -336,13 +336,14 @@ def salt_master(salt_factories, install_salt, pkg_tests_account): check=True, ) - # The engines_dirs is created in .nox path. We need to set correct perms - # for the user running the Salt Master - check_paths = [state_tree, pillar_tree, CODE_DIR / ".nox"] - for path in check_paths: - if os.path.exists(path) is False: - continue - subprocess.run(["chown", "-R", "salt:salt", str(path)], check=False) + if not platform.is_windows() and not platform.is_darwin(): + # The engines_dirs is created in .nox path. We need to set correct perms + # for the user running the Salt Master + check_paths = [state_tree, pillar_tree, CODE_DIR / ".nox"] + for path in check_paths: + if os.path.exists(path) is False: + continue + subprocess.run(["chown", "-R", "salt:salt", str(path)], check=False) with factory.started(start_timeout=start_timeout): yield factory diff --git a/tests/pytests/pkg/integration/test_check_imports.py b/tests/pytests/pkg/integration/test_check_imports.py index 1cd14573a97..8560ea31b15 100644 --- a/tests/pytests/pkg/integration/test_check_imports.py +++ b/tests/pytests/pkg/integration/test_check_imports.py @@ -1,6 +1,8 @@ import logging +import subprocess import pytest +from pytestskipmarkers.utils import platform from saltfactories.utils.functional import MultiStateResult pytestmark = [ @@ -73,6 +75,16 @@ def state_name(salt_master): with salt_master.state_tree.base.temp_file( f"{name}.sls", CHECK_IMPORTS_SLS_CONTENTS ): + if not platform.is_windows() and not platform.is_darwin(): + subprocess.run( + [ + "chown", + "-R", + "salt:salt", + str(salt_master.state_tree.base.write_path), + ], + check=False, + ) yield name diff --git a/tests/pytests/pkg/integration/test_salt_call.py b/tests/pytests/pkg/integration/test_salt_call.py index 609620fb302..69f434a2c40 100644 --- a/tests/pytests/pkg/integration/test_salt_call.py +++ b/tests/pytests/pkg/integration/test_salt_call.py @@ -1,4 +1,7 @@ +import subprocess + import pytest +from pytestskipmarkers.utils import platform def test_salt_call_local(salt_call_cli): @@ -28,6 +31,16 @@ def state_name(salt_master): - name: foo """ with salt_master.state_tree.base.temp_file(f"{name}.sls", sls_contents): + if not platform.is_windows() and not platform.is_darwin(): + subprocess.run( + [ + "chown", + "-R", + "salt:salt", + str(salt_master.state_tree.base.write_path), + ], + check=False, + ) yield name diff --git a/tests/pytests/pkg/integration/test_salt_pillar.py b/tests/pytests/pkg/integration/test_salt_pillar.py index c2d1c80eedd..f6cacf14b3c 100644 --- a/tests/pytests/pkg/integration/test_salt_pillar.py +++ b/tests/pytests/pkg/integration/test_salt_pillar.py @@ -1,4 +1,7 @@ +import subprocess + import pytest +from pytestskipmarkers.utils import platform pytestmark = [ pytest.mark.skip_on_windows, @@ -19,6 +22,16 @@ def pillar_name(salt_master): with salt_master.pillar_tree.base.temp_file( "top.sls", top_file_contents ), salt_master.pillar_tree.base.temp_file("test.sls", test_file_contents): + if not platform.is_windows() and not platform.is_darwin(): + subprocess.run( + [ + "chown", + "-R", + "salt:salt", + str(salt_master.pillar_tree.base.write_path), + ], + check=False, + ) yield name diff --git a/tests/pytests/pkg/integration/test_salt_state_file.py b/tests/pytests/pkg/integration/test_salt_state_file.py index 5e3d4f56d30..bbdd894b5cd 100644 --- a/tests/pytests/pkg/integration/test_salt_state_file.py +++ b/tests/pytests/pkg/integration/test_salt_state_file.py @@ -1,6 +1,7 @@ -import sys +import subprocess import pytest +from pytestskipmarkers.utils import platform pytestmark = [ pytest.mark.skip_on_windows, @@ -10,7 +11,7 @@ pytestmark = [ @pytest.fixture def state_name(salt_master): name = "some-state" - if sys.platform.startswith("win"): + if platform.is_windows(): sls_contents = """ create_empty_file: file.managed: @@ -31,6 +32,16 @@ def state_name(salt_master): - fullname: Salt Dude """ with salt_master.state_tree.base.temp_file(f"{name}.sls", sls_contents): + if not platform.is_windows() and not platform.is_darwin(): + subprocess.run( + [ + "chown", + "-R", + "salt:salt", + str(salt_master.state_tree.base.write_path), + ], + check=False, + ) yield name From 5ef5b5aa315f52a8ea58df56ed384d720c751f7b Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Sun, 10 Dec 2023 10:01:27 +0000 Subject: [PATCH 039/146] Don't override the results. Signed-off-by: Pedro Algarvio --- .../pkg/integration/test_check_imports.py | 46 ++++++++++--------- 1 file changed, 24 insertions(+), 22 deletions(-) diff --git a/tests/pytests/pkg/integration/test_check_imports.py b/tests/pytests/pkg/integration/test_check_imports.py index 8560ea31b15..eac49f48fac 100644 --- a/tests/pytests/pkg/integration/test_check_imports.py +++ b/tests/pytests/pkg/integration/test_check_imports.py @@ -18,7 +18,7 @@ import importlib def run(): config = {} - for test_import in [ + for module in [ 'templates', 'platform', 'cli', 'executors', 'config', 'wheel', 'netapi', 'cache', 'proxy', 'transport', 'metaproxy', 'modules', 'tokens', 'matchers', 'acl', 'auth', 'log', 'engines', 'client', 'returners', 'runners', 'tops', @@ -26,44 +26,46 @@ def run(): 'beacons', 'pillar', 'spm', 'utils', 'sdb', 'fileserver', 'defaults', 'ext', 'queues', 'grains', 'serializers' ]: + import_name = "salt.{}".format(module) try: - import_name = "salt.{}".format(test_import) importlib.import_module(import_name) - config['test_imports_succeeded'] = { + config[import_name] = { 'test.succeed_without_changes': [ { - 'name': import_name - }, - ], + "name": import_name, + 'comment': "The '{}' import succeeded.".format(import_name) + } + ] } except ModuleNotFoundError as err: - config['test_imports_failed'] = { + config[import_name] = { 'test.fail_without_changes': [ { - 'name': import_name, - 'comment': "The imports test failed. The error was: {}".format(err) - }, - ], + "name": import_name, + 'comment': "The '{}' import failed. The error was: {}".format(import_name, err) + } + ] } - for stdlib_import in ["telnetlib"]: + for import_name in ["telnetlib"]: try: - importlib.import_module(stdlib_import) - config['stdlib_imports_succeeded'] = { + importlib.import_module(import_name) + config[import_name] = { 'test.succeed_without_changes': [ { - 'name': stdlib_import - }, - ], + "name": import_name, + 'comment': "The '{}' import succeeded.".format(import_name) + } + ] } except ModuleNotFoundError as err: - config['stdlib_imports_failed'] = { + config[import_name] = { 'test.fail_without_changes': [ { - 'name': stdlib_import, - 'comment': "The stdlib imports test failed. The error was: {}".format(err) - }, - ], + "name": import_name, + 'comment': "The '{}' import failed. The error was: {}".format(import_name, err) + } + ] } return config """ From e7b7cf2272a647debed7bb4fa20496cab1606bf4 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Tue, 12 Dec 2023 07:02:51 +0000 Subject: [PATCH 040/146] Simplify the state to run Signed-off-by: Pedro Algarvio --- .../pkg/integration/test_salt_state_file.py | 65 +++++++++++-------- 1 file changed, 38 insertions(+), 27 deletions(-) diff --git a/tests/pytests/pkg/integration/test_salt_state_file.py b/tests/pytests/pkg/integration/test_salt_state_file.py index bbdd894b5cd..7b71fcb2365 100644 --- a/tests/pytests/pkg/integration/test_salt_state_file.py +++ b/tests/pytests/pkg/integration/test_salt_state_file.py @@ -1,36 +1,39 @@ import subprocess +import types import pytest from pytestskipmarkers.utils import platform - -pytestmark = [ - pytest.mark.skip_on_windows, -] +from saltfactories.utils.functional import MultiStateResult @pytest.fixture -def state_name(salt_master): +def files(tmp_path): + return types.SimpleNamespace( + fpath_1=tmp_path / "fpath_1.txt", + fpath_2=tmp_path / "fpath_2.txt", + fpath_3=tmp_path / "fpath_3.txt", + ) + + +@pytest.fixture +def state_name(files, salt_master): name = "some-state" - if platform.is_windows(): - sls_contents = """ - create_empty_file: + sls_contents = f""" + create-fpath-1-file: file.managed: - - name: C://salt/test/txt - salt_dude: - user.present: - - name: dude - - fullname: Salt Dude - """ - else: - sls_contents = """ - update: - pkg.installed: - - name: bash - salt_dude: - user.present: - - name: dude - - fullname: Salt Dude + - name: {files.fpath_1} + + create-fpath-2-file: + file.managed: + - name: {files.fpath_2} + + create-fpath-3-file: + file.managed: + - name: {files.fpath_3} """ + assert files.fpath_1.exists() is False + assert files.fpath_2.exists() is False + assert files.fpath_3.exists() is False with salt_master.state_tree.base.temp_file(f"{name}.sls", sls_contents): if not platform.is_windows() and not platform.is_darwin(): subprocess.run( @@ -45,15 +48,23 @@ def state_name(salt_master): yield name -def test_salt_state_file(salt_cli, salt_minion, state_name): +def test_salt_state_file(salt_cli, salt_minion, state_name, files): """ Test state file """ + assert files.fpath_1.exists() is False + assert files.fpath_2.exists() is False + assert files.fpath_3.exists() is False + ret = salt_cli.run("state.apply", state_name, minion_tgt=salt_minion.id) assert ret.returncode == 0 assert ret.data if ret.stdout and "Minion did not return" in ret.stdout: pytest.skip("Skipping test, state took too long to apply") - sls_ret = ret.data[next(iter(ret.data))] - assert "changes" in sls_ret - assert "name" in sls_ret + + for state_return in MultiStateResult(ret.data): + assert state_return.result is True + + assert files.fpath_1.exists() is True + assert files.fpath_2.exists() is True + assert files.fpath_3.exists() is True From 3f74d428e15d4332c21b693cc37215ecbaacffa3 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Thu, 7 Dec 2023 17:00:04 +0000 Subject: [PATCH 041/146] Stop importing salt in `tools/` Signed-off-by: Pedro Algarvio --- .../static/ci/py3.10/tools-virustotal.txt | 10 ++--- requirements/static/ci/py3.10/tools.txt | 42 +++++-------------- .../static/ci/py3.11/tools-virustotal.txt | 10 ++--- requirements/static/ci/py3.11/tools.txt | 42 +++++-------------- .../static/ci/py3.12/tools-virustotal.txt | 10 ++--- requirements/static/ci/py3.12/tools.txt | 42 +++++-------------- .../static/ci/py3.9/tools-virustotal.txt | 10 ++--- requirements/static/ci/py3.9/tools.txt | 42 +++++-------------- requirements/static/ci/tools-virustotal.in | 2 +- requirements/static/ci/tools.in | 2 - salt/version.py | 7 ++++ tools/__init__.py | 9 ---- tools/precommit/docstrings.py | 10 +++-- 13 files changed, 74 insertions(+), 164 deletions(-) diff --git a/requirements/static/ci/py3.10/tools-virustotal.txt b/requirements/static/ci/py3.10/tools-virustotal.txt index 11aa11ca27b..e190ae38537 100644 --- a/requirements/static/ci/py3.10/tools-virustotal.txt +++ b/requirements/static/ci/py3.10/tools-virustotal.txt @@ -6,23 +6,23 @@ # certifi==2023.7.22 # via - # -c requirements/static/ci/../pkg/py3.10/linux.txt + # -c requirements/static/ci/../ci/py3.10/tools.txt # requests charset-normalizer==3.2.0 # via - # -c requirements/static/ci/../pkg/py3.10/linux.txt + # -c requirements/static/ci/../ci/py3.10/tools.txt # requests idna==3.2 # via - # -c requirements/static/ci/../pkg/py3.10/linux.txt + # -c requirements/static/ci/../ci/py3.10/tools.txt # requests requests==2.31.0 # via - # -c requirements/static/ci/../pkg/py3.10/linux.txt + # -c requirements/static/ci/../ci/py3.10/tools.txt # virustotal3 urllib3==1.26.18 # via - # -c requirements/static/ci/../pkg/py3.10/linux.txt + # -c requirements/static/ci/../ci/py3.10/tools.txt # requests virustotal3==1.0.8 # via -r requirements/static/ci/tools-virustotal.in diff --git a/requirements/static/ci/py3.10/tools.txt b/requirements/static/ci/py3.10/tools.txt index 2b4a1a32fd2..e390aabbffd 100644 --- a/requirements/static/ci/py3.10/tools.txt +++ b/requirements/static/ci/py3.10/tools.txt @@ -15,66 +15,44 @@ botocore==1.29.147 # boto3 # s3transfer certifi==2023.7.22 - # via - # -c requirements/static/ci/../pkg/py3.10/linux.txt - # requests + # via requests charset-normalizer==3.2.0 - # via - # -c requirements/static/ci/../pkg/py3.10/linux.txt - # requests + # via requests idna==3.2 - # via - # -c requirements/static/ci/../pkg/py3.10/linux.txt - # requests + # via requests jinja2==3.1.2 - # via - # -c requirements/static/ci/../pkg/py3.10/linux.txt - # -r requirements/static/ci/tools.in + # via -r requirements/static/ci/tools.in jmespath==1.0.1 # via - # -c requirements/static/ci/../pkg/py3.10/linux.txt # boto3 # botocore markdown-it-py==2.2.0 # via rich markupsafe==2.1.2 - # via - # -c requirements/static/ci/../pkg/py3.10/linux.txt - # jinja2 + # via jinja2 mdurl==0.1.2 # via markdown-it-py packaging==22.0 - # via - # -c requirements/static/ci/../pkg/py3.10/linux.txt - # -r requirements/static/ci/tools.in + # via -r requirements/static/ci/tools.in pygments==2.13.0 # via rich python-dateutil==2.8.1 - # via - # -c requirements/static/ci/../pkg/py3.10/linux.txt - # botocore + # via botocore python-tools-scripts==0.18.6 # via -r requirements/static/ci/tools.in pyyaml==6.0.1 - # via - # -c requirements/static/ci/../pkg/py3.10/linux.txt - # -r requirements/static/ci/tools.in + # via -r requirements/static/ci/tools.in requests==2.31.0 - # via - # -c requirements/static/ci/../pkg/py3.10/linux.txt - # python-tools-scripts + # via python-tools-scripts rich==13.3.5 # via python-tools-scripts s3transfer==0.6.1 # via boto3 six==1.16.0 - # via - # -c requirements/static/ci/../pkg/py3.10/linux.txt - # python-dateutil + # via python-dateutil typing-extensions==4.2.0 # via python-tools-scripts urllib3==1.26.18 # via - # -c requirements/static/ci/../pkg/py3.10/linux.txt # botocore # requests diff --git a/requirements/static/ci/py3.11/tools-virustotal.txt b/requirements/static/ci/py3.11/tools-virustotal.txt index 1b0f1bd5b8e..53b23befa51 100644 --- a/requirements/static/ci/py3.11/tools-virustotal.txt +++ b/requirements/static/ci/py3.11/tools-virustotal.txt @@ -6,23 +6,23 @@ # certifi==2023.7.22 # via - # -c requirements/static/ci/../pkg/py3.11/linux.txt + # -c requirements/static/ci/../ci/py3.11/tools.txt # requests charset-normalizer==3.2.0 # via - # -c requirements/static/ci/../pkg/py3.11/linux.txt + # -c requirements/static/ci/../ci/py3.11/tools.txt # requests idna==3.2 # via - # -c requirements/static/ci/../pkg/py3.11/linux.txt + # -c requirements/static/ci/../ci/py3.11/tools.txt # requests requests==2.31.0 # via - # -c requirements/static/ci/../pkg/py3.11/linux.txt + # -c requirements/static/ci/../ci/py3.11/tools.txt # virustotal3 urllib3==1.26.18 # via - # -c requirements/static/ci/../pkg/py3.11/linux.txt + # -c requirements/static/ci/../ci/py3.11/tools.txt # requests virustotal3==1.0.8 # via -r requirements/static/ci/tools-virustotal.in diff --git a/requirements/static/ci/py3.11/tools.txt b/requirements/static/ci/py3.11/tools.txt index bd066648bd2..acc8dbef504 100644 --- a/requirements/static/ci/py3.11/tools.txt +++ b/requirements/static/ci/py3.11/tools.txt @@ -15,62 +15,40 @@ botocore==1.24.46 # boto3 # s3transfer certifi==2023.07.22 - # via - # -c requirements/static/ci/../pkg/py3.11/linux.txt - # requests + # via requests charset-normalizer==3.2.0 - # via - # -c requirements/static/ci/../pkg/py3.11/linux.txt - # requests + # via requests commonmark==0.9.1 # via rich idna==3.2 - # via - # -c requirements/static/ci/../pkg/py3.11/linux.txt - # requests + # via requests jinja2==3.1.2 - # via - # -c requirements/static/ci/../pkg/py3.11/linux.txt - # -r requirements/static/ci/tools.in + # via -r requirements/static/ci/tools.in jmespath==1.0.1 # via - # -c requirements/static/ci/../pkg/py3.11/linux.txt # boto3 # botocore markupsafe==2.1.2 - # via - # -c requirements/static/ci/../pkg/py3.11/linux.txt - # jinja2 + # via jinja2 packaging==22.0 - # via - # -c requirements/static/ci/../pkg/py3.11/linux.txt - # -r requirements/static/ci/tools.in + # via -r requirements/static/ci/tools.in pygments==2.13.0 # via rich python-dateutil==2.8.1 - # via - # -c requirements/static/ci/../pkg/py3.11/linux.txt - # botocore + # via botocore python-tools-scripts==0.18.6 # via -r requirements/static/ci/tools.in pyyaml==6.0.1 - # via - # -c requirements/static/ci/../pkg/py3.11/linux.txt - # -r requirements/static/ci/tools.in + # via -r requirements/static/ci/tools.in requests==2.31.0 - # via - # -c requirements/static/ci/../pkg/py3.11/linux.txt - # python-tools-scripts + # via python-tools-scripts rich==12.5.1 # via python-tools-scripts s3transfer==0.5.2 # via boto3 six==1.16.0 - # via - # -c requirements/static/ci/../pkg/py3.11/linux.txt - # python-dateutil + # via python-dateutil urllib3==1.26.18 # via - # -c requirements/static/ci/../pkg/py3.11/linux.txt # botocore # requests diff --git a/requirements/static/ci/py3.12/tools-virustotal.txt b/requirements/static/ci/py3.12/tools-virustotal.txt index af03eeef1b2..d3ec2bf101a 100644 --- a/requirements/static/ci/py3.12/tools-virustotal.txt +++ b/requirements/static/ci/py3.12/tools-virustotal.txt @@ -6,23 +6,23 @@ # certifi==2023.7.22 # via - # -c requirements/static/ci/../pkg/py3.12/linux.txt + # -c requirements/static/ci/../ci/py3.12/tools.txt # requests charset-normalizer==3.2.0 # via - # -c requirements/static/ci/../pkg/py3.12/linux.txt + # -c requirements/static/ci/../ci/py3.12/tools.txt # requests idna==3.2 # via - # -c requirements/static/ci/../pkg/py3.12/linux.txt + # -c requirements/static/ci/../ci/py3.12/tools.txt # requests requests==2.31.0 # via - # -c requirements/static/ci/../pkg/py3.12/linux.txt + # -c requirements/static/ci/../ci/py3.12/tools.txt # virustotal3 urllib3==1.26.18 # via - # -c requirements/static/ci/../pkg/py3.12/linux.txt + # -c requirements/static/ci/../ci/py3.12/tools.txt # requests virustotal3==1.0.8 # via -r requirements/static/ci/tools-virustotal.in diff --git a/requirements/static/ci/py3.12/tools.txt b/requirements/static/ci/py3.12/tools.txt index 7cb6d4325a8..7531a07f5be 100644 --- a/requirements/static/ci/py3.12/tools.txt +++ b/requirements/static/ci/py3.12/tools.txt @@ -15,62 +15,40 @@ botocore==1.24.46 # boto3 # s3transfer certifi==2023.07.22 - # via - # -c requirements/static/ci/../pkg/py3.12/linux.txt - # requests + # via requests charset-normalizer==3.2.0 - # via - # -c requirements/static/ci/../pkg/py3.12/linux.txt - # requests + # via requests commonmark==0.9.1 # via rich idna==3.2 - # via - # -c requirements/static/ci/../pkg/py3.12/linux.txt - # requests + # via requests jinja2==3.1.2 - # via - # -c requirements/static/ci/../pkg/py3.12/linux.txt - # -r requirements/static/ci/tools.in + # via -r requirements/static/ci/tools.in jmespath==1.0.1 # via - # -c requirements/static/ci/../pkg/py3.12/linux.txt # boto3 # botocore markupsafe==2.1.2 - # via - # -c requirements/static/ci/../pkg/py3.12/linux.txt - # jinja2 + # via jinja2 packaging==22.0 - # via - # -c requirements/static/ci/../pkg/py3.12/linux.txt - # -r requirements/static/ci/tools.in + # via -r requirements/static/ci/tools.in pygments==2.13.0 # via rich python-dateutil==2.8.1 - # via - # -c requirements/static/ci/../pkg/py3.12/linux.txt - # botocore + # via botocore python-tools-scripts==0.18.6 # via -r requirements/static/ci/tools.in pyyaml==6.0.1 - # via - # -c requirements/static/ci/../pkg/py3.12/linux.txt - # -r requirements/static/ci/tools.in + # via -r requirements/static/ci/tools.in requests==2.31.0 - # via - # -c requirements/static/ci/../pkg/py3.12/linux.txt - # python-tools-scripts + # via python-tools-scripts rich==12.5.1 # via python-tools-scripts s3transfer==0.5.2 # via boto3 six==1.16.0 - # via - # -c requirements/static/ci/../pkg/py3.12/linux.txt - # python-dateutil + # via python-dateutil urllib3==1.26.18 # via - # -c requirements/static/ci/../pkg/py3.12/linux.txt # botocore # requests diff --git a/requirements/static/ci/py3.9/tools-virustotal.txt b/requirements/static/ci/py3.9/tools-virustotal.txt index 6972dd80375..6154582577b 100644 --- a/requirements/static/ci/py3.9/tools-virustotal.txt +++ b/requirements/static/ci/py3.9/tools-virustotal.txt @@ -6,23 +6,23 @@ # certifi==2023.7.22 # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/../ci/py3.9/tools.txt # requests charset-normalizer==3.2.0 # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/../ci/py3.9/tools.txt # requests idna==3.2 # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/../ci/py3.9/tools.txt # requests requests==2.31.0 # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/../ci/py3.9/tools.txt # virustotal3 urllib3==1.26.18 # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt + # -c requirements/static/ci/../ci/py3.9/tools.txt # requests virustotal3==1.0.8 # via -r requirements/static/ci/tools-virustotal.in diff --git a/requirements/static/ci/py3.9/tools.txt b/requirements/static/ci/py3.9/tools.txt index ae869c1408e..49375c5e736 100644 --- a/requirements/static/ci/py3.9/tools.txt +++ b/requirements/static/ci/py3.9/tools.txt @@ -15,66 +15,44 @@ botocore==1.29.147 # boto3 # s3transfer certifi==2023.7.22 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # requests + # via requests charset-normalizer==3.2.0 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # requests + # via requests idna==3.2 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # requests + # via requests jinja2==3.1.2 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -r requirements/static/ci/tools.in + # via -r requirements/static/ci/tools.in jmespath==1.0.1 # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt # boto3 # botocore markdown-it-py==2.2.0 # via rich markupsafe==2.1.2 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # jinja2 + # via jinja2 mdurl==0.1.2 # via markdown-it-py packaging==22.0 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -r requirements/static/ci/tools.in + # via -r requirements/static/ci/tools.in pygments==2.13.0 # via rich python-dateutil==2.8.1 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # botocore + # via botocore python-tools-scripts==0.18.6 # via -r requirements/static/ci/tools.in pyyaml==6.0.1 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # -r requirements/static/ci/tools.in + # via -r requirements/static/ci/tools.in requests==2.31.0 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # python-tools-scripts + # via python-tools-scripts rich==13.3.5 # via python-tools-scripts s3transfer==0.6.1 # via boto3 six==1.16.0 - # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt - # python-dateutil + # via python-dateutil typing-extensions==4.2.0 # via python-tools-scripts urllib3==1.26.18 # via - # -c requirements/static/ci/../pkg/py3.9/linux.txt # botocore # requests diff --git a/requirements/static/ci/tools-virustotal.in b/requirements/static/ci/tools-virustotal.in index b7d1a356f4e..f5830e23107 100644 --- a/requirements/static/ci/tools-virustotal.in +++ b/requirements/static/ci/tools-virustotal.in @@ -1,3 +1,3 @@ ---constraint=../pkg/py{py_version}/{platform}.txt +--constraint=../ci/py{py_version}/tools.txt virustotal3 diff --git a/requirements/static/ci/tools.in b/requirements/static/ci/tools.in index 21c4d8c1d9b..7bc0163df05 100644 --- a/requirements/static/ci/tools.in +++ b/requirements/static/ci/tools.in @@ -1,5 +1,3 @@ ---constraint=../pkg/py{py_version}/{platform}.txt - attrs python-tools-scripts >= 0.18.6 boto3 diff --git a/salt/version.py b/salt/version.py index e174d8bfb1f..ab852acca0b 100644 --- a/salt/version.py +++ b/salt/version.py @@ -927,6 +927,7 @@ def _parser(): parser.add_argument( "--next-release", help="Return the next release", action="store_true" ) + parser.add_argument("--parse", help="Parse the passed string as a salt version") # When pip installing we pass in other args to this script. # This allows us to catch those args but not use them parser.add_argument("unknown", nargs=argparse.REMAINDER) @@ -937,5 +938,11 @@ if __name__ == "__main__": args = _parser() if args.next_release: print(__saltstack_version__.next_release()) + elif args.parse: + try: + print(SaltStackVersion.parse(args.parse)) + except Exception as exc: # pylint: disable=broad-except + print(f"Failed to parse '{args.parse}' as a salt version: {exc}") + sys.exit(1) else: print(__version__) diff --git a/tools/__init__.py b/tools/__init__.py index f325c1f844a..1d46e63b2d5 100644 --- a/tools/__init__.py +++ b/tools/__init__.py @@ -12,26 +12,17 @@ STATIC_REQUIREMENTS_PATH = REQUIREMENTS_FILES_PATH / "static" CI_REQUIREMENTS_FILES_PATH = ( STATIC_REQUIREMENTS_PATH / "ci" / "py{}.{}".format(*sys.version_info) ) -PKG_REQUIREMENTS_FILES_PATH = ( - STATIC_REQUIREMENTS_PATH / "pkg" / "py{}.{}".format(*sys.version_info) -) DEFAULT_REQS_CONFIG = DefaultRequirementsConfig( pip_args=[ f"--constraint={REQUIREMENTS_FILES_PATH / 'constraints.txt'}", - f"--constraint={PKG_REQUIREMENTS_FILES_PATH / 'linux.txt'}", ], requirements_files=[ - REQUIREMENTS_FILES_PATH / "base.txt", CI_REQUIREMENTS_FILES_PATH / "tools.txt", ], ) RELEASE_VENV_CONFIG = VirtualEnvConfig( - env={ - "PIP_CONSTRAINT": str(REQUIREMENTS_FILES_PATH / "constraints.txt"), - }, pip_args=[ f"--constraint={REQUIREMENTS_FILES_PATH / 'constraints.txt'}", - f"--constraint={PKG_REQUIREMENTS_FILES_PATH / 'linux.txt'}", ], requirements_files=[ CI_REQUIREMENTS_FILES_PATH / "tools-virustotal.txt", diff --git a/tools/precommit/docstrings.py b/tools/precommit/docstrings.py index 40c962c2dc9..29a7e0eb4e0 100644 --- a/tools/precommit/docstrings.py +++ b/tools/precommit/docstrings.py @@ -10,12 +10,13 @@ import ast import os import pathlib import re +import subprocess +import sys from typing import TYPE_CHECKING from ptscripts import Context, command_group import tools.utils -from salt.version import SaltStackVersion from tools.precommit import SALT_INTERNAL_LOADERS_PATHS SALT_CODE_DIR = tools.utils.REPO_ROOT / "salt" @@ -1088,9 +1089,10 @@ def _check_valid_versions_on_docstrings(docstring): versions = [vs.strip() for vs in version.split(",")] bad_versions = [] for vs in versions: - try: - SaltStackVersion.parse(vs) - except ValueError: + ret = subprocess.run( + [sys.executable, str(SALT_CODE_DIR / "version.py"), vs], check=False + ) + if ret.returncode: bad_versions.append(vs) if bad_versions: return vtype, ", ".join(bad_versions) From 700efa613350d87461b08d993368868d4b74fdcf Mon Sep 17 00:00:00 2001 From: Felippe Burk Date: Fri, 15 Dec 2023 11:13:20 -0700 Subject: [PATCH 042/146] update photon paths to use their $releasever string string which includes .0 --- tests/pytests/pkg/download/test_pkg_download.py | 3 +++ tools/pkg/repo/create.py | 3 +++ 2 files changed, 6 insertions(+) diff --git a/tests/pytests/pkg/download/test_pkg_download.py b/tests/pytests/pkg/download/test_pkg_download.py index 0fa9089e77d..dce3880ed8b 100644 --- a/tests/pytests/pkg/download/test_pkg_download.py +++ b/tests/pytests/pkg/download/test_pkg_download.py @@ -256,6 +256,9 @@ def setup_redhat_family( ): arch = os.environ.get("SALT_REPO_ARCH") or "x86_64" + if os_name == "photon": + os_version = f"{os_version}.0" + if repo_subpath == "minor": repo_url_base = ( f"{root_url}/{os_name}/{os_version}/{arch}/{repo_subpath}/{salt_release}" diff --git a/tools/pkg/repo/create.py b/tools/pkg/repo/create.py index d9b8fb0a97d..3e94575639e 100644 --- a/tools/pkg/repo/create.py +++ b/tools/pkg/repo/create.py @@ -380,6 +380,9 @@ def rpm( assert incoming is not None assert repo_path is not None assert key_id is not None + + if distro == "photon": + distro_version = f"{distro_version}.0" display_name = f"{distro.capitalize()} {distro_version}" if distro_version not in _rpm_distro_info[distro]: ctx.error(f"Support for {display_name} is missing.") From bd6e4c59e8870ba462660e87bf59fac03a03bf76 Mon Sep 17 00:00:00 2001 From: Felippe Burk Date: Fri, 15 Dec 2023 13:14:23 -0700 Subject: [PATCH 043/146] Revert "update photon paths to use their $releasever string string which includes .0" This reverts commit fd4e3a225a444be5e063f3037f15872918140e90. --- tests/pytests/pkg/download/test_pkg_download.py | 3 --- tools/pkg/repo/create.py | 3 --- 2 files changed, 6 deletions(-) diff --git a/tests/pytests/pkg/download/test_pkg_download.py b/tests/pytests/pkg/download/test_pkg_download.py index dce3880ed8b..0fa9089e77d 100644 --- a/tests/pytests/pkg/download/test_pkg_download.py +++ b/tests/pytests/pkg/download/test_pkg_download.py @@ -256,9 +256,6 @@ def setup_redhat_family( ): arch = os.environ.get("SALT_REPO_ARCH") or "x86_64" - if os_name == "photon": - os_version = f"{os_version}.0" - if repo_subpath == "minor": repo_url_base = ( f"{root_url}/{os_name}/{os_version}/{arch}/{repo_subpath}/{salt_release}" diff --git a/tools/pkg/repo/create.py b/tools/pkg/repo/create.py index 3e94575639e..d9b8fb0a97d 100644 --- a/tools/pkg/repo/create.py +++ b/tools/pkg/repo/create.py @@ -380,9 +380,6 @@ def rpm( assert incoming is not None assert repo_path is not None assert key_id is not None - - if distro == "photon": - distro_version = f"{distro_version}.0" display_name = f"{distro.capitalize()} {distro_version}" if distro_version not in _rpm_distro_info[distro]: ctx.error(f"Support for {display_name} is missing.") From 535c7de7c7ca42ad01b33e69baca2050806ac9bb Mon Sep 17 00:00:00 2001 From: Felippe Burk Date: Fri, 15 Dec 2023 13:17:54 -0700 Subject: [PATCH 044/146] update photon paths to use their $releasever string --- tests/pytests/pkg/download/test_pkg_download.py | 3 +++ tools/pkg/repo/create.py | 3 +++ 2 files changed, 6 insertions(+) diff --git a/tests/pytests/pkg/download/test_pkg_download.py b/tests/pytests/pkg/download/test_pkg_download.py index 0fa9089e77d..dce3880ed8b 100644 --- a/tests/pytests/pkg/download/test_pkg_download.py +++ b/tests/pytests/pkg/download/test_pkg_download.py @@ -256,6 +256,9 @@ def setup_redhat_family( ): arch = os.environ.get("SALT_REPO_ARCH") or "x86_64" + if os_name == "photon": + os_version = f"{os_version}.0" + if repo_subpath == "minor": repo_url_base = ( f"{root_url}/{os_name}/{os_version}/{arch}/{repo_subpath}/{salt_release}" diff --git a/tools/pkg/repo/create.py b/tools/pkg/repo/create.py index d9b8fb0a97d..3e94575639e 100644 --- a/tools/pkg/repo/create.py +++ b/tools/pkg/repo/create.py @@ -380,6 +380,9 @@ def rpm( assert incoming is not None assert repo_path is not None assert key_id is not None + + if distro == "photon": + distro_version = f"{distro_version}.0" display_name = f"{distro.capitalize()} {distro_version}" if distro_version not in _rpm_distro_info[distro]: ctx.error(f"Support for {display_name} is missing.") From 7ae96350ba803d44a6e230ae1110a7107c486b9f Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Thu, 14 Dec 2023 23:47:14 -0700 Subject: [PATCH 045/146] Make pillar timeout test less flaky --- tests/pytests/integration/minion/test_return_retries.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/pytests/integration/minion/test_return_retries.py b/tests/pytests/integration/minion/test_return_retries.py index 8a226d26cd4..24be4c39695 100644 --- a/tests/pytests/integration/minion/test_return_retries.py +++ b/tests/pytests/integration/minion/test_return_retries.py @@ -55,7 +55,7 @@ def test_publish_retry(salt_master, salt_minion_retry, salt_cli, salt_run_cli): @pytest.mark.slow_test def test_pillar_timeout(salt_master_factory): cmd = """ - python -c "import time; time.sleep(2.5); print('{\\"foo\\": \\"bar\\"}');\" + python -c "import time; time.sleep(3.0); print('{\\"foo\\": \\"bar\\"}');\" """.strip() master_overrides = { "ext_pillar": [ From b120534bdcd51645d16ba6b18e08db52103a7107 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Wed, 13 Dec 2023 05:28:12 +0000 Subject: [PATCH 046/146] Set the right path for the config file Signed-off-by: Pedro Algarvio --- tests/pytests/unit/conftest.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tests/pytests/unit/conftest.py b/tests/pytests/unit/conftest.py index 587fc43babc..c7152f3d2d1 100644 --- a/tests/pytests/unit/conftest.py +++ b/tests/pytests/unit/conftest.py @@ -1,3 +1,5 @@ +import os + import pytest import salt.config @@ -20,6 +22,7 @@ def minion_opts(tmp_path): dirpath.mkdir(parents=True) opts[name] = str(dirpath) opts["log_file"] = "logs/minion.log" + opts["conf_file"] = os.path.join(opts["conf_dir"], "minion") return opts @@ -37,6 +40,7 @@ def master_opts(tmp_path): dirpath.mkdir(parents=True) opts[name] = str(dirpath) opts["log_file"] = "logs/master.log" + opts["conf_file"] = os.path.join(opts["conf_dir"], "master") return opts @@ -55,4 +59,5 @@ def syndic_opts(tmp_path): dirpath.mkdir(parents=True) opts[name] = str(dirpath) opts["log_file"] = "logs/syndic.log" + opts["conf_file"] = os.path.join(opts["conf_dir"], "syndic") return opts From 0d4e3fa4cf6cf737cfa1056c629e269d91feb21a Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Sat, 16 Dec 2023 18:04:31 -0700 Subject: [PATCH 047/146] Even more reliable pillar timeout test --- tests/pytests/integration/minion/test_return_retries.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/pytests/integration/minion/test_return_retries.py b/tests/pytests/integration/minion/test_return_retries.py index 24be4c39695..5e44d17317c 100644 --- a/tests/pytests/integration/minion/test_return_retries.py +++ b/tests/pytests/integration/minion/test_return_retries.py @@ -64,6 +64,7 @@ def test_pillar_timeout(salt_master_factory): "auto_accept": True, "worker_threads": 2, "peer": True, + "minion_data_cache": False, } minion_overrides = { "auth_timeout": 20, @@ -77,7 +78,7 @@ def test_pillar_timeout(salt_master_factory): - name: example - changes: True - result: True - - comment: "Nothing has actually been changed" + - comment: "Nothing has actually been changed {{ pillar['foo'] }}" """ master = salt_master_factory.salt_master_daemon( "pillar-timeout-master", @@ -105,6 +106,7 @@ def test_pillar_timeout(salt_master_factory): ) with master.started(), minion1.started(), minion2.started(), minion3.started(), minion4.started(), sls_tempfile: proc = cli.run("state.sls", sls_name, minion_tgt="*") + print(proc) # At least one minion should have a Pillar timeout assert proc.returncode == 1 minion_timed_out = False From 47de5e790bbb897c15a5d567cb8f6afe4405cb95 Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Sun, 17 Dec 2023 23:01:11 -0700 Subject: [PATCH 048/146] Even more reliable pillar_timeout test --- tests/pytests/integration/minion/test_return_retries.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/pytests/integration/minion/test_return_retries.py b/tests/pytests/integration/minion/test_return_retries.py index 5e44d17317c..d6456e4a47e 100644 --- a/tests/pytests/integration/minion/test_return_retries.py +++ b/tests/pytests/integration/minion/test_return_retries.py @@ -55,7 +55,7 @@ def test_publish_retry(salt_master, salt_minion_retry, salt_cli, salt_run_cli): @pytest.mark.slow_test def test_pillar_timeout(salt_master_factory): cmd = """ - python -c "import time; time.sleep(3.0); print('{\\"foo\\": \\"bar\\"}');\" + python -c "import time; time.sleep(5); print('{\\"foo\\": \\"bar\\"}');\" """.strip() master_overrides = { "ext_pillar": [ From 31d7bafc5b2c80348082425c4fdc62f282433686 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Tue, 26 Dec 2023 06:29:18 +0000 Subject: [PATCH 049/146] Append the `.0` for Photon OS, after checking supported versions Signed-off-by: Pedro Algarvio --- tools/pkg/repo/create.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tools/pkg/repo/create.py b/tools/pkg/repo/create.py index 3e94575639e..382ffdd0998 100644 --- a/tools/pkg/repo/create.py +++ b/tools/pkg/repo/create.py @@ -381,13 +381,14 @@ def rpm( assert repo_path is not None assert key_id is not None - if distro == "photon": - distro_version = f"{distro_version}.0" display_name = f"{distro.capitalize()} {distro_version}" if distro_version not in _rpm_distro_info[distro]: ctx.error(f"Support for {display_name} is missing.") ctx.exit(1) + if distro == "photon": + distro_version = f"{distro_version}.0" + ctx.info("Creating repository directory structure ...") create_repo_path = create_top_level_repo_path( ctx, From 4ec9295d7dfc406ddb76b51bebcd2b403f62d787 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Tue, 2 Jan 2024 14:15:34 +0000 Subject: [PATCH 050/146] Remove deprecation warning which turned into an error on Jan 2024 Signed-off-by: Pedro Algarvio --- salt/modules/aptpkg.py | 34 ----------------------- tests/pytests/unit/modules/test_aptpkg.py | 6 ++-- 2 files changed, 3 insertions(+), 37 deletions(-) diff --git a/salt/modules/aptpkg.py b/salt/modules/aptpkg.py index 6014129d58d..58a6fa85f68 100644 --- a/salt/modules/aptpkg.py +++ b/salt/modules/aptpkg.py @@ -47,7 +47,6 @@ from salt.exceptions import ( SaltInvocationError, ) from salt.modules.cmdmod import _parse_env -from salt.utils.versions import warn_until_date log = logging.getLogger(__name__) @@ -3113,39 +3112,6 @@ def _expand_repo_def(os_name, os_codename=None, **kwargs): return sanitized -def expand_repo_def(**kwargs): - """ - Take a repository definition and expand it to the full pkg repository dict - that can be used for comparison. This is a helper function to make - the Debian/Ubuntu apt sources sane for comparison in the pkgrepo states. - - This is designed to be called from pkgrepo states and will have little use - being called on the CLI. - - CLI Examples: - - .. code-block:: bash - - NOT USABLE IN THE CLI - """ - warn_until_date( - "20240101", - "The pkg.expand_repo_def function is deprecated and set for removal " - "after {date}. This is only unsed internally by the apt pkg state " - "module. If that's not the case, please file an new issue requesting " - "the removal of this deprecation warning", - stacklevel=3, - ) - if "os_name" not in kwargs: - kwargs["os_name"] = __grains__["os"] - if "os_codename" not in kwargs: - if "lsb_distrib_codename" in kwargs: - kwargs["os_codename"] = kwargs["lsb_distrib_codename"] - else: - kwargs["os_codename"] = __grains__.get("oscodename") - return _expand_repo_def(**kwargs) - - def _parse_selections(dpkgselection): """ Parses the format from ``dpkg --get-selections`` and return a format that diff --git a/tests/pytests/unit/modules/test_aptpkg.py b/tests/pytests/unit/modules/test_aptpkg.py index 7958a206a36..fdad2be4343 100644 --- a/tests/pytests/unit/modules/test_aptpkg.py +++ b/tests/pytests/unit/modules/test_aptpkg.py @@ -1269,8 +1269,8 @@ def test_expand_repo_def_cdrom(): # Valid source repo = "# deb cdrom:[Debian GNU/Linux 11.4.0 _Bullseye_ - Official amd64 NETINST 20220709-10:31]/ bullseye main\n" - sanitized = aptpkg.expand_repo_def(os_name="debian", repo=repo, file=source_file) - log.warning("SAN: %s", sanitized) + sanitized = aptpkg._expand_repo_def(os_name="debian", repo=repo, file=source_file) + log.debug("SAN: %s", sanitized) assert isinstance(sanitized, dict) assert "uri" in sanitized @@ -1280,7 +1280,7 @@ def test_expand_repo_def_cdrom(): # Pass the architecture and make sure it is added the the line attribute repo = "deb http://cdn-aws.deb.debian.org/debian/ stretch main\n" - sanitized = aptpkg.expand_repo_def( + sanitized = aptpkg._expand_repo_def( os_name="debian", repo=repo, file=source_file, architectures="amd64" ) From 2ed4a4193075a104fdf22e08eecbde8b0214fe34 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Tue, 2 Jan 2024 16:31:58 +0000 Subject: [PATCH 051/146] Stop importing `salt.log` it's long deprecated Signed-off-by: Pedro Algarvio --- .../pkg/integration/test_check_imports.py | 46 ++++++++++++++++--- 1 file changed, 40 insertions(+), 6 deletions(-) diff --git a/tests/pytests/pkg/integration/test_check_imports.py b/tests/pytests/pkg/integration/test_check_imports.py index eac49f48fac..f16aa338bf7 100644 --- a/tests/pytests/pkg/integration/test_check_imports.py +++ b/tests/pytests/pkg/integration/test_check_imports.py @@ -19,12 +19,46 @@ import importlib def run(): config = {} for module in [ - 'templates', 'platform', 'cli', 'executors', 'config', 'wheel', 'netapi', - 'cache', 'proxy', 'transport', 'metaproxy', 'modules', 'tokens', 'matchers', - 'acl', 'auth', 'log', 'engines', 'client', 'returners', 'runners', 'tops', - 'output', 'daemons', 'thorium', 'renderers', 'states', 'cloud', 'roster', - 'beacons', 'pillar', 'spm', 'utils', 'sdb', 'fileserver', 'defaults', - 'ext', 'queues', 'grains', 'serializers' + '_logging', + 'acl', + 'auth', + 'beacons', + 'cache', + 'cli', + 'client', + 'cloud', + 'config', + 'daemons', + 'defaults', + 'engines', + 'executors', + 'ext', + 'fileserver', + 'grains', + 'matchers', + 'metaproxy', + 'modules', + 'netapi', + 'output', + 'pillar', + 'platform', + 'proxy', + 'queues', + 'renderers', + 'returners', + 'roster', + 'runners', + 'sdb', + 'serializers', + 'spm', + 'states', + 'templates', + 'thorium', + 'tokens', + 'tops', + 'transport', + 'utils', + 'wheel', ]: import_name = "salt.{}".format(module) try: From 813f114135e02846a331c11c5f399f9f80c2c885 Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Fri, 29 Dec 2023 20:42:59 -0700 Subject: [PATCH 052/146] Skip flakey blackout tests on windows --- tests/pytests/scenarios/blackout/test_minion_blackout.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tests/pytests/scenarios/blackout/test_minion_blackout.py b/tests/pytests/scenarios/blackout/test_minion_blackout.py index fcc288edfb7..581ad2b135b 100644 --- a/tests/pytests/scenarios/blackout/test_minion_blackout.py +++ b/tests/pytests/scenarios/blackout/test_minion_blackout.py @@ -11,7 +11,11 @@ log = logging.getLogger(__name__) def _check_skip(grains): - if grains["os"] == "Windows" and grains["osrelease"] == "2016Server": + """ + Skip on windows because these tests are flaky, we need to spend some time to + debug why. + """ + if grains["os"] == "Windows": return True return False From 828ce69b80d9c3fe4589f353c2c36a6f8e6ae74e Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Sat, 30 Dec 2023 00:21:36 -0700 Subject: [PATCH 053/146] Destroy event_listener when app is no-longer used --- tests/pytests/integration/netapi/rest_tornado/conftest.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tests/pytests/integration/netapi/rest_tornado/conftest.py b/tests/pytests/integration/netapi/rest_tornado/conftest.py index f8923f01efb..c69f8a4c28a 100644 --- a/tests/pytests/integration/netapi/rest_tornado/conftest.py +++ b/tests/pytests/integration/netapi/rest_tornado/conftest.py @@ -18,9 +18,13 @@ def client_config(client_config, netapi_port): @pytest.fixture def app(app_urls, load_auth, client_config, minion_config, salt_sub_minion): - return netapi.build_tornado_app( + app = netapi.build_tornado_app( app_urls, load_auth, client_config, minion_config, setup_event_listener=True ) + try: + yield app + finally: + app.event_listener.destroy() @pytest.fixture From 6bb31e253449cd4c25c2599257ff895947273b74 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Tue, 2 Jan 2024 14:24:42 +0000 Subject: [PATCH 054/146] Fix source package build Signed-off-by: Pedro Algarvio --- pkg/debian/rules | 4 ++-- pkg/rpm/salt.spec | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pkg/debian/rules b/pkg/debian/rules index 3d39abe7ab1..6ed990418e4 100755 --- a/pkg/debian/rules +++ b/pkg/debian/rules @@ -24,8 +24,8 @@ override_dh_auto_build: export FETCH_RELENV_VERSION=$${SALT_RELENV_VERSION} export PY=$$(build/onedir/venv/bin/python3 -c 'import sys; sys.stdout.write("{}.{}".format(*sys.version_info)); sys.stdout.flush()') \ && build/onedir/venv/bin/python3 -m pip install -r requirements/static/ci/py$${PY}/tools.txt - build/onedir/venv/bin/relenv fetch --arch=$${SALT_PACKAGE_ARCH} --python=$${SALT_PYTHON_VERSION} - build/onedir/venv/bin/relenv toolchain fetch --arch=$${SALT_PACKAGE_ARCH} + build/onedir/venv/bin/relenv fetch --python=$${SALT_PYTHON_VERSION} + build/onedir/venv/bin/relenv toolchain fetch build/onedir/venv/bin/tools pkg build onedir-dependencies --arch $${SALT_PACKAGE_ARCH} --relenv-version=$${SALT_RELENV_VERSION} --python-version $${SALT_PYTHON_VERSION} --package-name build/onedir/salt --platform linux # Fix any hardcoded paths to the relenv python binary on any of the scripts installed in the /bin directory diff --git a/pkg/rpm/salt.spec b/pkg/rpm/salt.spec index 9bb75580e03..ed350a9e8dc 100644 --- a/pkg/rpm/salt.spec +++ b/pkg/rpm/salt.spec @@ -169,8 +169,8 @@ cd $RPM_BUILD_DIR export FETCH_RELENV_VERSION=${SALT_RELENV_VERSION} export PY=$(build/venv/bin/python3 -c 'import sys; sys.stdout.write("{}.{}".format(*sys.version_info)); sys.stdout.flush()') build/venv/bin/python3 -m pip install -r %{_salt_src}/requirements/static/ci/py${PY}/tools.txt - build/venv/bin/relenv fetch --arch=${SALT_PACKAGE_ARCH} --python=${SALT_PYTHON_VERSION} - build/venv/bin/relenv toolchain fetch --arch=${SALT_PACKAGE_ARCH} + build/venv/bin/relenv fetch --python=${SALT_PYTHON_VERSION} + build/venv/bin/relenv toolchain fetch cd %{_salt_src} $RPM_BUILD_DIR/build/venv/bin/tools pkg build onedir-dependencies --arch ${SALT_PACKAGE_ARCH} --relenv-version=${SALT_RELENV_VERSION} --python-version ${SALT_PYTHON_VERSION} --package-name $RPM_BUILD_DIR/build/salt --platform linux From 4b2e9cae6a4d0370880f9163df8eda4bdcbdbd24 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Fri, 12 Jan 2024 18:34:54 +0000 Subject: [PATCH 055/146] Fix CI nox artifacts download Signed-off-by: Pedro Algarvio --- tools/testsuite/__init__.py | 9 +++++++-- tools/testsuite/download.py | 28 ++++++++++++++++++---------- tools/utils/gh.py | 17 +++++++++++++---- 3 files changed, 38 insertions(+), 16 deletions(-) diff --git a/tools/testsuite/__init__.py b/tools/testsuite/__init__.py index d09d29be979..08abf12ddcd 100644 --- a/tools/testsuite/__init__.py +++ b/tools/testsuite/__init__.py @@ -48,7 +48,7 @@ ts = command_group(name="ts", help="Test Suite Related Commands", description=__ }, "platform": { "help": "The onedir platform artifact to download", - "choices": ("linux", "darwin", "windows"), + "choices": ("linux", "macos", "windows"), "required": True, }, "arch": { @@ -146,7 +146,12 @@ def setup_testsuite( if exitcode and exitcode != ExitCode.SOFT_FAIL: ctx.exit(exitcode) exitcode = tools.utils.gh.download_nox_artifact( - ctx, run_id=run_id, slug=slug, nox_env="ci-test-onedir", repository=repository + ctx, + run_id=run_id, + platform=platform, + arch=arch, + nox_env="ci-test-onedir", + repository=repository, ) if exitcode and exitcode != ExitCode.SOFT_FAIL: ctx.exit(exitcode) diff --git a/tools/testsuite/download.py b/tools/testsuite/download.py index edd7652125b..e9800e0a775 100644 --- a/tools/testsuite/download.py +++ b/tools/testsuite/download.py @@ -77,10 +77,15 @@ def download_onedir_artifact( "help": "The workflow run ID from where to download artifacts from", "required": True, }, - "slug": { - "help": "The OS slug", + "platform": { + "help": "The onedir platform artifact to download", + "choices": ("linux", "macos", "windows"), + "required": True, + }, + "arch": { + "help": "The onedir artifact architecture", + "choices": ("x86_64", "aarch64", "amd64", "x86"), "required": True, - "choices": OS_SLUGS, }, "nox_env": { "help": "The nox environment name.", @@ -93,7 +98,8 @@ def download_onedir_artifact( def download_nox_artifact( ctx: Context, run_id: int = None, - slug: str = None, + platform: str = None, + arch: str = None, nox_env: str = "ci-test-onedir", repository: str = "saltstack/salt", ): @@ -102,14 +108,16 @@ def download_nox_artifact( """ if TYPE_CHECKING: assert run_id is not None - assert slug is not None - - if slug.endswith("arm64"): - slug = slug.replace("-arm64", "") - nox_env += "-aarch64" + assert arch is not None + assert platform is not None exitcode = tools.utils.gh.download_nox_artifact( - ctx=ctx, run_id=run_id, slug=slug, nox_env=nox_env, repository=repository + ctx=ctx, + run_id=run_id, + platform=platform, + arch=arch, + nox_env=nox_env, + repository=repository, ) ctx.exit(exitcode) diff --git a/tools/utils/gh.py b/tools/utils/gh.py index 513e2cf2110..c40ff26ee0d 100644 --- a/tools/utils/gh.py +++ b/tools/utils/gh.py @@ -105,8 +105,9 @@ def download_onedir_artifact( def download_nox_artifact( ctx: Context, + platform: str, + arch: str, run_id: int = None, - slug: str = None, nox_env: str = "ci-test-onedir", repository: str = "saltstack/salt", ) -> ExitCode: @@ -115,7 +116,8 @@ def download_nox_artifact( """ if TYPE_CHECKING: assert run_id is not None - assert slug is not None + assert arch is not None + assert platform is not None artifacts_path = tools.utils.REPO_ROOT / ".nox" / nox_env if artifacts_path.exists(): @@ -123,7 +125,7 @@ def download_nox_artifact( f"The '.nox/{nox_env}' directory already exists ... Stopped processing." ) return ExitCode.SOFT_FAIL - artifact_name = f"nox-{slug}-{nox_env}" + artifact_name = f"nox-{platform}-{arch}-{nox_env}" ctx.info( f"Searching for artifact {artifact_name} from run_id {run_id} in repository {repository} ..." ) @@ -139,7 +141,14 @@ def download_nox_artifact( ctx.error("Could not find the 'nox' binary in $PATH") return ExitCode.FAIL ret = ctx.run( - nox, "--force-color", "-e", "decompress-dependencies", "--", slug, check=False + nox, + "--force-color", + "-e", + "decompress-dependencies", + "--", + platform, + arch, + check=False, ) if ret.returncode: ctx.error("Failed to decompress the nox dependencies") From 8e54d629b915f19ba87af3ce08d2597f169b8ad1 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Wed, 6 Dec 2023 12:44:52 +0000 Subject: [PATCH 056/146] Exclude package tests from the `ci-test-onedir` target Signed-off-by: Pedro Algarvio --- noxfile.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/noxfile.py b/noxfile.py index fc151ab0d73..3b63c7677b7 100644 --- a/noxfile.py +++ b/noxfile.py @@ -1056,6 +1056,9 @@ def _ci_test(session, transport, onedir=False): if onedir: env["ONEDIR_TESTRUN"] = "1" chunks = { + "pkg": [ + "tests/pytests/pkg", + ], "unit": [ "tests/unit", "tests/pytests/unit", @@ -1063,7 +1066,9 @@ def _ci_test(session, transport, onedir=False): "functional": [ "tests/pytests/functional", ], - "scenarios": ["tests/pytests/scenarios"], + "scenarios": [ + "tests/pytests/scenarios", + ], } test_group_number = os.environ.get("TEST_GROUP") or "1" From f8521ee290f5c53a718a635e323ceb99e41f008f Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Thu, 7 Dec 2023 11:40:14 +0000 Subject: [PATCH 057/146] We no longer have to maintain `pkg-tests-pytest.ini` Signed-off-by: Pedro Algarvio --- noxfile.py | 12 +++--------- pkg-tests-pytest.ini | 10 ---------- 2 files changed, 3 insertions(+), 19 deletions(-) delete mode 100644 pkg-tests-pytest.ini diff --git a/noxfile.py b/noxfile.py index 3b63c7677b7..da0a3493c5d 100644 --- a/noxfile.py +++ b/noxfile.py @@ -1842,7 +1842,9 @@ def ci_test_onedir_pkgs(session): ) chunks = { - "install": ["tests/pytests/pkg/"], + "install": [ + "tests/pytests/pkg/", + ], "upgrade": [ "--upgrade", "--no-uninstall", @@ -1895,8 +1897,6 @@ def ci_test_onedir_pkgs(session): pytest_args = ( cmd_args[:] + [ - "-c", - str(REPO_ROOT / "pkg-tests-pytest.ini"), f"--junitxml=artifacts/xml-unittests-output/test-results-{chunk}.xml", f"--log-file=artifacts/logs/runtests-{chunk}.log", ] @@ -1915,8 +1915,6 @@ def ci_test_onedir_pkgs(session): pytest_args = ( cmd_args[:] + [ - "-c", - str(REPO_ROOT / "pkg-tests-pytest.ini"), f"--junitxml=artifacts/xml-unittests-output/test-results-{chunk}-rerun.xml", f"--log-file=artifacts/logs/runtests-{chunk}-rerun.log", "--lf", @@ -1936,8 +1934,6 @@ def ci_test_onedir_pkgs(session): pytest_args = ( cmd_args[:] + [ - "-c", - str(REPO_ROOT / "pkg-tests-pytest.ini"), "--no-install", f"--junitxml=artifacts/xml-unittests-output/test-results-install.xml", f"--log-file=artifacts/logs/runtests-install.log", @@ -1955,8 +1951,6 @@ def ci_test_onedir_pkgs(session): pytest_args = ( cmd_args[:] + [ - "-c", - str(REPO_ROOT / "pkg-tests-pytest.ini"), "--no-install", f"--junitxml=artifacts/xml-unittests-output/test-results-install-rerun.xml", f"--log-file=artifacts/logs/runtests-install-rerun.log", diff --git a/pkg-tests-pytest.ini b/pkg-tests-pytest.ini deleted file mode 100644 index 390c029f863..00000000000 --- a/pkg-tests-pytest.ini +++ /dev/null @@ -1,10 +0,0 @@ -[pytest] -log_date_format=%H:%M:%S -log_cli_format=%(asctime)s,%(msecs)03.0f [%(name)-5s:%(lineno)-4d][%(levelname)-8s][%(processName)s(%(process)s)] %(message)s -log_file_format=%(asctime)s,%(msecs)03d [%(name)-17s:%(lineno)-4d][%(levelname)-8s][%(processName)s(%(process)d)] %(message)s -norecursedirs=templates tests/ -testpaths=pkg/tests -python_files=test_*.py -python_classes=Test* -python_functions = test_* -junit_family=xunit2 From aae627286d0e395463c317e56e6691764bf06ca4 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Thu, 7 Dec 2023 11:44:45 +0000 Subject: [PATCH 058/146] Don't rerun the packages tests on failures by default Signed-off-by: Pedro Algarvio --- noxfile.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/noxfile.py b/noxfile.py index da0a3493c5d..d003559891f 100644 --- a/noxfile.py +++ b/noxfile.py @@ -1905,6 +1905,9 @@ def ci_test_onedir_pkgs(session): try: _pytest(session, coverage=False, cmd_args=pytest_args, env=env) except CommandFailed: + if os.environ.get("RERUN_FAILURES", "0") == "0": + # Don't rerun on failures + return # Don't print the system information, not the test selection on reruns global PRINT_TEST_SELECTION From 58dfffa162b99e23291e57a8382e9dc755348c9c Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Thu, 7 Dec 2023 14:01:19 +0000 Subject: [PATCH 059/146] Run salt's daemons as system services for the package tests Signed-off-by: Pedro Algarvio --- noxfile.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/noxfile.py b/noxfile.py index d003559891f..c7e83b54698 100644 --- a/noxfile.py +++ b/noxfile.py @@ -1894,6 +1894,8 @@ def ci_test_onedir_pkgs(session): if chunk in ("upgrade-classic", "downgrade-classic"): cmd_args.append("--classic") + cmd_args.append("--pkg-system-service") + pytest_args = ( cmd_args[:] + [ From c149541b250f2e90158a3408d07774613948872b Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Sun, 10 Dec 2023 09:44:21 +0000 Subject: [PATCH 060/146] There are some common pytest CLI args that should always be passed Signed-off-by: Pedro Algarvio --- noxfile.py | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/noxfile.py b/noxfile.py index c7e83b54698..e9e5c6fdc73 100644 --- a/noxfile.py +++ b/noxfile.py @@ -1841,6 +1841,14 @@ def ci_test_onedir_pkgs(session): ) ) + common_pytest_args = [ + "--color=yes", + "--sys-stats", + "--run-destructive", + f"--output-columns={os.environ.get('OUTPUT_COLUMNS') or 120}", + "--pkg-system-service", + ] + chunks = { "install": [ "tests/pytests/pkg/", @@ -1894,10 +1902,9 @@ def ci_test_onedir_pkgs(session): if chunk in ("upgrade-classic", "downgrade-classic"): cmd_args.append("--classic") - cmd_args.append("--pkg-system-service") - pytest_args = ( - cmd_args[:] + common_pytest_args[:] + + cmd_args[:] + [ f"--junitxml=artifacts/xml-unittests-output/test-results-{chunk}.xml", f"--log-file=artifacts/logs/runtests-{chunk}.log", @@ -1918,7 +1925,8 @@ def ci_test_onedir_pkgs(session): PRINT_SYSTEM_INFO = False pytest_args = ( - cmd_args[:] + common_pytest_args[:] + + cmd_args[:] + [ f"--junitxml=artifacts/xml-unittests-output/test-results-{chunk}-rerun.xml", f"--log-file=artifacts/logs/runtests-{chunk}-rerun.log", @@ -1937,7 +1945,8 @@ def ci_test_onedir_pkgs(session): if chunk not in ("install", "download-pkgs"): cmd_args = chunks["install"] pytest_args = ( - cmd_args[:] + common_pytest_args[:] + + cmd_args[:] + [ "--no-install", f"--junitxml=artifacts/xml-unittests-output/test-results-install.xml", @@ -1954,7 +1963,8 @@ def ci_test_onedir_pkgs(session): except CommandFailed: cmd_args = chunks["install"] pytest_args = ( - cmd_args[:] + common_pytest_args[:] + + cmd_args[:] + [ "--no-install", f"--junitxml=artifacts/xml-unittests-output/test-results-install-rerun.xml", From 3b139b41ab2e137b10fd8d8c907a538b5119153e Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Mon, 15 Jan 2024 18:07:28 +0000 Subject: [PATCH 061/146] If the user passes a path to the package tests, don't auto add them Signed-off-by: Pedro Algarvio --- noxfile.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/noxfile.py b/noxfile.py index e9e5c6fdc73..003afbdbe87 100644 --- a/noxfile.py +++ b/noxfile.py @@ -1886,6 +1886,11 @@ def ci_test_onedir_pkgs(session): chunk = session.posargs.pop(0) cmd_args = chunks[chunk] + for arg in session.posargs: + if arg.startswith("tests/pytests/pkg/"): + # The user is passing test paths + cmd_args.pop() + break if IS_LINUX: # Fetch the toolchain From 10a54bcd311580b39ea01b5c997f3b385e9ecc6b Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Sat, 13 Jan 2024 20:29:52 +0000 Subject: [PATCH 062/146] Allow excluding paths when cleaning up archives Signed-off-by: Pedro Algarvio --- .github/workflows/ci.yml | 2 +- .github/workflows/nightly.yml | 2 +- .github/workflows/release.yml | 2 +- .github/workflows/scheduled.yml | 2 +- .github/workflows/staging.yml | 2 +- .github/workflows/templates/layout.yml.jinja | 3 ++- .github/workflows/templates/release.yml.jinja | 2 +- pkg/common/env-cleanup-rules.yml | 15 ++++++++++++ tools/pkg/__init__.py | 24 +++++++++++++++++++ 9 files changed, 47 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 43d80353100..f6f51eec55e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -168,7 +168,7 @@ jobs: - name: Get Hash For Nox Tarball Cache id: nox-archive-hash run: | - echo "nox-archive-hash=${{ hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py') }}" | tee -a "$GITHUB_OUTPUT" + echo "nox-archive-hash=${{ hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py', 'pkg/common/env-cleanup-rules.yml') }}" | tee -a "$GITHUB_OUTPUT" - name: Write Changed Files To A Local File run: diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 2e4ef6250dc..8c5285dc124 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -212,7 +212,7 @@ jobs: - name: Get Hash For Nox Tarball Cache id: nox-archive-hash run: | - echo "nox-archive-hash=${{ hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py') }}" | tee -a "$GITHUB_OUTPUT" + echo "nox-archive-hash=${{ hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py', 'pkg/common/env-cleanup-rules.yml') }}" | tee -a "$GITHUB_OUTPUT" - name: Write Changed Files To A Local File run: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 9c624505c34..b2f738ab900 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -115,7 +115,7 @@ jobs: - name: Get Hash For Nox Tarball Cache id: nox-archive-hash run: | - echo "nox-archive-hash=${{ hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py') }}" | tee -a "$GITHUB_OUTPUT" + echo "nox-archive-hash=${{ hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py', 'pkg/common/env-cleanup-rules.yml') }}" | tee -a "$GITHUB_OUTPUT" download-onedir-artifact: name: Download Staging Onedir Artifact diff --git a/.github/workflows/scheduled.yml b/.github/workflows/scheduled.yml index 2dce4f3e95b..80c78a80e88 100644 --- a/.github/workflows/scheduled.yml +++ b/.github/workflows/scheduled.yml @@ -202,7 +202,7 @@ jobs: - name: Get Hash For Nox Tarball Cache id: nox-archive-hash run: | - echo "nox-archive-hash=${{ hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py') }}" | tee -a "$GITHUB_OUTPUT" + echo "nox-archive-hash=${{ hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py', 'pkg/common/env-cleanup-rules.yml') }}" | tee -a "$GITHUB_OUTPUT" - name: Write Changed Files To A Local File run: diff --git a/.github/workflows/staging.yml b/.github/workflows/staging.yml index a9576afc810..1f7644f5bc1 100644 --- a/.github/workflows/staging.yml +++ b/.github/workflows/staging.yml @@ -198,7 +198,7 @@ jobs: - name: Get Hash For Nox Tarball Cache id: nox-archive-hash run: | - echo "nox-archive-hash=${{ hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py') }}" | tee -a "$GITHUB_OUTPUT" + echo "nox-archive-hash=${{ hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py', 'pkg/common/env-cleanup-rules.yml') }}" | tee -a "$GITHUB_OUTPUT" - name: Check Existing Releases env: diff --git a/.github/workflows/templates/layout.yml.jinja b/.github/workflows/templates/layout.yml.jinja index 96f26a5eb84..dd0d97c427d 100644 --- a/.github/workflows/templates/layout.yml.jinja +++ b/.github/workflows/templates/layout.yml.jinja @@ -9,6 +9,7 @@ <%- set gpg_key_id = "64CBBC8173D76B3F" %> <%- set prepare_actual_release = prepare_actual_release | default(False) %> <%- set gh_actions_workflows_python_version = "3.10" %> +<%- set nox_archive_hashfiles = "${{ hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py', 'pkg/common/env-cleanup-rules.yml') }}" %> --- <%- block name %> name: <{ workflow_name }> @@ -215,7 +216,7 @@ jobs: - name: Get Hash For Nox Tarball Cache id: nox-archive-hash run: | - echo "nox-archive-hash=${{ hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py') }}" | tee -a "$GITHUB_OUTPUT" + echo "nox-archive-hash=<{ nox_archive_hashfiles }>" | tee -a "$GITHUB_OUTPUT" <%- if prepare_actual_release %> diff --git a/.github/workflows/templates/release.yml.jinja b/.github/workflows/templates/release.yml.jinja index 704e2ec940b..7be119e57c8 100644 --- a/.github/workflows/templates/release.yml.jinja +++ b/.github/workflows/templates/release.yml.jinja @@ -143,7 +143,7 @@ permissions: - name: Get Hash For Nox Tarball Cache id: nox-archive-hash run: | - echo "nox-archive-hash=${{ hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py') }}" | tee -a "$GITHUB_OUTPUT" + echo "nox-archive-hash=<{ nox_archive_hashfiles }>" | tee -a "$GITHUB_OUTPUT" <%- endblock prepare_workflow_job %> <%- endif %> diff --git a/pkg/common/env-cleanup-rules.yml b/pkg/common/env-cleanup-rules.yml index 09708110473..43b4a628af2 100644 --- a/pkg/common/env-cleanup-rules.yml +++ b/pkg/common/env-cleanup-rules.yml @@ -1,5 +1,8 @@ --- common: + exclude_patterns: &common_exclude_patterns + - "**/site-packages/ansible/plugins/test" + - "**/site-packages/ansible/plugins/test/**" dir_patterns: &common_dir_patterns - "**/__pycache__" - "**/lib/python3.*/test" @@ -24,16 +27,22 @@ common: ci: darwin: + exclude_patterns: &ci_darwin_exclude_patterns + - *common_exclude_patterns dir_patterns: &ci_darwin_dir_patterns - *common_dir_patterns file_patterns: &ci_darwin_file_patterns - *common_file_patterns linux: + exclude_patterns: &ci_linux_exclude_patterns + - *common_exclude_patterns dir_patterns: &ci_linux_dir_patterns - *common_dir_patterns file_patterns: &ci_linux_file_patterns - *common_file_patterns windows: + exclude_patterns: &ci_windows_exclude_patterns + - *common_exclude_patterns dir_patterns: &ci_windows_dir_patterns - *common_dir_patterns - "**/artifacts/salt/configs" @@ -52,6 +61,8 @@ ci: pkg: darwin: + exclude_patterns: + - *ci_darwin_exclude_patterns dir_patterns: - *ci_darwin_dir_patterns - "**/pkgconfig" @@ -62,11 +73,15 @@ pkg: file_patterns: - *ci_darwin_file_patterns linux: + exclude_patterns: + - *ci_linux_exclude_patterns dir_patterns: - *ci_linux_dir_patterns file_patterns: - *ci_linux_file_patterns windows: + exclude_patterns: + - *ci_windows_exclude_patterns dir_patterns: - *ci_windows_dir_patterns - "**/salt/share" diff --git a/tools/pkg/__init__.py b/tools/pkg/__init__.py index 05612996655..2d843893640 100644 --- a/tools/pkg/__init__.py +++ b/tools/pkg/__init__.py @@ -257,6 +257,10 @@ def pre_archive_cleanup(ctx: Context, cleanup_path: str, pkg: bool = False): else: yield patterns + exclude_patterns = set() + for pattern in unnest_lists(patterns["exclude_patterns"]): + exclude_patterns.add(pattern) + dir_patterns = set() for pattern in unnest_lists(patterns["dir_patterns"]): dir_patterns.add(pattern) @@ -271,6 +275,16 @@ def pre_archive_cleanup(ctx: Context, cleanup_path: str, pkg: bool = False): if not path.exists(): continue match_path = path.as_posix() + skip_match = False + for pattern in exclude_patterns: + if fnmatch.fnmatch(str(match_path), pattern): + ctx.info( + f"Excluded file: {match_path}; Matching pattern: {pattern!r}" + ) + skip_match = True + break + if skip_match: + continue for pattern in dir_patterns: if fnmatch.fnmatch(str(match_path), pattern): ctx.info( @@ -283,6 +297,16 @@ def pre_archive_cleanup(ctx: Context, cleanup_path: str, pkg: bool = False): if not path.exists(): continue match_path = path.as_posix() + skip_match = False + for pattern in exclude_patterns: + if fnmatch.fnmatch(str(match_path), pattern): + ctx.info( + f"Excluded file: {match_path}; Matching pattern: {pattern!r}" + ) + skip_match = True + break + if skip_match: + continue for pattern in file_patterns: if fnmatch.fnmatch(str(match_path), pattern): ctx.info( From 85584237ecef7574258ffd5a9ed7ffa1fbe3ea66 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Wed, 6 Dec 2023 16:44:08 +0000 Subject: [PATCH 063/146] Packages should not be uploaded as test run artifacts Signed-off-by: Pedro Algarvio --- .github/workflows/test-packages-action-linux.yml | 1 + .github/workflows/test-packages-action-macos.yml | 1 + 2 files changed, 2 insertions(+) diff --git a/.github/workflows/test-packages-action-linux.yml b/.github/workflows/test-packages-action-linux.yml index 7318b2677b9..042f790c072 100644 --- a/.github/workflows/test-packages-action-linux.yml +++ b/.github/workflows/test-packages-action-linux.yml @@ -229,6 +229,7 @@ jobs: name: pkg-testrun-artifacts-${{ inputs.distro-slug }}-${{ matrix.tests-chunk }} path: | artifacts + !artifacts/pkg/* !artifacts/salt/* !artifacts/salt-*.tar.* diff --git a/.github/workflows/test-packages-action-macos.yml b/.github/workflows/test-packages-action-macos.yml index 078fccaae32..95da028d3e3 100644 --- a/.github/workflows/test-packages-action-macos.yml +++ b/.github/workflows/test-packages-action-macos.yml @@ -213,6 +213,7 @@ jobs: name: pkg-testrun-artifacts-${{ inputs.distro-slug }}-${{ matrix.tests-chunk }} path: | artifacts + !artifacts/pkg/* !artifacts/salt/* !artifacts/salt-*.tar.* From a21a5adc381d37aa0152e24730e8d013a526823f Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Thu, 28 Dec 2023 22:21:47 -0700 Subject: [PATCH 064/146] Fix un-closed tranport in tornado netapi --- changelog/65759.fixed.md | 1 + salt/netapi/rest_tornado/saltnado.py | 4 ++++ 2 files changed, 5 insertions(+) create mode 100644 changelog/65759.fixed.md diff --git a/changelog/65759.fixed.md b/changelog/65759.fixed.md new file mode 100644 index 00000000000..426cb3f24bf --- /dev/null +++ b/changelog/65759.fixed.md @@ -0,0 +1 @@ +Fix un-closed transport in tornado netapi diff --git a/salt/netapi/rest_tornado/saltnado.py b/salt/netapi/rest_tornado/saltnado.py index 44c4089ccbb..cf55454ebb8 100644 --- a/salt/netapi/rest_tornado/saltnado.py +++ b/salt/netapi/rest_tornado/saltnado.py @@ -396,6 +396,9 @@ class EventListener: ) del self.timeout_map[future] + def destroy(self): + self.event.destroy() + class BaseSaltAPIHandler(salt.ext.tornado.web.RequestHandler): # pylint: disable=W0223 ct_out_map = ( @@ -510,6 +513,7 @@ class BaseSaltAPIHandler(salt.ext.tornado.web.RequestHandler): # pylint: disabl self.timeout_futures() # clear local_client objects to disconnect event publisher's IOStream connections del self.saltclients + self.application.event_listener.destroy() def on_connection_close(self): """ From 8da836a4264117da6f00589053a43bd57c3785fa Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Sat, 30 Dec 2023 00:21:36 -0700 Subject: [PATCH 065/146] Destroy event_listener when app is no-longer used --- salt/netapi/rest_tornado/saltnado.py | 1 - 1 file changed, 1 deletion(-) diff --git a/salt/netapi/rest_tornado/saltnado.py b/salt/netapi/rest_tornado/saltnado.py index cf55454ebb8..6d47de1446a 100644 --- a/salt/netapi/rest_tornado/saltnado.py +++ b/salt/netapi/rest_tornado/saltnado.py @@ -513,7 +513,6 @@ class BaseSaltAPIHandler(salt.ext.tornado.web.RequestHandler): # pylint: disabl self.timeout_futures() # clear local_client objects to disconnect event publisher's IOStream connections del self.saltclients - self.application.event_listener.destroy() def on_connection_close(self): """ From 688093c4aa151598e117725d2173e6feabfb09a0 Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Mon, 18 Dec 2023 17:26:51 -0700 Subject: [PATCH 066/146] Fix up test and close minion channels --- salt/minion.py | 18 +++++++++++++++++- .../integration/minion/test_return_retries.py | 4 ++-- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/salt/minion.py b/salt/minion.py index 29afda23504..0c5c77a91e5 100644 --- a/salt/minion.py +++ b/salt/minion.py @@ -1286,6 +1286,7 @@ class Minion(MinionBase): self.ready = False self.jid_queue = [] if jid_queue is None else jid_queue self.periodic_callbacks = {} + self.req_channel = None if io_loop is None: self.io_loop = salt.ext.tornado.ioloop.IOLoop.current() @@ -1396,6 +1397,16 @@ class Minion(MinionBase): """ Return a future which will complete when you are connected to a master """ + if hasattr(self, "pub_channel") and self.pub_channel: + self.pub_channel.on_recv(None) + if hasattr(self.pub_channel, "auth"): + self.pub_channel.auth.invalidate() + if hasattr(self.pub_channel, "close"): + self.pub_channel.close() + if hasattr(self, "req_channel") and self.req_channel: + self.req_channel.close() + self.req_channel = None + # Consider refactoring so that eval_master does not have a subtle side-effect on the contents of the opts array master, self.pub_channel = yield self.eval_master( self.opts, self.timeout, self.safe, failed @@ -2870,7 +2881,9 @@ class Minion(MinionBase): self.pub_channel.auth.invalidate() if hasattr(self.pub_channel, "close"): self.pub_channel.close() - del self.pub_channel + if hasattr(self, "req_channel") and self.req_channel: + self.req_channel.close() + self.req_channel = None # if eval_master finds a new master for us, self.connected # will be True again on successful master authentication @@ -3303,6 +3316,9 @@ class Minion(MinionBase): if hasattr(self.pub_channel, "close"): self.pub_channel.close() del self.pub_channel + if hasattr(self, "req_channel") and self.req_channel: + self.req_channel.close() + self.req_channel = None if hasattr(self, "periodic_callbacks"): for cb in self.periodic_callbacks.values(): cb.stop() diff --git a/tests/pytests/integration/minion/test_return_retries.py b/tests/pytests/integration/minion/test_return_retries.py index d6456e4a47e..feefdfac6a1 100644 --- a/tests/pytests/integration/minion/test_return_retries.py +++ b/tests/pytests/integration/minion/test_return_retries.py @@ -28,7 +28,7 @@ def salt_minion_retry(salt_master, salt_minion_id): @pytest.mark.slow_test def test_publish_retry(salt_master, salt_minion_retry, salt_cli, salt_run_cli): # run job that takes some time for warmup - rtn = salt_cli.run("test.sleep", "5", "--async", minion_tgt=salt_minion_retry.id) + rtn = salt_cli.run("test.sleep", "3.5", "--async", minion_tgt=salt_minion_retry.id) # obtain JID jid = rtn.stdout.strip().split(" ")[-1] @@ -55,7 +55,7 @@ def test_publish_retry(salt_master, salt_minion_retry, salt_cli, salt_run_cli): @pytest.mark.slow_test def test_pillar_timeout(salt_master_factory): cmd = """ - python -c "import time; time.sleep(5); print('{\\"foo\\": \\"bar\\"}');\" + python -c "import time; time.sleep(4); print('{\\"foo\\": \\"bar\\"}');\" """.strip() master_overrides = { "ext_pillar": [ From 93ab61e46d00874a6415c70261472514d8124237 Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Mon, 18 Dec 2023 22:44:40 -0700 Subject: [PATCH 067/146] Even more reliable pillar timeout test --- .../integration/minion/test_return_retries.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/tests/pytests/integration/minion/test_return_retries.py b/tests/pytests/integration/minion/test_return_retries.py index feefdfac6a1..f70609cdb1a 100644 --- a/tests/pytests/integration/minion/test_return_retries.py +++ b/tests/pytests/integration/minion/test_return_retries.py @@ -3,6 +3,8 @@ import time import pytest from saltfactories.utils import random_string +import salt.utils.files + @pytest.fixture(scope="function") def salt_minion_retry(salt_master, salt_minion_id): @@ -53,13 +55,15 @@ def test_publish_retry(salt_master, salt_minion_retry, salt_cli, salt_run_cli): @pytest.mark.slow_test -def test_pillar_timeout(salt_master_factory): - cmd = """ - python -c "import time; time.sleep(4); print('{\\"foo\\": \\"bar\\"}');\" - """.strip() +def test_pillar_timeout(salt_master_factory, tmp_path): + cmd = 'print(\'{"foo": "bar"}\');\n' + + with salt.utils.files.fopen(tmp_path / "script.py", "w") as fp: + fp.write(cmd) + master_overrides = { "ext_pillar": [ - {"cmd_json": cmd}, + {"cmd_json": f"python {tmp_path / 'script.py'}"}, ], "auto_accept": True, "worker_threads": 2, @@ -105,8 +109,10 @@ def test_pillar_timeout(salt_master_factory): "{}.sls".format(sls_name), sls_contents ) with master.started(), minion1.started(), minion2.started(), minion3.started(), minion4.started(), sls_tempfile: + cmd = 'import time; time.sleep(6); print(\'{"foo": "bang"}\');\n' + with salt.utils.files.fopen(tmp_path / "script.py", "w") as fp: + fp.write(cmd) proc = cli.run("state.sls", sls_name, minion_tgt="*") - print(proc) # At least one minion should have a Pillar timeout assert proc.returncode == 1 minion_timed_out = False From 281bf59f3ce0ab0ff7ab0e6a54ec206c08e22e5c Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Sun, 14 Jan 2024 09:58:11 +0000 Subject: [PATCH 068/146] Cleanup aws unit test hang Signed-off-by: Pedro Algarvio --- salt/utils/aws.py | 37 +++++----------------------- tests/pytests/unit/utils/test_aws.py | 15 ++++++++++- 2 files changed, 20 insertions(+), 32 deletions(-) diff --git a/salt/utils/aws.py b/salt/utils/aws.py index c74104c08db..fead9cf7ac6 100644 --- a/salt/utils/aws.py +++ b/salt/utils/aws.py @@ -7,7 +7,7 @@ This is a base library used by a number of AWS services. :depends: requests """ - +import binascii import copy import hashlib import hmac @@ -15,43 +15,18 @@ import logging import random import re import time +import urllib.parse +import xml.etree.ElementTree as ET from datetime import datetime +import requests + import salt.config import salt.utils.hashutils import salt.utils.xmlutil as xml -try: - import requests - - HAS_REQUESTS = True # pylint: disable=W0612 -except ImportError: - HAS_REQUESTS = False # pylint: disable=W0612 - -try: - import binascii - - HAS_BINASCII = True # pylint: disable=W0612 -except ImportError: - HAS_BINASCII = False # pylint: disable=W0612 - -try: - import urllib.parse - - HAS_URLLIB = True # pylint: disable=W0612 -except ImportError: - HAS_URLLIB = False # pylint: disable=W0612 - -try: - import xml.etree.ElementTree as ET - - HAS_ETREE = True # pylint: disable=W0612 -except ImportError: - HAS_ETREE = False # pylint: disable=W0612 - -# pylint: enable=import-error,redefined-builtin,no-name-in-module - log = logging.getLogger(__name__) + DEFAULT_LOCATION = "us-east-1" DEFAULT_AWS_API_VERSION = "2016-11-15" AWS_RETRY_CODES = [ diff --git a/tests/pytests/unit/utils/test_aws.py b/tests/pytests/unit/utils/test_aws.py index bd4dc53cc8b..36b0bd32335 100644 --- a/tests/pytests/unit/utils/test_aws.py +++ b/tests/pytests/unit/utils/test_aws.py @@ -4,17 +4,30 @@ Test the salt aws functions """ - import io +import os import time from datetime import datetime, timedelta +import pytest import requests import salt.utils.aws as aws +from tests.support.helpers import patched_environ from tests.support.mock import MagicMock, patch +@pytest.fixture(autouse=True) +def _cleanup(): + # Make sure this cache is clear before each test + aws.__AssumeCache__.clear() + # Remove any AWS_ prefixed environment variables + with patched_environ( + __cleanup__=[k for k in os.environ if k.startswith("AWS_")], + ): + yield + + def test_get_metadata_imdsv1(): response = requests.Response() response.status_code = 200 From 287de2b898c8b622b4eb01e05754f6b43fe099cc Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Mon, 15 Jan 2024 17:33:27 +0000 Subject: [PATCH 069/146] Timeout the tests instead of just hanging indefinitely Signed-off-by: Pedro Algarvio --- pytest.ini | 2 ++ tests/pytests/unit/utils/test_aws.py | 7 +++++++ 2 files changed, 9 insertions(+) diff --git a/pytest.ini b/pytest.ini index fca3fdcdbed..0796d4bcf3f 100644 --- a/pytest.ini +++ b/pytest.ini @@ -8,3 +8,5 @@ python_files=test_*.py python_classes=Test* python_functions = test_* junit_family=xunit2 +# Only the tests should count towards timeouts +timeout_func_only = true diff --git a/tests/pytests/unit/utils/test_aws.py b/tests/pytests/unit/utils/test_aws.py index 36b0bd32335..a73c12f537e 100644 --- a/tests/pytests/unit/utils/test_aws.py +++ b/tests/pytests/unit/utils/test_aws.py @@ -16,6 +16,13 @@ import salt.utils.aws as aws from tests.support.helpers import patched_environ from tests.support.mock import MagicMock, patch +pytestmark = [ + # Skip testing on windows since it does not support signals + # which is what the timeout marker is using. + pytest.mark.skip_on_windows, + pytest.mark.timeout(60, method="signal"), +] + @pytest.fixture(autouse=True) def _cleanup(): From 114515c66c92f257a979f3d79cfe3ddfb60949e1 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Wed, 17 Jan 2024 07:36:11 +0000 Subject: [PATCH 070/146] In case of failures to upload to codecov, show it's output Signed-off-by: Pedro Algarvio --- tools/ci.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tools/ci.py b/tools/ci.py index 6b3a7e7064e..2ef75858340 100644 --- a/tools/ci.py +++ b/tools/ci.py @@ -1227,7 +1227,9 @@ def upload_coverage(ctx: Context, reports_path: pathlib.Path, commit_sha: str = break if current_attempt >= max_attempts: - ctx.error(f"Failed to upload {fpath} to codecov") + ctx.error(f"Failed to upload {fpath} to codecov:") + ctx.console_stdout.print(stdout) + ctx.console.print(stderr) ctx.exit(1) ctx.warn(f"Waiting {sleep_time} seconds until next retry...") From 823aafc9281e8d612177635420f6bb717c4fd617 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Wed, 17 Jan 2024 11:01:59 +0000 Subject: [PATCH 071/146] Don't publish coverage to codecov on private repositories Signed-off-by: Pedro Algarvio --- .github/workflows/ci.yml | 1 + .github/workflows/nightly.yml | 1 + .github/workflows/scheduled.yml | 1 + .github/workflows/templates/ci.yml.jinja | 1 + 4 files changed, 4 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f6f51eec55e..2093eede62a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2035,6 +2035,7 @@ jobs: nox --force-color -e create-xml-coverage-reports - name: Upload Code Coverage To Codecov + if: ${{ ! github.event.repository.private }} run: | tools ci upload-coverage --commit-sha=${{ github.event.pull_request.head.sha || github.sha }} artifacts/coverage/ diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 8c5285dc124..bb2970bfd7a 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -2092,6 +2092,7 @@ jobs: nox --force-color -e create-xml-coverage-reports - name: Upload Code Coverage To Codecov + if: ${{ ! github.event.repository.private }} run: | tools ci upload-coverage --commit-sha=${{ github.event.pull_request.head.sha || github.sha }} artifacts/coverage/ diff --git a/.github/workflows/scheduled.yml b/.github/workflows/scheduled.yml index 80c78a80e88..fce0cda7865 100644 --- a/.github/workflows/scheduled.yml +++ b/.github/workflows/scheduled.yml @@ -2069,6 +2069,7 @@ jobs: nox --force-color -e create-xml-coverage-reports - name: Upload Code Coverage To Codecov + if: ${{ ! github.event.repository.private }} run: | tools ci upload-coverage --commit-sha=${{ github.event.pull_request.head.sha || github.sha }} artifacts/coverage/ diff --git a/.github/workflows/templates/ci.yml.jinja b/.github/workflows/templates/ci.yml.jinja index 6c28dc992aa..d7e61e79050 100644 --- a/.github/workflows/templates/ci.yml.jinja +++ b/.github/workflows/templates/ci.yml.jinja @@ -369,6 +369,7 @@ nox --force-color -e create-xml-coverage-reports - name: Upload Code Coverage To Codecov + if: ${{ ! github.event.repository.private }} run: | tools ci upload-coverage --commit-sha=${{ github.event.pull_request.head.sha || github.sha }} artifacts/coverage/ From f5b326cf33f706ac838b4faa09fe0a6b889892e6 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Tue, 16 Jan 2024 17:41:00 +0000 Subject: [PATCH 072/146] Missed change in 5ea3bf3a9dbd7e128cf8a899b6c06958cdfcbf36 Signed-off-by: Pedro Algarvio --- tools/pkg/build.py | 10 ++++++++-- tools/pkg/repo/create.py | 2 +- tools/release.py | 6 +++--- tools/testsuite/download.py | 2 +- 4 files changed, 13 insertions(+), 7 deletions(-) diff --git a/tools/pkg/build.py b/tools/pkg/build.py index 37210e8fa52..e63823551bc 100644 --- a/tools/pkg/build.py +++ b/tools/pkg/build.py @@ -486,7 +486,10 @@ def onedir_dependencies( assert package_name is not None assert platform is not None - if platform not in ("macos", "darwin") and arch == "arm64": + if platform == "darwin": + platform = "macos" + + if platform != "macos" and arch == "arm64": arch = "aarch64" shared_constants = _get_shared_constants() @@ -625,6 +628,9 @@ def salt_onedir( assert platform is not None assert package_name is not None + if platform == "darwin": + platform = "macos" + shared_constants = _get_shared_constants() if not relenv_version: relenv_version = shared_constants["relenv_version"] @@ -706,7 +712,7 @@ def salt_onedir( str(salt_archive), env=env, ) - if platform == "darwin": + if platform == "macos": def errfn(fn, path, err): ctx.info(f"Removing {path} failed: {err}") diff --git a/tools/pkg/repo/create.py b/tools/pkg/repo/create.py index 382ffdd0998..bc36463bbf6 100644 --- a/tools/pkg/repo/create.py +++ b/tools/pkg/repo/create.py @@ -904,7 +904,7 @@ def _create_onedir_based_repo( if distro == "onedir": if "-onedir-linux-" in dpath.name.lower(): release_os = "linux" - elif "-onedir-darwin-" in dpath.name.lower(): + elif "-onedir-macos-" in dpath.name.lower(): release_os = "macos" elif "-onedir-windows-" in dpath.name.lower(): release_os = "windows" diff --git a/tools/release.py b/tools/release.py index cc17938d453..b338721f8bc 100644 --- a/tools/release.py +++ b/tools/release.py @@ -131,13 +131,13 @@ def download_onedir_artifact( Download onedir artifact from staging bucket. """ s3 = boto3.client("s3") - if platform == "macos": - platform = "darwin" + if platform == "darwin": + platform = "macos" if arch == "arm64": arch = "aarch64" arch = arch.lower() platform = platform.lower() - if platform in ("linux", "darwin") and arch not in ("x86_64", "aarch64"): + if platform in ("linux", "macos") and arch not in ("x86_64", "aarch64"): ctx.error( f"The 'arch' value for {platform} must be one of: 'x86_64', 'aarch64', 'arm64'" ) diff --git a/tools/testsuite/download.py b/tools/testsuite/download.py index e9800e0a775..453cbef299f 100644 --- a/tools/testsuite/download.py +++ b/tools/testsuite/download.py @@ -38,7 +38,7 @@ download = command_group( }, "platform": { "help": "The onedir platform artifact to download", - "choices": ("linux", "darwin", "windows"), + "choices": ("linux", "macos", "windows"), "required": True, }, "arch": { From 6dd56114f736915dc4567a42cc2d39f0ac713f51 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Tue, 16 Jan 2024 18:24:40 +0000 Subject: [PATCH 073/146] Fix build RPM repository Signed-off-by: Pedro Algarvio --- .github/workflows/build-packages.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-packages.yml b/.github/workflows/build-packages.yml index 6e1ec435da0..d174c054b39 100644 --- a/.github/workflows/build-packages.yml +++ b/.github/workflows/build-packages.yml @@ -335,7 +335,7 @@ jobs: uses: actions/upload-artifact@v3 with: name: ${{ steps.set-artifact-name.outputs.artifact-name }} - path: ~/rpmbuild/RPMS/*/*.rpm + path: ~/rpmbuild/RPMS/${{ matrix.arch }}/*.rpm retention-days: 7 if-no-files-found: error From 093a276d24ba4cd1bdf974be22aeb994a39fb755 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Tue, 16 Jan 2024 21:54:00 +0000 Subject: [PATCH 074/146] Fix build RPM repository. Signed-off-by: Pedro Algarvio --- .github/workflows/build-packages.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-packages.yml b/.github/workflows/build-packages.yml index d174c054b39..5cd7d949e6e 100644 --- a/.github/workflows/build-packages.yml +++ b/.github/workflows/build-packages.yml @@ -335,7 +335,7 @@ jobs: uses: actions/upload-artifact@v3 with: name: ${{ steps.set-artifact-name.outputs.artifact-name }} - path: ~/rpmbuild/RPMS/${{ matrix.arch }}/*.rpm + path: ~/rpmbuild/RPMS/${{ matrix.arch == 'arm64' && 'aarch64' || matrix.arch }}/*.rpm retention-days: 7 if-no-files-found: error From 30941aeadc07c90dd97b33a9908b152f912c8c43 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Wed, 17 Jan 2024 06:04:09 +0000 Subject: [PATCH 075/146] Fix RPM build repository for aarch64 Signed-off-by: Pedro Algarvio --- .github/workflows/nightly.yml | 2 +- .github/workflows/staging.yml | 2 +- .../templates/build-rpm-repo.yml.jinja | 38 +------------------ tools/precommit/workflows.py | 12 ++++++ 4 files changed, 16 insertions(+), 38 deletions(-) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index bb2970bfd7a..6c61010f339 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -2546,7 +2546,7 @@ jobs: - name: Download RPM Packages uses: actions/download-artifact@v3 with: - name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-${{ matrix.arch }}-rpm + name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-${{ matrix.arch == 'aarch64' && 'arm64' || matrix.arch }}-rpm path: artifacts/pkgs/incoming - name: Setup GnuPG diff --git a/.github/workflows/staging.yml b/.github/workflows/staging.yml index 1f7644f5bc1..28afc26a243 100644 --- a/.github/workflows/staging.yml +++ b/.github/workflows/staging.yml @@ -2390,7 +2390,7 @@ jobs: - name: Download RPM Packages uses: actions/download-artifact@v3 with: - name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-${{ matrix.arch }}-rpm + name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-${{ matrix.arch == 'aarch64' && 'arm64' || matrix.arch }}-rpm path: artifacts/pkgs/incoming - name: Setup GnuPG diff --git a/.github/workflows/templates/build-rpm-repo.yml.jinja b/.github/workflows/templates/build-rpm-repo.yml.jinja index 4c785c82b1d..9f8ca8668be 100644 --- a/.github/workflows/templates/build-rpm-repo.yml.jinja +++ b/.github/workflows/templates/build-rpm-repo.yml.jinja @@ -3,41 +3,7 @@ fail-fast: false matrix: include: - <%- for distro, version, arch in ( - ("amazon", "2", "x86_64"), - ("amazon", "2", "arm64"), - ("amazon", "2", "aarch64"), - ("amazon", "2023", "x86_64"), - ("amazon", "2023", "arm64"), - ("amazon", "2023", "aarch64"), - ("redhat", "7", "x86_64"), - ("redhat", "7", "arm64"), - ("redhat", "7", "aarch64"), - ("redhat", "8", "x86_64"), - ("redhat", "8", "arm64"), - ("redhat", "8", "aarch64"), - ("redhat", "9", "x86_64"), - ("redhat", "9", "arm64"), - ("redhat", "9", "aarch64"), - ("fedora", "36", "x86_64"), - ("fedora", "36", "arm64"), - ("fedora", "36", "aarch64"), - ("fedora", "37", "x86_64"), - ("fedora", "37", "arm64"), - ("fedora", "37", "aarch64"), - ("fedora", "38", "x86_64"), - ("fedora", "38", "arm64"), - ("fedora", "38", "aarch64"), - ("photon", "3", "x86_64"), - ("photon", "3", "arm64"), - ("photon", "3", "aarch64"), - ("photon", "4", "x86_64"), - ("photon", "4", "arm64"), - ("photon", "4", "aarch64"), - ("photon", "5", "x86_64"), - ("photon", "5", "arm64"), - ("photon", "5", "aarch64"), - ) %> + <%- for distro, version, arch in build_rpms_listing %> - pkg-type: rpm distro: <{ distro }> version: "<{ version }>" @@ -66,7 +32,7 @@ - name: Download RPM Packages uses: actions/download-artifact@v3 with: - name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-${{ matrix.arch }}-rpm + name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-${{ matrix.arch == 'aarch64' && 'arm64' || matrix.arch }}-rpm path: artifacts/pkgs/incoming - name: Setup GnuPG diff --git a/tools/precommit/workflows.py b/tools/precommit/workflows.py index f75c40df120..3dd1746d400 100644 --- a/tools/precommit/workflows.py +++ b/tools/precommit/workflows.py @@ -252,6 +252,17 @@ def generate_workflows(ctx: Context): for _, arch, _ in test_salt_pkg_downloads_listing[platform]: test_salt_pkg_downloads_needs_slugs.add("build-ci-deps") + build_rpms_listing = [] + for distro, releases in ( + ("amazon", ("2", "2023")), + ("redhat", ("7", "8", "9")), + ("fedora", ("36", "37", "38")), + ("photon", ("3", "4", "5")), + ): + for release in releases: + for arch in ("x86_64", "arm64", "aarch64"): + build_rpms_listing.append((distro, release, arch)) + env = Environment( block_start_string="<%", block_end_string="%>", @@ -293,6 +304,7 @@ def generate_workflows(ctx: Context): "test_salt_pkg_downloads_needs_slugs": sorted( test_salt_pkg_downloads_needs_slugs ), + "build_rpms_listing": build_rpms_listing, } shared_context_file = ( tools.utils.REPO_ROOT / "cicd" / "shared-gh-workflows-context.yml" From 336da2a29797665e062d5c700a66165c957f9579 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Wed, 17 Jan 2024 06:10:32 +0000 Subject: [PATCH 076/146] Define the DEBs listing outside of the template Signed-off-by: Pedro Algarvio --- .../workflows/templates/build-deb-repo.yml.jinja | 13 +------------ tools/precommit/workflows.py | 10 ++++++++++ 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/.github/workflows/templates/build-deb-repo.yml.jinja b/.github/workflows/templates/build-deb-repo.yml.jinja index ac0bc159da4..4b8edb516b2 100644 --- a/.github/workflows/templates/build-deb-repo.yml.jinja +++ b/.github/workflows/templates/build-deb-repo.yml.jinja @@ -3,18 +3,7 @@ fail-fast: false matrix: include: - <%- for distro, version, arch in ( - ("debian", "10", "x86_64"), - ("debian", "10", "arm64"), - ("debian", "11", "x86_64"), - ("debian", "11", "arm64"), - ("debian", "12", "x86_64"), - ("debian", "12", "arm64"), - ("ubuntu", "20.04", "x86_64"), - ("ubuntu", "20.04", "arm64"), - ("ubuntu", "22.04", "x86_64"), - ("ubuntu", "22.04", "arm64"), - ) %> + <%- for distro, version, arch in build_debs_listing %> - pkg-type: deb distro: <{ distro }> version: "<{ version }>" diff --git a/tools/precommit/workflows.py b/tools/precommit/workflows.py index 3dd1746d400..e76b77564b3 100644 --- a/tools/precommit/workflows.py +++ b/tools/precommit/workflows.py @@ -263,6 +263,15 @@ def generate_workflows(ctx: Context): for arch in ("x86_64", "arm64", "aarch64"): build_rpms_listing.append((distro, release, arch)) + build_debs_listing = [] + for distro, releases in ( + ("debian", ("10", "11", "12")), + ("ubuntu", ("20.04", "22.04")), + ): + for release in releases: + for arch in ("x86_64", "arm64"): + build_debs_listing.append((distro, release, arch)) + env = Environment( block_start_string="<%", block_end_string="%>", @@ -305,6 +314,7 @@ def generate_workflows(ctx: Context): test_salt_pkg_downloads_needs_slugs ), "build_rpms_listing": build_rpms_listing, + "build_debs_listing": build_debs_listing, } shared_context_file = ( tools.utils.REPO_ROOT / "cicd" / "shared-gh-workflows-context.yml" From bd4422187cb36d52a16ecbc5d66e48026474679f Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Wed, 17 Jan 2024 10:54:30 +0000 Subject: [PATCH 077/146] Fix test and no need to be root Signed-off-by: Pedro Algarvio --- tests/pytests/integration/states/test_file.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/tests/pytests/integration/states/test_file.py b/tests/pytests/integration/states/test_file.py index ec8aafb299d..afc3d721c0c 100644 --- a/tests/pytests/integration/states/test_file.py +++ b/tests/pytests/integration/states/test_file.py @@ -384,15 +384,12 @@ def test_issue_50221( assert target_path.read_text().replace("\r\n", "\n") == expected_content -@pytest.mark.skip_if_not_root -@pytest.mark.usefixtures("pillar_tree") def test_issue_60426( salt_master, salt_call_cli, tmp_path, - salt_minion, ): - target_path = tmp_path / "/etc/foo/bar" + target_path = tmp_path.joinpath("etc/foo/bar") jinja_name = "foo_bar" jinja_contents = ( "{% for item in accumulator['accumulated configstuff'] %}{{ item }}{% endfor %}" @@ -453,6 +450,7 @@ def test_issue_60426( - filename: {target_path} - text: - some + - more - good - stuff - watch_in: @@ -464,7 +462,6 @@ def test_issue_60426( sls_tempfile = salt_master.state_tree.base.temp_file( "{}.sls".format(sls_name), sls_contents ) - jinja_tempfile = salt_master.state_tree.base.temp_file( "{}.jinja".format(jinja_name), jinja_contents ) @@ -478,7 +475,7 @@ def test_issue_60426( # Check to make sure the file was created assert target_path.is_file() # The type of new line, ie, `\n` vs `\r\n` is not important - assert target_path.read_text() == "somegoodstuff" + assert target_path.read_text() == "somemoregoodstuff" @pytest.fixture From e75bc47c0007b882aa0b93f5e728de97043d739c Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Wed, 17 Jan 2024 10:56:42 +0000 Subject: [PATCH 078/146] Migrate test to functional Signed-off-by: Pedro Algarvio --- .../states/file/test_accumulated.py | 81 ++++++++++++++++ tests/pytests/integration/states/test_file.py | 94 ------------------- 2 files changed, 81 insertions(+), 94 deletions(-) diff --git a/tests/pytests/functional/states/file/test_accumulated.py b/tests/pytests/functional/states/file/test_accumulated.py index f48043050b6..85e696c5630 100644 --- a/tests/pytests/functional/states/file/test_accumulated.py +++ b/tests/pytests/functional/states/file/test_accumulated.py @@ -125,3 +125,84 @@ def test_issue_11003_immutable_lazy_proxy_sum(modules, tmp_path, state_tree): for item in ("", "bar", "baz"): block_contents.remove(item) assert block_contents == [] + + +def test_issue_60426(modules, tmp_path, state_tree): + target_path = tmp_path.joinpath("etc/foo/bar") + jinja_name = "foo_bar" + jinja_contents = ( + "{% for item in accumulator['accumulated configstuff'] %}{{ item }}{% endfor %}" + ) + + sls_name = "issue-60426" + sls_contents = f""" + configuration file: + file.managed: + - name: {target_path} + - source: salt://foo_bar.jinja + - template: jinja + - makedirs: True + + accumulated configstuff: + file.accumulated: + - filename: {target_path} + - text: + - some + - good + - stuff + - watch_in: + - configuration file + """ + + sls_tempfile = pytest.helpers.temp_file( + f"{sls_name}.sls", directory=state_tree, contents=sls_contents + ) + + jinja_tempfile = pytest.helpers.temp_file( + f"{jinja_name}.jinja", directory=state_tree, contents=jinja_contents + ) + + with sls_tempfile, jinja_tempfile: + ret = modules.state.apply(sls_name) + for state_run in ret: + assert state_run.result is True + # Check to make sure the file was created + assert target_path.is_file() + # The type of new line, ie, `\n` vs `\r\n` is not important + assert target_path.read_text() == "somegoodstuff" + + sls_contents = f""" + configuration file: + file.managed: + - name: {target_path} + - source: salt://foo_bar.jinja + - template: jinja + - makedirs: True + + accumulated configstuff: + file.accumulated: + - filename: {target_path} + - text: + - some + - more + - good + - stuff + - watch_in: + - file: configuration file + """ + + sls_tempfile = pytest.helpers.temp_file( + f"{sls_name}.sls", directory=state_tree, contents=sls_contents + ) + jinja_tempfile = pytest.helpers.temp_file( + f"{jinja_name}.jinja", directory=state_tree, contents=jinja_contents + ) + + with sls_tempfile, jinja_tempfile: + ret = modules.state.apply(sls_name) + for state_run in ret: + assert state_run.result is True + # Check to make sure the file was created + assert target_path.is_file() + # The type of new line, ie, `\n` vs `\r\n` is not important + assert target_path.read_text() == "somemoregoodstuff" diff --git a/tests/pytests/integration/states/test_file.py b/tests/pytests/integration/states/test_file.py index afc3d721c0c..42bdc06baad 100644 --- a/tests/pytests/integration/states/test_file.py +++ b/tests/pytests/integration/states/test_file.py @@ -384,100 +384,6 @@ def test_issue_50221( assert target_path.read_text().replace("\r\n", "\n") == expected_content -def test_issue_60426( - salt_master, - salt_call_cli, - tmp_path, -): - target_path = tmp_path.joinpath("etc/foo/bar") - jinja_name = "foo_bar" - jinja_contents = ( - "{% for item in accumulator['accumulated configstuff'] %}{{ item }}{% endfor %}" - ) - - sls_name = "issue-60426" - sls_contents = """ - configuration file: - file.managed: - - name: {target_path} - - source: salt://foo_bar.jinja - - template: jinja - - makedirs: True - - accumulated configstuff: - file.accumulated: - - filename: {target_path} - - text: - - some - - good - - stuff - - watch_in: - - configuration file - """.format( - target_path=target_path - ) - - sls_tempfile = salt_master.state_tree.base.temp_file( - "{}.sls".format(sls_name), sls_contents - ) - - jinja_tempfile = salt_master.state_tree.base.temp_file( - "{}.jinja".format(jinja_name), jinja_contents - ) - - with sls_tempfile, jinja_tempfile: - ret = salt_call_cli.run("state.apply", sls_name) - assert ret.returncode == 0 - assert ret.data - state_run = next(iter(ret.data.values())) - assert state_run["result"] is True - # Check to make sure the file was created - assert target_path.is_file() - # The type of new line, ie, `\n` vs `\r\n` is not important - assert target_path.read_text() == "somegoodstuff" - - sls_name = "issue-60426" - sls_contents = """ - configuration file: - file.managed: - - name: {target_path} - - source: salt://foo_bar.jinja - - template: jinja - - makedirs: True - - accumulated configstuff: - file.accumulated: - - filename: {target_path} - - text: - - some - - more - - good - - stuff - - watch_in: - - file: configuration file - """.format( - target_path=target_path - ) - - sls_tempfile = salt_master.state_tree.base.temp_file( - "{}.sls".format(sls_name), sls_contents - ) - jinja_tempfile = salt_master.state_tree.base.temp_file( - "{}.jinja".format(jinja_name), jinja_contents - ) - - with sls_tempfile, jinja_tempfile: - ret = salt_call_cli.run("state.apply", sls_name) - assert ret.returncode == 0 - assert ret.data - state_run = next(iter(ret.data.values())) - assert state_run["result"] is True - # Check to make sure the file was created - assert target_path.is_file() - # The type of new line, ie, `\n` vs `\r\n` is not important - assert target_path.read_text() == "somemoregoodstuff" - - @pytest.fixture def _check_min_patch_version(shell): min_patch_ver = "2.6" From e14219321bfedeb54d519d3b85ca9da7aadc55e9 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Wed, 10 Jan 2024 10:55:59 +0000 Subject: [PATCH 079/146] Bump to `pycryptodome==3.19.1` and `pycryptodomex==3.19.1` due to https://github.com/advisories/GHSA-j225-cvw7-qrx7 Signed-off-by: Pedro Algarvio --- changelog/65830.security.md | 3 +++ requirements/static/ci/py3.10/cloud.txt | 2 +- requirements/static/ci/py3.10/darwin-crypto.txt | 2 +- requirements/static/ci/py3.10/darwin.txt | 2 +- requirements/static/ci/py3.10/docs.txt | 2 +- requirements/static/ci/py3.10/freebsd-crypto.txt | 2 +- requirements/static/ci/py3.10/freebsd.txt | 2 +- requirements/static/ci/py3.10/lint.txt | 2 +- requirements/static/ci/py3.10/linux-crypto.txt | 2 +- requirements/static/ci/py3.10/linux.txt | 2 +- requirements/static/ci/py3.10/windows-crypto.txt | 2 +- requirements/static/ci/py3.10/windows.txt | 2 +- requirements/static/ci/py3.11/cloud.txt | 2 +- requirements/static/ci/py3.11/darwin-crypto.txt | 2 +- requirements/static/ci/py3.11/darwin.txt | 2 +- requirements/static/ci/py3.11/docs.txt | 2 +- requirements/static/ci/py3.11/freebsd-crypto.txt | 2 +- requirements/static/ci/py3.11/freebsd.txt | 2 +- requirements/static/ci/py3.11/lint.txt | 2 +- requirements/static/ci/py3.11/linux-crypto.txt | 2 +- requirements/static/ci/py3.11/linux.txt | 2 +- requirements/static/ci/py3.11/windows-crypto.txt | 2 +- requirements/static/ci/py3.11/windows.txt | 2 +- requirements/static/ci/py3.12/cloud.txt | 2 +- requirements/static/ci/py3.12/darwin-crypto.txt | 2 +- requirements/static/ci/py3.12/darwin.txt | 2 +- requirements/static/ci/py3.12/docs.txt | 2 +- requirements/static/ci/py3.12/freebsd-crypto.txt | 2 +- requirements/static/ci/py3.12/freebsd.txt | 2 +- requirements/static/ci/py3.12/lint.txt | 2 +- requirements/static/ci/py3.12/linux-crypto.txt | 2 +- requirements/static/ci/py3.12/linux.txt | 2 +- requirements/static/ci/py3.12/windows-crypto.txt | 2 +- requirements/static/ci/py3.12/windows.txt | 2 +- requirements/static/ci/py3.7/cloud.txt | 2 +- requirements/static/ci/py3.7/docs.txt | 2 +- requirements/static/ci/py3.7/freebsd-crypto.txt | 2 +- requirements/static/ci/py3.7/freebsd.txt | 2 +- requirements/static/ci/py3.7/lint.txt | 2 +- requirements/static/ci/py3.7/linux-crypto.txt | 2 +- requirements/static/ci/py3.7/linux.txt | 2 +- requirements/static/ci/py3.7/windows-crypto.txt | 2 +- requirements/static/ci/py3.7/windows.txt | 2 +- requirements/static/ci/py3.8/cloud.txt | 2 +- requirements/static/ci/py3.8/docs.txt | 2 +- requirements/static/ci/py3.8/freebsd-crypto.txt | 2 +- requirements/static/ci/py3.8/freebsd.txt | 2 +- requirements/static/ci/py3.8/lint.txt | 2 +- requirements/static/ci/py3.8/linux-crypto.txt | 2 +- requirements/static/ci/py3.8/linux.txt | 2 +- requirements/static/ci/py3.8/windows-crypto.txt | 2 +- requirements/static/ci/py3.8/windows.txt | 2 +- requirements/static/ci/py3.9/cloud.txt | 2 +- requirements/static/ci/py3.9/darwin-crypto.txt | 2 +- requirements/static/ci/py3.9/darwin.txt | 2 +- requirements/static/ci/py3.9/docs.txt | 2 +- requirements/static/ci/py3.9/freebsd-crypto.txt | 2 +- requirements/static/ci/py3.9/freebsd.txt | 2 +- requirements/static/ci/py3.9/lint.txt | 2 +- requirements/static/ci/py3.9/linux-crypto.txt | 2 +- requirements/static/ci/py3.9/linux.txt | 2 +- requirements/static/ci/py3.9/windows-crypto.txt | 2 +- requirements/static/ci/py3.9/windows.txt | 2 +- requirements/static/pkg/py3.10/darwin.txt | 2 +- requirements/static/pkg/py3.10/freebsd.txt | 2 +- requirements/static/pkg/py3.10/linux.txt | 2 +- requirements/static/pkg/py3.10/windows.txt | 2 +- requirements/static/pkg/py3.11/darwin.txt | 2 +- requirements/static/pkg/py3.11/freebsd.txt | 2 +- requirements/static/pkg/py3.11/linux.txt | 2 +- requirements/static/pkg/py3.11/windows.txt | 2 +- requirements/static/pkg/py3.12/darwin.txt | 2 +- requirements/static/pkg/py3.12/freebsd.txt | 2 +- requirements/static/pkg/py3.12/linux.txt | 2 +- requirements/static/pkg/py3.12/windows.txt | 2 +- requirements/static/pkg/py3.7/freebsd.txt | 2 +- requirements/static/pkg/py3.7/linux.txt | 2 +- requirements/static/pkg/py3.7/windows.txt | 2 +- requirements/static/pkg/py3.8/freebsd.txt | 2 +- requirements/static/pkg/py3.8/linux.txt | 2 +- requirements/static/pkg/py3.8/windows.txt | 2 +- requirements/static/pkg/py3.9/darwin.txt | 2 +- requirements/static/pkg/py3.9/freebsd.txt | 2 +- requirements/static/pkg/py3.9/linux.txt | 2 +- requirements/static/pkg/py3.9/windows.txt | 2 +- 85 files changed, 87 insertions(+), 84 deletions(-) create mode 100644 changelog/65830.security.md diff --git a/changelog/65830.security.md b/changelog/65830.security.md new file mode 100644 index 00000000000..2fa6928bb63 --- /dev/null +++ b/changelog/65830.security.md @@ -0,0 +1,3 @@ +Update some requirements which had some security issues: + +* Bump to `pycryptodome==3.19.1` and `pycryptodomex==3.19.1` due to https://github.com/advisories/GHSA-j225-cvw7-qrx7 diff --git a/requirements/static/ci/py3.10/cloud.txt b/requirements/static/ci/py3.10/cloud.txt index 2b962a7a2ed..157d00545cb 100644 --- a/requirements/static/ci/py3.10/cloud.txt +++ b/requirements/static/ci/py3.10/cloud.txt @@ -414,7 +414,7 @@ pycparser==2.21 ; python_version >= "3.9" # -r requirements/static/ci/common.in # -r requirements/static/pkg/linux.in # cffi -pycryptodomex==3.9.8 +pycryptodomex==3.19.1 # via # -c requirements/static/ci/../pkg/py3.10/linux.txt # -c requirements/static/ci/py3.10/linux.txt diff --git a/requirements/static/ci/py3.10/darwin-crypto.txt b/requirements/static/ci/py3.10/darwin-crypto.txt index 6b855b4848e..80d29c13252 100644 --- a/requirements/static/ci/py3.10/darwin-crypto.txt +++ b/requirements/static/ci/py3.10/darwin-crypto.txt @@ -6,5 +6,5 @@ # m2crypto==0.38.0 # via -r requirements/static/ci/crypto.in -pycryptodome==3.9.7 +pycryptodome==3.19.1 # via -r requirements/static/ci/crypto.in diff --git a/requirements/static/ci/py3.10/darwin.txt b/requirements/static/ci/py3.10/darwin.txt index f27842ae66b..ef4bbc93929 100644 --- a/requirements/static/ci/py3.10/darwin.txt +++ b/requirements/static/ci/py3.10/darwin.txt @@ -298,7 +298,7 @@ pycparser==2.21 ; python_version >= "3.9" # -r requirements/darwin.txt # -r requirements/static/ci/common.in # cffi -pycryptodomex==3.9.8 +pycryptodomex==3.19.1 # via # -c requirements/static/ci/../pkg/py3.10/darwin.txt # -r requirements/crypto.txt diff --git a/requirements/static/ci/py3.10/docs.txt b/requirements/static/ci/py3.10/docs.txt index 75bd763edc0..2601631ebd5 100644 --- a/requirements/static/ci/py3.10/docs.txt +++ b/requirements/static/ci/py3.10/docs.txt @@ -117,7 +117,7 @@ psutil==5.8.0 # via # -c requirements/static/ci/py3.10/linux.txt # -r requirements/base.txt -pycryptodomex==3.9.8 +pycryptodomex==3.19.1 # via # -c requirements/static/ci/py3.10/linux.txt # -r requirements/crypto.txt diff --git a/requirements/static/ci/py3.10/freebsd-crypto.txt b/requirements/static/ci/py3.10/freebsd-crypto.txt index da243ac9caf..206f5bc4860 100644 --- a/requirements/static/ci/py3.10/freebsd-crypto.txt +++ b/requirements/static/ci/py3.10/freebsd-crypto.txt @@ -6,5 +6,5 @@ # m2crypto==0.38.0 # via -r requirements/static/ci/crypto.in -pycryptodome==3.9.7 +pycryptodome==3.19.1 # via -r requirements/static/ci/crypto.in diff --git a/requirements/static/ci/py3.10/freebsd.txt b/requirements/static/ci/py3.10/freebsd.txt index 95a14846949..2734d4a1ecb 100644 --- a/requirements/static/ci/py3.10/freebsd.txt +++ b/requirements/static/ci/py3.10/freebsd.txt @@ -289,7 +289,7 @@ pycparser==2.21 ; python_version >= "3.9" # -r requirements/static/ci/common.in # -r requirements/static/pkg/freebsd.in # cffi -pycryptodomex==3.9.8 +pycryptodomex==3.19.1 # via # -c requirements/static/ci/../pkg/py3.10/freebsd.txt # -r requirements/crypto.txt diff --git a/requirements/static/ci/py3.10/lint.txt b/requirements/static/ci/py3.10/lint.txt index 1d62be50e88..a18c931c5d6 100644 --- a/requirements/static/ci/py3.10/lint.txt +++ b/requirements/static/ci/py3.10/lint.txt @@ -415,7 +415,7 @@ pycparser==2.21 ; python_version >= "3.9" # -r requirements/static/ci/common.in # -r requirements/static/pkg/linux.in # cffi -pycryptodomex==3.9.8 +pycryptodomex==3.19.1 # via # -c requirements/static/ci/../pkg/py3.10/linux.txt # -c requirements/static/ci/py3.10/linux.txt diff --git a/requirements/static/ci/py3.10/linux-crypto.txt b/requirements/static/ci/py3.10/linux-crypto.txt index f824107616f..703c164212b 100644 --- a/requirements/static/ci/py3.10/linux-crypto.txt +++ b/requirements/static/ci/py3.10/linux-crypto.txt @@ -6,5 +6,5 @@ # m2crypto==0.38.0 # via -r requirements/static/ci/crypto.in -pycryptodome==3.9.7 +pycryptodome==3.19.1 # via -r requirements/static/ci/crypto.in diff --git a/requirements/static/ci/py3.10/linux.txt b/requirements/static/ci/py3.10/linux.txt index 2cdc0f15e6a..d30a616da58 100644 --- a/requirements/static/ci/py3.10/linux.txt +++ b/requirements/static/ci/py3.10/linux.txt @@ -300,7 +300,7 @@ pycparser==2.21 ; python_version >= "3.9" # -r requirements/static/ci/common.in # -r requirements/static/pkg/linux.in # cffi -pycryptodomex==3.9.8 +pycryptodomex==3.19.1 # via # -c requirements/static/ci/../pkg/py3.10/linux.txt # -r requirements/crypto.txt diff --git a/requirements/static/ci/py3.10/windows-crypto.txt b/requirements/static/ci/py3.10/windows-crypto.txt index 18248fac6f1..6854783a95e 100644 --- a/requirements/static/ci/py3.10/windows-crypto.txt +++ b/requirements/static/ci/py3.10/windows-crypto.txt @@ -8,5 +8,5 @@ m2crypto==0.37.1 # via -r requirements/static/ci/crypto.in parameterized==0.8.1 # via m2crypto -pycryptodome==3.10.1 +pycryptodome==3.19.1 # via -r requirements/static/ci/crypto.in diff --git a/requirements/static/ci/py3.10/windows.txt b/requirements/static/ci/py3.10/windows.txt index 08d00aea31b..09d8975613d 100644 --- a/requirements/static/ci/py3.10/windows.txt +++ b/requirements/static/ci/py3.10/windows.txt @@ -273,7 +273,7 @@ pycparser==2.21 ; python_version >= "3.9" # -r requirements/static/ci/common.in # -r requirements/windows.txt # cffi -pycryptodomex==3.10.1 +pycryptodomex==3.19.1 # via # -c requirements/static/ci/../pkg/py3.10/windows.txt # -r requirements/crypto.txt diff --git a/requirements/static/ci/py3.11/cloud.txt b/requirements/static/ci/py3.11/cloud.txt index e8493764de5..7c0ed800882 100644 --- a/requirements/static/ci/py3.11/cloud.txt +++ b/requirements/static/ci/py3.11/cloud.txt @@ -386,7 +386,7 @@ pycparser==2.21 ; python_version >= "3.9" # -r requirements/static/ci/common.in # -r requirements/static/pkg/linux.in # cffi -pycryptodomex==3.9.8 +pycryptodomex==3.19.1 # via # -c requirements/static/ci/../pkg/py3.11/linux.txt # -c requirements/static/ci/py3.11/linux.txt diff --git a/requirements/static/ci/py3.11/darwin-crypto.txt b/requirements/static/ci/py3.11/darwin-crypto.txt index c0aacf41077..7d9ccc789ff 100644 --- a/requirements/static/ci/py3.11/darwin-crypto.txt +++ b/requirements/static/ci/py3.11/darwin-crypto.txt @@ -6,5 +6,5 @@ # m2crypto==0.38.0 # via -r requirements/static/ci/crypto.in -pycryptodome==3.9.7 +pycryptodome==3.19.1 # via -r requirements/static/ci/crypto.in diff --git a/requirements/static/ci/py3.11/darwin.txt b/requirements/static/ci/py3.11/darwin.txt index 2607474a10f..156cbd190a6 100644 --- a/requirements/static/ci/py3.11/darwin.txt +++ b/requirements/static/ci/py3.11/darwin.txt @@ -275,7 +275,7 @@ pycparser==2.21 ; python_version >= "3.9" # -r requirements/darwin.txt # -r requirements/static/ci/common.in # cffi -pycryptodomex==3.9.8 +pycryptodomex==3.19.1 # via # -c requirements/static/ci/../pkg/py3.11/darwin.txt # -r requirements/crypto.txt diff --git a/requirements/static/ci/py3.11/docs.txt b/requirements/static/ci/py3.11/docs.txt index 1a2bac96dca..8349e865ddb 100644 --- a/requirements/static/ci/py3.11/docs.txt +++ b/requirements/static/ci/py3.11/docs.txt @@ -117,7 +117,7 @@ psutil==5.8.0 # via # -c requirements/static/ci/py3.11/linux.txt # -r requirements/base.txt -pycryptodomex==3.9.8 +pycryptodomex==3.19.1 # via # -c requirements/static/ci/py3.11/linux.txt # -r requirements/crypto.txt diff --git a/requirements/static/ci/py3.11/freebsd-crypto.txt b/requirements/static/ci/py3.11/freebsd-crypto.txt index 33399b9ff51..1a4bd53502c 100644 --- a/requirements/static/ci/py3.11/freebsd-crypto.txt +++ b/requirements/static/ci/py3.11/freebsd-crypto.txt @@ -6,5 +6,5 @@ # m2crypto==0.38.0 # via -r requirements/static/ci/crypto.in -pycryptodome==3.9.7 +pycryptodome==3.19.1 # via -r requirements/static/ci/crypto.in diff --git a/requirements/static/ci/py3.11/freebsd.txt b/requirements/static/ci/py3.11/freebsd.txt index 4f701987b63..d3cce390e55 100644 --- a/requirements/static/ci/py3.11/freebsd.txt +++ b/requirements/static/ci/py3.11/freebsd.txt @@ -270,7 +270,7 @@ pycparser==2.21 ; python_version >= "3.9" # -r requirements/static/ci/common.in # -r requirements/static/pkg/freebsd.in # cffi -pycryptodomex==3.9.8 +pycryptodomex==3.19.1 # via # -c requirements/static/ci/../pkg/py3.11/freebsd.txt # -r requirements/crypto.txt diff --git a/requirements/static/ci/py3.11/lint.txt b/requirements/static/ci/py3.11/lint.txt index cb69e4dad8c..316d2b4e9e6 100644 --- a/requirements/static/ci/py3.11/lint.txt +++ b/requirements/static/ci/py3.11/lint.txt @@ -390,7 +390,7 @@ pycparser==2.21 ; python_version >= "3.9" # -r requirements/static/ci/common.in # -r requirements/static/pkg/linux.in # cffi -pycryptodomex==3.9.8 +pycryptodomex==3.19.1 # via # -c requirements/static/ci/../pkg/py3.11/linux.txt # -c requirements/static/ci/py3.11/linux.txt diff --git a/requirements/static/ci/py3.11/linux-crypto.txt b/requirements/static/ci/py3.11/linux-crypto.txt index 89873b20c9e..24eef0fbe79 100644 --- a/requirements/static/ci/py3.11/linux-crypto.txt +++ b/requirements/static/ci/py3.11/linux-crypto.txt @@ -6,5 +6,5 @@ # m2crypto==0.38.0 # via -r requirements/static/ci/crypto.in -pycryptodome==3.9.7 +pycryptodome==3.19.1 # via -r requirements/static/ci/crypto.in diff --git a/requirements/static/ci/py3.11/linux.txt b/requirements/static/ci/py3.11/linux.txt index 633139c5000..ba6e121faf8 100644 --- a/requirements/static/ci/py3.11/linux.txt +++ b/requirements/static/ci/py3.11/linux.txt @@ -281,7 +281,7 @@ pycparser==2.21 ; python_version >= "3.9" # -r requirements/static/ci/common.in # -r requirements/static/pkg/linux.in # cffi -pycryptodomex==3.9.8 +pycryptodomex==3.19.1 # via # -c requirements/static/ci/../pkg/py3.11/linux.txt # -r requirements/crypto.txt diff --git a/requirements/static/ci/py3.11/windows-crypto.txt b/requirements/static/ci/py3.11/windows-crypto.txt index 25f318a71ba..ace610e9e3c 100644 --- a/requirements/static/ci/py3.11/windows-crypto.txt +++ b/requirements/static/ci/py3.11/windows-crypto.txt @@ -8,5 +8,5 @@ m2crypto==0.37.1 # via -r requirements/static/ci/crypto.in parameterized==0.8.1 # via m2crypto -pycryptodome==3.10.1 +pycryptodome==3.19.1 # via -r requirements/static/ci/crypto.in diff --git a/requirements/static/ci/py3.11/windows.txt b/requirements/static/ci/py3.11/windows.txt index 3a7a9c75566..d4203afe2e9 100644 --- a/requirements/static/ci/py3.11/windows.txt +++ b/requirements/static/ci/py3.11/windows.txt @@ -269,7 +269,7 @@ pycparser==2.21 ; python_version >= "3.9" # -r requirements/static/ci/common.in # -r requirements/windows.txt # cffi -pycryptodomex==3.10.1 +pycryptodomex==3.19.1 # via # -c requirements/static/ci/../pkg/py3.11/windows.txt # -r requirements/crypto.txt diff --git a/requirements/static/ci/py3.12/cloud.txt b/requirements/static/ci/py3.12/cloud.txt index 7fd5de1764f..7f312f999d0 100644 --- a/requirements/static/ci/py3.12/cloud.txt +++ b/requirements/static/ci/py3.12/cloud.txt @@ -386,7 +386,7 @@ pycparser==2.21 ; python_version >= "3.9" # -r requirements/static/ci/common.in # -r requirements/static/pkg/linux.in # cffi -pycryptodomex==3.9.8 +pycryptodomex==3.19.1 # via # -c requirements/static/ci/../pkg/py3.12/linux.txt # -c requirements/static/ci/py3.12/linux.txt diff --git a/requirements/static/ci/py3.12/darwin-crypto.txt b/requirements/static/ci/py3.12/darwin-crypto.txt index e67841ff8fa..2142f27c61d 100644 --- a/requirements/static/ci/py3.12/darwin-crypto.txt +++ b/requirements/static/ci/py3.12/darwin-crypto.txt @@ -6,5 +6,5 @@ # m2crypto==0.38.0 # via -r requirements/static/ci/crypto.in -pycryptodome==3.9.7 +pycryptodome==3.19.1 # via -r requirements/static/ci/crypto.in diff --git a/requirements/static/ci/py3.12/darwin.txt b/requirements/static/ci/py3.12/darwin.txt index bee058e2de7..e2f05479f56 100644 --- a/requirements/static/ci/py3.12/darwin.txt +++ b/requirements/static/ci/py3.12/darwin.txt @@ -275,7 +275,7 @@ pycparser==2.21 ; python_version >= "3.9" # -r requirements/darwin.txt # -r requirements/static/ci/common.in # cffi -pycryptodomex==3.9.8 +pycryptodomex==3.19.1 # via # -c requirements/static/ci/../pkg/py3.12/darwin.txt # -r requirements/crypto.txt diff --git a/requirements/static/ci/py3.12/docs.txt b/requirements/static/ci/py3.12/docs.txt index 70ddc3f6eb8..39dd98dd698 100644 --- a/requirements/static/ci/py3.12/docs.txt +++ b/requirements/static/ci/py3.12/docs.txt @@ -117,7 +117,7 @@ psutil==5.8.0 # via # -c requirements/static/ci/py3.12/linux.txt # -r requirements/base.txt -pycryptodomex==3.9.8 +pycryptodomex==3.19.1 # via # -c requirements/static/ci/py3.12/linux.txt # -r requirements/crypto.txt diff --git a/requirements/static/ci/py3.12/freebsd-crypto.txt b/requirements/static/ci/py3.12/freebsd-crypto.txt index 7bdbdbc6cad..cc73418be35 100644 --- a/requirements/static/ci/py3.12/freebsd-crypto.txt +++ b/requirements/static/ci/py3.12/freebsd-crypto.txt @@ -6,5 +6,5 @@ # m2crypto==0.38.0 # via -r requirements/static/ci/crypto.in -pycryptodome==3.9.7 +pycryptodome==3.19.1 # via -r requirements/static/ci/crypto.in diff --git a/requirements/static/ci/py3.12/freebsd.txt b/requirements/static/ci/py3.12/freebsd.txt index 4a8b0e37df9..3b057a3a916 100644 --- a/requirements/static/ci/py3.12/freebsd.txt +++ b/requirements/static/ci/py3.12/freebsd.txt @@ -270,7 +270,7 @@ pycparser==2.21 ; python_version >= "3.9" # -r requirements/static/ci/common.in # -r requirements/static/pkg/freebsd.in # cffi -pycryptodomex==3.9.8 +pycryptodomex==3.19.1 # via # -c requirements/static/ci/../pkg/py3.12/freebsd.txt # -r requirements/crypto.txt diff --git a/requirements/static/ci/py3.12/lint.txt b/requirements/static/ci/py3.12/lint.txt index 1b76109d739..9045059a88c 100644 --- a/requirements/static/ci/py3.12/lint.txt +++ b/requirements/static/ci/py3.12/lint.txt @@ -390,7 +390,7 @@ pycparser==2.21 ; python_version >= "3.9" # -r requirements/static/ci/common.in # -r requirements/static/pkg/linux.in # cffi -pycryptodomex==3.9.8 +pycryptodomex==3.19.1 # via # -c requirements/static/ci/../pkg/py3.12/linux.txt # -c requirements/static/ci/py3.12/linux.txt diff --git a/requirements/static/ci/py3.12/linux-crypto.txt b/requirements/static/ci/py3.12/linux-crypto.txt index be01a017e8b..075cb24cf14 100644 --- a/requirements/static/ci/py3.12/linux-crypto.txt +++ b/requirements/static/ci/py3.12/linux-crypto.txt @@ -6,5 +6,5 @@ # m2crypto==0.38.0 # via -r requirements/static/ci/crypto.in -pycryptodome==3.9.7 +pycryptodome==3.19.1 # via -r requirements/static/ci/crypto.in diff --git a/requirements/static/ci/py3.12/linux.txt b/requirements/static/ci/py3.12/linux.txt index 7873144f052..c33fc7b703e 100644 --- a/requirements/static/ci/py3.12/linux.txt +++ b/requirements/static/ci/py3.12/linux.txt @@ -281,7 +281,7 @@ pycparser==2.21 ; python_version >= "3.9" # -r requirements/static/ci/common.in # -r requirements/static/pkg/linux.in # cffi -pycryptodomex==3.9.8 +pycryptodomex==3.19.1 # via # -c requirements/static/ci/../pkg/py3.12/linux.txt # -r requirements/crypto.txt diff --git a/requirements/static/ci/py3.12/windows-crypto.txt b/requirements/static/ci/py3.12/windows-crypto.txt index ec84d96324e..ae8b3471240 100644 --- a/requirements/static/ci/py3.12/windows-crypto.txt +++ b/requirements/static/ci/py3.12/windows-crypto.txt @@ -8,5 +8,5 @@ m2crypto==0.37.1 # via -r requirements/static/ci/crypto.in parameterized==0.8.1 # via m2crypto -pycryptodome==3.10.1 +pycryptodome==3.19.1 # via -r requirements/static/ci/crypto.in diff --git a/requirements/static/ci/py3.12/windows.txt b/requirements/static/ci/py3.12/windows.txt index 863e8988696..8cb6687482a 100644 --- a/requirements/static/ci/py3.12/windows.txt +++ b/requirements/static/ci/py3.12/windows.txt @@ -269,7 +269,7 @@ pycparser==2.21 ; python_version >= "3.9" # -r requirements/static/ci/common.in # -r requirements/windows.txt # cffi -pycryptodomex==3.10.1 +pycryptodomex==3.19.1 # via # -c requirements/static/ci/../pkg/py3.12/windows.txt # -r requirements/crypto.txt diff --git a/requirements/static/ci/py3.7/cloud.txt b/requirements/static/ci/py3.7/cloud.txt index 43b872f936d..809e7f0df2c 100644 --- a/requirements/static/ci/py3.7/cloud.txt +++ b/requirements/static/ci/py3.7/cloud.txt @@ -460,7 +460,7 @@ pycparser==2.17 # -c requirements/static/ci/../pkg/py3.7/linux.txt # -c requirements/static/ci/py3.7/linux.txt # cffi -pycryptodomex==3.9.8 +pycryptodomex==3.19.1 # via # -c requirements/static/ci/../pkg/py3.7/linux.txt # -c requirements/static/ci/py3.7/linux.txt diff --git a/requirements/static/ci/py3.7/docs.txt b/requirements/static/ci/py3.7/docs.txt index c7ff9451ad7..96b190fabe9 100644 --- a/requirements/static/ci/py3.7/docs.txt +++ b/requirements/static/ci/py3.7/docs.txt @@ -121,7 +121,7 @@ psutil==5.8.0 # via # -c requirements/static/ci/py3.7/linux.txt # -r requirements/base.txt -pycryptodomex==3.9.8 +pycryptodomex==3.19.1 # via # -c requirements/static/ci/py3.7/linux.txt # -r requirements/crypto.txt diff --git a/requirements/static/ci/py3.7/freebsd-crypto.txt b/requirements/static/ci/py3.7/freebsd-crypto.txt index d844d2f9716..c9753516b13 100644 --- a/requirements/static/ci/py3.7/freebsd-crypto.txt +++ b/requirements/static/ci/py3.7/freebsd-crypto.txt @@ -6,5 +6,5 @@ # m2crypto==0.38.0 # via -r requirements/static/ci/crypto.in -pycryptodome==3.9.7 +pycryptodome==3.19.1 # via -r requirements/static/ci/crypto.in diff --git a/requirements/static/ci/py3.7/freebsd.txt b/requirements/static/ci/py3.7/freebsd.txt index cca81480e6d..162a4115727 100644 --- a/requirements/static/ci/py3.7/freebsd.txt +++ b/requirements/static/ci/py3.7/freebsd.txt @@ -327,7 +327,7 @@ pycparser==2.17 # via # -c requirements/static/ci/../pkg/py3.7/freebsd.txt # cffi -pycryptodomex==3.9.8 +pycryptodomex==3.19.1 # via # -c requirements/static/ci/../pkg/py3.7/freebsd.txt # -r requirements/crypto.txt diff --git a/requirements/static/ci/py3.7/lint.txt b/requirements/static/ci/py3.7/lint.txt index 5ad5a03f4f6..85eaa07d81b 100644 --- a/requirements/static/ci/py3.7/lint.txt +++ b/requirements/static/ci/py3.7/lint.txt @@ -467,7 +467,7 @@ pycparser==2.17 # -c requirements/static/ci/../pkg/py3.7/linux.txt # -c requirements/static/ci/py3.7/linux.txt # cffi -pycryptodomex==3.9.8 +pycryptodomex==3.19.1 # via # -c requirements/static/ci/../pkg/py3.7/linux.txt # -c requirements/static/ci/py3.7/linux.txt diff --git a/requirements/static/ci/py3.7/linux-crypto.txt b/requirements/static/ci/py3.7/linux-crypto.txt index e3d058b2656..6bf0d412e02 100644 --- a/requirements/static/ci/py3.7/linux-crypto.txt +++ b/requirements/static/ci/py3.7/linux-crypto.txt @@ -6,5 +6,5 @@ # m2crypto==0.38.0 # via -r requirements/static/ci/crypto.in -pycryptodome==3.9.7 +pycryptodome==3.19.1 # via -r requirements/static/ci/crypto.in diff --git a/requirements/static/ci/py3.7/linux.txt b/requirements/static/ci/py3.7/linux.txt index 5973155bed1..08ecede6a01 100644 --- a/requirements/static/ci/py3.7/linux.txt +++ b/requirements/static/ci/py3.7/linux.txt @@ -340,7 +340,7 @@ pycparser==2.17 # via # -c requirements/static/ci/../pkg/py3.7/linux.txt # cffi -pycryptodomex==3.9.8 +pycryptodomex==3.19.1 # via # -c requirements/static/ci/../pkg/py3.7/linux.txt # -r requirements/crypto.txt diff --git a/requirements/static/ci/py3.7/windows-crypto.txt b/requirements/static/ci/py3.7/windows-crypto.txt index 061b8848bbd..466f383ed04 100644 --- a/requirements/static/ci/py3.7/windows-crypto.txt +++ b/requirements/static/ci/py3.7/windows-crypto.txt @@ -6,5 +6,5 @@ # m2crypto==0.38.0 # via -r requirements/static/ci/crypto.in -pycryptodome==3.9.7 +pycryptodome==3.19.1 # via -r requirements/static/ci/crypto.in diff --git a/requirements/static/ci/py3.7/windows.txt b/requirements/static/ci/py3.7/windows.txt index 26df2e6b460..61dac739a06 100644 --- a/requirements/static/ci/py3.7/windows.txt +++ b/requirements/static/ci/py3.7/windows.txt @@ -287,7 +287,7 @@ pycparser==2.21 # -c requirements/static/ci/../pkg/py3.7/windows.txt # -r requirements/windows.txt # cffi -pycryptodomex==3.10.1 +pycryptodomex==3.19.1 # via # -c requirements/static/ci/../pkg/py3.7/windows.txt # -r requirements/crypto.txt diff --git a/requirements/static/ci/py3.8/cloud.txt b/requirements/static/ci/py3.8/cloud.txt index e04c55630b0..f59a3e2f790 100644 --- a/requirements/static/ci/py3.8/cloud.txt +++ b/requirements/static/ci/py3.8/cloud.txt @@ -447,7 +447,7 @@ pycparser==2.17 # -c requirements/static/ci/../pkg/py3.8/linux.txt # -c requirements/static/ci/py3.8/linux.txt # cffi -pycryptodomex==3.9.8 +pycryptodomex==3.19.1 # via # -c requirements/static/ci/../pkg/py3.8/linux.txt # -c requirements/static/ci/py3.8/linux.txt diff --git a/requirements/static/ci/py3.8/docs.txt b/requirements/static/ci/py3.8/docs.txt index 9e1df27652b..616cdae5f58 100644 --- a/requirements/static/ci/py3.8/docs.txt +++ b/requirements/static/ci/py3.8/docs.txt @@ -117,7 +117,7 @@ psutil==5.8.0 # via # -c requirements/static/ci/py3.8/linux.txt # -r requirements/base.txt -pycryptodomex==3.9.8 +pycryptodomex==3.19.1 # via # -c requirements/static/ci/py3.8/linux.txt # -r requirements/crypto.txt diff --git a/requirements/static/ci/py3.8/freebsd-crypto.txt b/requirements/static/ci/py3.8/freebsd-crypto.txt index 4312bea1384..ce772a5d00b 100644 --- a/requirements/static/ci/py3.8/freebsd-crypto.txt +++ b/requirements/static/ci/py3.8/freebsd-crypto.txt @@ -6,5 +6,5 @@ # m2crypto==0.38.0 # via -r requirements/static/ci/crypto.in -pycryptodome==3.9.7 +pycryptodome==3.19.1 # via -r requirements/static/ci/crypto.in diff --git a/requirements/static/ci/py3.8/freebsd.txt b/requirements/static/ci/py3.8/freebsd.txt index 486a8ad0ac2..2a3d0f16127 100644 --- a/requirements/static/ci/py3.8/freebsd.txt +++ b/requirements/static/ci/py3.8/freebsd.txt @@ -314,7 +314,7 @@ pycparser==2.17 # via # -c requirements/static/ci/../pkg/py3.8/freebsd.txt # cffi -pycryptodomex==3.9.8 +pycryptodomex==3.19.1 # via # -c requirements/static/ci/../pkg/py3.8/freebsd.txt # -r requirements/crypto.txt diff --git a/requirements/static/ci/py3.8/lint.txt b/requirements/static/ci/py3.8/lint.txt index d4d26cab35e..6e4e8f02841 100644 --- a/requirements/static/ci/py3.8/lint.txt +++ b/requirements/static/ci/py3.8/lint.txt @@ -452,7 +452,7 @@ pycparser==2.17 # -c requirements/static/ci/../pkg/py3.8/linux.txt # -c requirements/static/ci/py3.8/linux.txt # cffi -pycryptodomex==3.9.8 +pycryptodomex==3.19.1 # via # -c requirements/static/ci/../pkg/py3.8/linux.txt # -c requirements/static/ci/py3.8/linux.txt diff --git a/requirements/static/ci/py3.8/linux-crypto.txt b/requirements/static/ci/py3.8/linux-crypto.txt index 064707bf3c2..9d91dda3caf 100644 --- a/requirements/static/ci/py3.8/linux-crypto.txt +++ b/requirements/static/ci/py3.8/linux-crypto.txt @@ -6,5 +6,5 @@ # m2crypto==0.38.0 # via -r requirements/static/ci/crypto.in -pycryptodome==3.9.7 +pycryptodome==3.19.1 # via -r requirements/static/ci/crypto.in diff --git a/requirements/static/ci/py3.8/linux.txt b/requirements/static/ci/py3.8/linux.txt index 1349031a809..cc8ef6daab3 100644 --- a/requirements/static/ci/py3.8/linux.txt +++ b/requirements/static/ci/py3.8/linux.txt @@ -327,7 +327,7 @@ pycparser==2.17 # via # -c requirements/static/ci/../pkg/py3.8/linux.txt # cffi -pycryptodomex==3.9.8 +pycryptodomex==3.19.1 # via # -c requirements/static/ci/../pkg/py3.8/linux.txt # -r requirements/crypto.txt diff --git a/requirements/static/ci/py3.8/windows-crypto.txt b/requirements/static/ci/py3.8/windows-crypto.txt index 17fbd42c3d9..6f353e6190a 100644 --- a/requirements/static/ci/py3.8/windows-crypto.txt +++ b/requirements/static/ci/py3.8/windows-crypto.txt @@ -6,5 +6,5 @@ # m2crypto==0.38.0 # via -r requirements/static/ci/crypto.in -pycryptodome==3.10.1 +pycryptodome==3.19.1 # via -r requirements/static/ci/crypto.in diff --git a/requirements/static/ci/py3.8/windows.txt b/requirements/static/ci/py3.8/windows.txt index 1fb470c86dc..2b2fcdb70cc 100644 --- a/requirements/static/ci/py3.8/windows.txt +++ b/requirements/static/ci/py3.8/windows.txt @@ -274,7 +274,7 @@ pycparser==2.21 # -c requirements/static/ci/../pkg/py3.8/windows.txt # -r requirements/windows.txt # cffi -pycryptodomex==3.10.1 +pycryptodomex==3.19.1 # via # -c requirements/static/ci/../pkg/py3.8/windows.txt # -r requirements/crypto.txt diff --git a/requirements/static/ci/py3.9/cloud.txt b/requirements/static/ci/py3.9/cloud.txt index 49fb9216523..8ece9fe0054 100644 --- a/requirements/static/ci/py3.9/cloud.txt +++ b/requirements/static/ci/py3.9/cloud.txt @@ -449,7 +449,7 @@ pycparser==2.21 ; python_version >= "3.9" # -r requirements/static/ci/common.in # -r requirements/static/pkg/linux.in # cffi -pycryptodomex==3.9.8 +pycryptodomex==3.19.1 # via # -c requirements/static/ci/../pkg/py3.9/linux.txt # -c requirements/static/ci/py3.9/linux.txt diff --git a/requirements/static/ci/py3.9/darwin-crypto.txt b/requirements/static/ci/py3.9/darwin-crypto.txt index 677e1c6cdf3..a4f143000dd 100644 --- a/requirements/static/ci/py3.9/darwin-crypto.txt +++ b/requirements/static/ci/py3.9/darwin-crypto.txt @@ -6,5 +6,5 @@ # m2crypto==0.38.0 # via -r requirements/static/ci/crypto.in -pycryptodome==3.9.7 +pycryptodome==3.19.1 # via -r requirements/static/ci/crypto.in diff --git a/requirements/static/ci/py3.9/darwin.txt b/requirements/static/ci/py3.9/darwin.txt index 4500475ede2..9cc480c4f8c 100644 --- a/requirements/static/ci/py3.9/darwin.txt +++ b/requirements/static/ci/py3.9/darwin.txt @@ -325,7 +325,7 @@ pycparser==2.21 ; python_version >= "3.9" # -r requirements/darwin.txt # -r requirements/static/ci/common.in # cffi -pycryptodomex==3.9.8 +pycryptodomex==3.19.1 # via # -c requirements/static/ci/../pkg/py3.9/darwin.txt # -r requirements/crypto.txt diff --git a/requirements/static/ci/py3.9/docs.txt b/requirements/static/ci/py3.9/docs.txt index b479054a4c1..8e76c5973fd 100644 --- a/requirements/static/ci/py3.9/docs.txt +++ b/requirements/static/ci/py3.9/docs.txt @@ -121,7 +121,7 @@ psutil==5.8.0 # via # -c requirements/static/ci/py3.9/linux.txt # -r requirements/base.txt -pycryptodomex==3.9.8 +pycryptodomex==3.19.1 # via # -c requirements/static/ci/py3.9/linux.txt # -r requirements/crypto.txt diff --git a/requirements/static/ci/py3.9/freebsd-crypto.txt b/requirements/static/ci/py3.9/freebsd-crypto.txt index 01b34b6978d..c0a7a18378f 100644 --- a/requirements/static/ci/py3.9/freebsd-crypto.txt +++ b/requirements/static/ci/py3.9/freebsd-crypto.txt @@ -6,5 +6,5 @@ # m2crypto==0.38.0 # via -r requirements/static/ci/crypto.in -pycryptodome==3.9.7 +pycryptodome==3.19.1 # via -r requirements/static/ci/crypto.in diff --git a/requirements/static/ci/py3.9/freebsd.txt b/requirements/static/ci/py3.9/freebsd.txt index 569dc344f7d..ef689569923 100644 --- a/requirements/static/ci/py3.9/freebsd.txt +++ b/requirements/static/ci/py3.9/freebsd.txt @@ -316,7 +316,7 @@ pycparser==2.21 ; python_version >= "3.9" # -r requirements/static/ci/common.in # -r requirements/static/pkg/freebsd.in # cffi -pycryptodomex==3.9.8 +pycryptodomex==3.19.1 # via # -c requirements/static/ci/../pkg/py3.9/freebsd.txt # -r requirements/crypto.txt diff --git a/requirements/static/ci/py3.9/lint.txt b/requirements/static/ci/py3.9/lint.txt index bad348247b8..099f187c70e 100644 --- a/requirements/static/ci/py3.9/lint.txt +++ b/requirements/static/ci/py3.9/lint.txt @@ -450,7 +450,7 @@ pycparser==2.21 ; python_version >= "3.9" # -r requirements/static/ci/common.in # -r requirements/static/pkg/linux.in # cffi -pycryptodomex==3.9.8 +pycryptodomex==3.19.1 # via # -c requirements/static/ci/../pkg/py3.9/linux.txt # -c requirements/static/ci/py3.9/linux.txt diff --git a/requirements/static/ci/py3.9/linux-crypto.txt b/requirements/static/ci/py3.9/linux-crypto.txt index 32c40b41ec8..ee8633b39fb 100644 --- a/requirements/static/ci/py3.9/linux-crypto.txt +++ b/requirements/static/ci/py3.9/linux-crypto.txt @@ -6,5 +6,5 @@ # m2crypto==0.38.0 # via -r requirements/static/ci/crypto.in -pycryptodome==3.9.7 +pycryptodome==3.19.1 # via -r requirements/static/ci/crypto.in diff --git a/requirements/static/ci/py3.9/linux.txt b/requirements/static/ci/py3.9/linux.txt index 8f5611c0f92..bf542040a8b 100644 --- a/requirements/static/ci/py3.9/linux.txt +++ b/requirements/static/ci/py3.9/linux.txt @@ -327,7 +327,7 @@ pycparser==2.21 ; python_version >= "3.9" # -r requirements/static/ci/common.in # -r requirements/static/pkg/linux.in # cffi -pycryptodomex==3.9.8 +pycryptodomex==3.19.1 # via # -c requirements/static/ci/../pkg/py3.9/linux.txt # -r requirements/crypto.txt diff --git a/requirements/static/ci/py3.9/windows-crypto.txt b/requirements/static/ci/py3.9/windows-crypto.txt index c0ef4e1ec6c..f86205bbf2e 100644 --- a/requirements/static/ci/py3.9/windows-crypto.txt +++ b/requirements/static/ci/py3.9/windows-crypto.txt @@ -6,5 +6,5 @@ # m2crypto==0.38.0 # via -r requirements/static/ci/crypto.in -pycryptodome==3.10.1 +pycryptodome==3.19.1 # via -r requirements/static/ci/crypto.in diff --git a/requirements/static/ci/py3.9/windows.txt b/requirements/static/ci/py3.9/windows.txt index dcb2c3e4a6b..745620465a1 100644 --- a/requirements/static/ci/py3.9/windows.txt +++ b/requirements/static/ci/py3.9/windows.txt @@ -275,7 +275,7 @@ pycparser==2.21 ; python_version >= "3.9" # -r requirements/static/ci/common.in # -r requirements/windows.txt # cffi -pycryptodomex==3.10.1 +pycryptodomex==3.19.1 # via # -c requirements/static/ci/../pkg/py3.9/windows.txt # -r requirements/crypto.txt diff --git a/requirements/static/pkg/py3.10/darwin.txt b/requirements/static/pkg/py3.10/darwin.txt index 94d70174953..66f477a3679 100644 --- a/requirements/static/pkg/py3.10/darwin.txt +++ b/requirements/static/pkg/py3.10/darwin.txt @@ -79,7 +79,7 @@ pycparser==2.21 # via # -r requirements/darwin.txt # cffi -pycryptodomex==3.9.8 +pycryptodomex==3.19.1 # via -r requirements/crypto.txt pyopenssl==23.2.0 # via -r requirements/darwin.txt diff --git a/requirements/static/pkg/py3.10/freebsd.txt b/requirements/static/pkg/py3.10/freebsd.txt index f1ee26c72c1..999cbfc1e61 100644 --- a/requirements/static/pkg/py3.10/freebsd.txt +++ b/requirements/static/pkg/py3.10/freebsd.txt @@ -69,7 +69,7 @@ pycparser==2.21 ; python_version >= "3.9" # via # -r requirements/static/pkg/freebsd.in # cffi -pycryptodomex==3.9.8 +pycryptodomex==3.19.1 # via -r requirements/crypto.txt pyopenssl==23.2.0 # via -r requirements/static/pkg/freebsd.in diff --git a/requirements/static/pkg/py3.10/linux.txt b/requirements/static/pkg/py3.10/linux.txt index bb3f6f7406c..446ac3b7fd8 100644 --- a/requirements/static/pkg/py3.10/linux.txt +++ b/requirements/static/pkg/py3.10/linux.txt @@ -67,7 +67,7 @@ pycparser==2.21 ; python_version >= "3.9" # via # -r requirements/static/pkg/linux.in # cffi -pycryptodomex==3.9.8 +pycryptodomex==3.19.1 # via -r requirements/crypto.txt pyopenssl==23.2.0 # via -r requirements/static/pkg/linux.in diff --git a/requirements/static/pkg/py3.10/windows.txt b/requirements/static/pkg/py3.10/windows.txt index 2c614554fac..57bee54a0a2 100644 --- a/requirements/static/pkg/py3.10/windows.txt +++ b/requirements/static/pkg/py3.10/windows.txt @@ -84,7 +84,7 @@ pycparser==2.21 # via # -r requirements/windows.txt # cffi -pycryptodomex==3.10.1 +pycryptodomex==3.19.1 # via -r requirements/crypto.txt pymssql==2.2.7 # via -r requirements/windows.txt diff --git a/requirements/static/pkg/py3.11/darwin.txt b/requirements/static/pkg/py3.11/darwin.txt index 5d168e28d84..f58c1b44ca1 100644 --- a/requirements/static/pkg/py3.11/darwin.txt +++ b/requirements/static/pkg/py3.11/darwin.txt @@ -79,7 +79,7 @@ pycparser==2.21 # via # -r requirements/darwin.txt # cffi -pycryptodomex==3.9.8 +pycryptodomex==3.19.1 # via -r requirements/crypto.txt pyopenssl==23.2.0 # via -r requirements/darwin.txt diff --git a/requirements/static/pkg/py3.11/freebsd.txt b/requirements/static/pkg/py3.11/freebsd.txt index f1bffd3171d..7f0c55fc20e 100644 --- a/requirements/static/pkg/py3.11/freebsd.txt +++ b/requirements/static/pkg/py3.11/freebsd.txt @@ -69,7 +69,7 @@ pycparser==2.21 ; python_version >= "3.9" # via # -r requirements/static/pkg/freebsd.in # cffi -pycryptodomex==3.9.8 +pycryptodomex==3.19.1 # via -r requirements/crypto.txt pyopenssl==23.2.0 # via -r requirements/static/pkg/freebsd.in diff --git a/requirements/static/pkg/py3.11/linux.txt b/requirements/static/pkg/py3.11/linux.txt index 77dcdbad00c..0c91544bdb6 100644 --- a/requirements/static/pkg/py3.11/linux.txt +++ b/requirements/static/pkg/py3.11/linux.txt @@ -67,7 +67,7 @@ pycparser==2.21 ; python_version >= "3.9" # via # -r requirements/static/pkg/linux.in # cffi -pycryptodomex==3.9.8 +pycryptodomex==3.19.1 # via -r requirements/crypto.txt pyopenssl==23.2.0 # via -r requirements/static/pkg/linux.in diff --git a/requirements/static/pkg/py3.11/windows.txt b/requirements/static/pkg/py3.11/windows.txt index e1416d0caa2..3fba20fec85 100644 --- a/requirements/static/pkg/py3.11/windows.txt +++ b/requirements/static/pkg/py3.11/windows.txt @@ -84,7 +84,7 @@ pycparser==2.21 # via # -r requirements/windows.txt # cffi -pycryptodomex==3.10.1 +pycryptodomex==3.19.1 # via -r requirements/crypto.txt pymssql==2.2.7 # via -r requirements/windows.txt diff --git a/requirements/static/pkg/py3.12/darwin.txt b/requirements/static/pkg/py3.12/darwin.txt index d0461e528bb..25bd463624b 100644 --- a/requirements/static/pkg/py3.12/darwin.txt +++ b/requirements/static/pkg/py3.12/darwin.txt @@ -79,7 +79,7 @@ pycparser==2.21 # via # -r requirements/darwin.txt # cffi -pycryptodomex==3.9.8 +pycryptodomex==3.19.1 # via -r requirements/crypto.txt pyopenssl==23.2.0 # via -r requirements/darwin.txt diff --git a/requirements/static/pkg/py3.12/freebsd.txt b/requirements/static/pkg/py3.12/freebsd.txt index 733bfb0984e..b321476ba61 100644 --- a/requirements/static/pkg/py3.12/freebsd.txt +++ b/requirements/static/pkg/py3.12/freebsd.txt @@ -69,7 +69,7 @@ pycparser==2.21 ; python_version >= "3.9" # via # -r requirements/static/pkg/freebsd.in # cffi -pycryptodomex==3.9.8 +pycryptodomex==3.19.1 # via -r requirements/crypto.txt pyopenssl==23.2.0 # via -r requirements/static/pkg/freebsd.in diff --git a/requirements/static/pkg/py3.12/linux.txt b/requirements/static/pkg/py3.12/linux.txt index b10d400a8e7..eaf9356ed72 100644 --- a/requirements/static/pkg/py3.12/linux.txt +++ b/requirements/static/pkg/py3.12/linux.txt @@ -67,7 +67,7 @@ pycparser==2.21 ; python_version >= "3.9" # via # -r requirements/static/pkg/linux.in # cffi -pycryptodomex==3.9.8 +pycryptodomex==3.19.1 # via -r requirements/crypto.txt pyopenssl==23.2.0 # via -r requirements/static/pkg/linux.in diff --git a/requirements/static/pkg/py3.12/windows.txt b/requirements/static/pkg/py3.12/windows.txt index 50f67f958b7..0b605d4b3b2 100644 --- a/requirements/static/pkg/py3.12/windows.txt +++ b/requirements/static/pkg/py3.12/windows.txt @@ -84,7 +84,7 @@ pycparser==2.21 # via # -r requirements/windows.txt # cffi -pycryptodomex==3.10.1 +pycryptodomex==3.19.1 # via -r requirements/crypto.txt pymssql==2.2.7 # via -r requirements/windows.txt diff --git a/requirements/static/pkg/py3.7/freebsd.txt b/requirements/static/pkg/py3.7/freebsd.txt index 57ebefb0f2e..1f37ca0cb77 100644 --- a/requirements/static/pkg/py3.7/freebsd.txt +++ b/requirements/static/pkg/py3.7/freebsd.txt @@ -67,7 +67,7 @@ psutil==5.8.0 # via -r requirements/base.txt pycparser==2.17 # via cffi -pycryptodomex==3.9.8 +pycryptodomex==3.19.1 # via -r requirements/crypto.txt pyopenssl==23.2.0 # via -r requirements/static/pkg/freebsd.in diff --git a/requirements/static/pkg/py3.7/linux.txt b/requirements/static/pkg/py3.7/linux.txt index 2e83e1b6cb9..10aa08c23fd 100644 --- a/requirements/static/pkg/py3.7/linux.txt +++ b/requirements/static/pkg/py3.7/linux.txt @@ -65,7 +65,7 @@ psutil==5.8.0 # via -r requirements/base.txt pycparser==2.17 # via cffi -pycryptodomex==3.9.8 +pycryptodomex==3.19.1 # via -r requirements/crypto.txt pyopenssl==23.2.0 # via -r requirements/static/pkg/linux.in diff --git a/requirements/static/pkg/py3.7/windows.txt b/requirements/static/pkg/py3.7/windows.txt index 4a206c610ef..a7c722f36c7 100644 --- a/requirements/static/pkg/py3.7/windows.txt +++ b/requirements/static/pkg/py3.7/windows.txt @@ -84,7 +84,7 @@ pycparser==2.21 # via # -r requirements/windows.txt # cffi -pycryptodomex==3.10.1 +pycryptodomex==3.19.1 # via -r requirements/crypto.txt pymssql==2.2.1 # via -r requirements/windows.txt diff --git a/requirements/static/pkg/py3.8/freebsd.txt b/requirements/static/pkg/py3.8/freebsd.txt index 5906646aa08..a6af263a28f 100644 --- a/requirements/static/pkg/py3.8/freebsd.txt +++ b/requirements/static/pkg/py3.8/freebsd.txt @@ -67,7 +67,7 @@ psutil==5.8.0 # via -r requirements/base.txt pycparser==2.17 # via cffi -pycryptodomex==3.9.8 +pycryptodomex==3.19.1 # via -r requirements/crypto.txt pyopenssl==23.2.0 # via -r requirements/static/pkg/freebsd.in diff --git a/requirements/static/pkg/py3.8/linux.txt b/requirements/static/pkg/py3.8/linux.txt index e72f036b84a..e291cad63dc 100644 --- a/requirements/static/pkg/py3.8/linux.txt +++ b/requirements/static/pkg/py3.8/linux.txt @@ -65,7 +65,7 @@ psutil==5.8.0 # via -r requirements/base.txt pycparser==2.17 # via cffi -pycryptodomex==3.9.8 +pycryptodomex==3.19.1 # via -r requirements/crypto.txt pyopenssl==23.2.0 # via -r requirements/static/pkg/linux.in diff --git a/requirements/static/pkg/py3.8/windows.txt b/requirements/static/pkg/py3.8/windows.txt index f174826068a..f7b838bca8c 100644 --- a/requirements/static/pkg/py3.8/windows.txt +++ b/requirements/static/pkg/py3.8/windows.txt @@ -84,7 +84,7 @@ pycparser==2.21 # via # -r requirements/windows.txt # cffi -pycryptodomex==3.10.1 +pycryptodomex==3.19.1 # via -r requirements/crypto.txt pymssql==2.2.1 # via -r requirements/windows.txt diff --git a/requirements/static/pkg/py3.9/darwin.txt b/requirements/static/pkg/py3.9/darwin.txt index 97affcd929c..832976429bc 100644 --- a/requirements/static/pkg/py3.9/darwin.txt +++ b/requirements/static/pkg/py3.9/darwin.txt @@ -79,7 +79,7 @@ pycparser==2.21 # via # -r requirements/darwin.txt # cffi -pycryptodomex==3.9.8 +pycryptodomex==3.19.1 # via -r requirements/crypto.txt pyopenssl==23.2.0 # via -r requirements/darwin.txt diff --git a/requirements/static/pkg/py3.9/freebsd.txt b/requirements/static/pkg/py3.9/freebsd.txt index 7f65b8ce4b5..57a4c492aa5 100644 --- a/requirements/static/pkg/py3.9/freebsd.txt +++ b/requirements/static/pkg/py3.9/freebsd.txt @@ -69,7 +69,7 @@ pycparser==2.21 ; python_version >= "3.9" # via # -r requirements/static/pkg/freebsd.in # cffi -pycryptodomex==3.9.8 +pycryptodomex==3.19.1 # via -r requirements/crypto.txt pyopenssl==23.2.0 # via -r requirements/static/pkg/freebsd.in diff --git a/requirements/static/pkg/py3.9/linux.txt b/requirements/static/pkg/py3.9/linux.txt index 0c934fd6bc6..b46dadd157c 100644 --- a/requirements/static/pkg/py3.9/linux.txt +++ b/requirements/static/pkg/py3.9/linux.txt @@ -67,7 +67,7 @@ pycparser==2.21 ; python_version >= "3.9" # via # -r requirements/static/pkg/linux.in # cffi -pycryptodomex==3.9.8 +pycryptodomex==3.19.1 # via -r requirements/crypto.txt pyopenssl==23.2.0 # via -r requirements/static/pkg/linux.in diff --git a/requirements/static/pkg/py3.9/windows.txt b/requirements/static/pkg/py3.9/windows.txt index 9d6759d0a3f..32ec5dd7db9 100644 --- a/requirements/static/pkg/py3.9/windows.txt +++ b/requirements/static/pkg/py3.9/windows.txt @@ -84,7 +84,7 @@ pycparser==2.21 # via # -r requirements/windows.txt # cffi -pycryptodomex==3.10.1 +pycryptodomex==3.19.1 # via -r requirements/crypto.txt pymssql==2.2.1 # via -r requirements/windows.txt From 4919fbfc606ad4ccd7add287ab89cd20b6b6fe8e Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Wed, 10 Jan 2024 11:05:12 +0000 Subject: [PATCH 080/146] Bump to `ansible==9.1.0` and `ansible-core==2.16.2` Due to https://github.com/advisories/GHSA-jpvw-p8pr-9g2x and https://github.com/advisories/GHSA-7j69-qfc3-2fq9 Signed-off-by: Pedro Algarvio --- requirements/static/ci/linux.in | 3 +-- requirements/static/ci/py3.10/lint.txt | 4 ++-- requirements/static/ci/py3.10/linux.txt | 4 ++-- requirements/static/ci/py3.11/lint.txt | 4 ++-- requirements/static/ci/py3.11/linux.txt | 4 ++-- requirements/static/ci/py3.12/lint.txt | 4 ++-- requirements/static/ci/py3.12/linux.txt | 4 ++-- requirements/static/ci/py3.7/lint.txt | 16 ---------------- requirements/static/ci/py3.7/linux.txt | 10 ---------- requirements/static/ci/py3.8/lint.txt | 16 ---------------- requirements/static/ci/py3.8/linux.txt | 10 ---------- requirements/static/ci/py3.9/lint.txt | 16 ---------------- requirements/static/ci/py3.9/linux.txt | 10 ---------- 13 files changed, 13 insertions(+), 92 deletions(-) diff --git a/requirements/static/ci/linux.in b/requirements/static/ci/linux.in index 203d66ce71f..8d247386d61 100644 --- a/requirements/static/ci/linux.in +++ b/requirements/static/ci/linux.in @@ -4,8 +4,7 @@ pyiface pygit2>=1.10.1 pymysql>=1.0.2 -ansible>=4.4.0; python_version < '3.9' -ansible>=7.0.0; python_version >= '3.9' +ansible>=9.1.0; python_version >= '3.10' twilio python-telegram-bot>=13.7 yamllint diff --git a/requirements/static/ci/py3.10/lint.txt b/requirements/static/ci/py3.10/lint.txt index a18c931c5d6..bcb41543500 100644 --- a/requirements/static/ci/py3.10/lint.txt +++ b/requirements/static/ci/py3.10/lint.txt @@ -12,11 +12,11 @@ aiosignal==1.2.0 # via # -c requirements/static/ci/py3.10/linux.txt # aiohttp -ansible-core==2.14.1 +ansible-core==2.16.2 # via # -c requirements/static/ci/py3.10/linux.txt # ansible -ansible==7.1.0 ; python_version >= "3.9" +ansible==9.1.0 ; python_version >= "3.10" # via # -c requirements/static/ci/py3.10/linux.txt # -r requirements/static/ci/linux.in diff --git a/requirements/static/ci/py3.10/linux.txt b/requirements/static/ci/py3.10/linux.txt index d30a616da58..105a6a49b3c 100644 --- a/requirements/static/ci/py3.10/linux.txt +++ b/requirements/static/ci/py3.10/linux.txt @@ -8,9 +8,9 @@ aiohttp==3.9.0 # via etcd3-py aiosignal==1.2.0 # via aiohttp -ansible-core==2.14.1 +ansible-core==2.16.2 # via ansible -ansible==7.1.0 ; python_version >= "3.9" +ansible==9.1.0 ; python_version >= "3.10" # via -r requirements/static/ci/linux.in apache-libcloud==2.5.0 ; sys_platform != "win32" # via -r requirements/static/ci/common.in diff --git a/requirements/static/ci/py3.11/lint.txt b/requirements/static/ci/py3.11/lint.txt index 316d2b4e9e6..b449e2468b1 100644 --- a/requirements/static/ci/py3.11/lint.txt +++ b/requirements/static/ci/py3.11/lint.txt @@ -12,11 +12,11 @@ aiosignal==1.2.0 # via # -c requirements/static/ci/py3.11/linux.txt # aiohttp -ansible-core==2.14.1 +ansible-core==2.16.2 # via # -c requirements/static/ci/py3.11/linux.txt # ansible -ansible==7.1.0 ; python_version >= "3.9" +ansible==9.1.0 ; python_version >= "3.10" # via # -c requirements/static/ci/py3.11/linux.txt # -r requirements/static/ci/linux.in diff --git a/requirements/static/ci/py3.11/linux.txt b/requirements/static/ci/py3.11/linux.txt index ba6e121faf8..8fdf369b64d 100644 --- a/requirements/static/ci/py3.11/linux.txt +++ b/requirements/static/ci/py3.11/linux.txt @@ -8,9 +8,9 @@ aiohttp==3.9.0 # via etcd3-py aiosignal==1.2.0 # via aiohttp -ansible-core==2.14.1 +ansible-core==2.16.2 # via ansible -ansible==7.1.0 ; python_version >= "3.9" +ansible==9.1.0 ; python_version >= "3.10" # via -r requirements/static/ci/linux.in apache-libcloud==2.5.0 ; sys_platform != "win32" # via -r requirements/static/ci/common.in diff --git a/requirements/static/ci/py3.12/lint.txt b/requirements/static/ci/py3.12/lint.txt index 9045059a88c..47aec11ad69 100644 --- a/requirements/static/ci/py3.12/lint.txt +++ b/requirements/static/ci/py3.12/lint.txt @@ -12,11 +12,11 @@ aiosignal==1.2.0 # via # -c requirements/static/ci/py3.12/linux.txt # aiohttp -ansible-core==2.14.1 +ansible-core==2.16.2 # via # -c requirements/static/ci/py3.12/linux.txt # ansible -ansible==7.1.0 ; python_version >= "3.9" +ansible==9.1.0 ; python_version >= "3.10" # via # -c requirements/static/ci/py3.12/linux.txt # -r requirements/static/ci/linux.in diff --git a/requirements/static/ci/py3.12/linux.txt b/requirements/static/ci/py3.12/linux.txt index c33fc7b703e..96a6d9a368e 100644 --- a/requirements/static/ci/py3.12/linux.txt +++ b/requirements/static/ci/py3.12/linux.txt @@ -8,9 +8,9 @@ aiohttp==3.9.0 # via etcd3-py aiosignal==1.2.0 # via aiohttp -ansible-core==2.14.1 +ansible-core==2.16.2 # via ansible -ansible==7.1.0 ; python_version >= "3.9" +ansible==9.1.0 ; python_version >= "3.10" # via -r requirements/static/ci/linux.in apache-libcloud==2.5.0 ; sys_platform != "win32" # via -r requirements/static/ci/common.in diff --git a/requirements/static/ci/py3.7/lint.txt b/requirements/static/ci/py3.7/lint.txt index 85eaa07d81b..121d3e9e2d0 100644 --- a/requirements/static/ci/py3.7/lint.txt +++ b/requirements/static/ci/py3.7/lint.txt @@ -12,14 +12,6 @@ aiosignal==1.2.0 # via # -c requirements/static/ci/py3.7/linux.txt # aiohttp -ansible-core==2.11.7 - # via - # -c requirements/static/ci/py3.7/linux.txt - # ansible -ansible==4.4.0 ; python_version < "3.9" - # via - # -c requirements/static/ci/py3.7/linux.txt - # -r requirements/static/ci/linux.in apache-libcloud==2.5.0 ; sys_platform != "win32" # via # -c requirements/static/ci/py3.7/linux.txt @@ -162,7 +154,6 @@ cryptography==41.0.7 # -c requirements/static/ci/../pkg/py3.7/linux.txt # -c requirements/static/ci/py3.7/linux.txt # -r requirements/static/pkg/linux.in - # ansible-core # etcd3-py # moto # paramiko @@ -285,7 +276,6 @@ jinja2==3.1.2 # -c requirements/static/ci/../pkg/py3.7/linux.txt # -c requirements/static/ci/py3.7/linux.txt # -r requirements/base.txt - # ansible-core # junos-eznc # moto # napalm @@ -413,7 +403,6 @@ packaging==22.0 # -c requirements/static/ci/../pkg/py3.7/linux.txt # -c requirements/static/ci/py3.7/linux.txt # -r requirements/base.txt - # ansible-core # docker paramiko==2.10.1 ; sys_platform != "win32" and sys_platform != "darwin" # via @@ -569,7 +558,6 @@ pyyaml==6.0.1 # -c requirements/static/ci/../pkg/py3.7/linux.txt # -c requirements/static/ci/py3.7/linux.txt # -r requirements/base.txt - # ansible-core # clustershell # junos-eznc # kubernetes @@ -606,10 +594,6 @@ requests==2.31.0 # responses # twilio # vcert -resolvelib==0.5.4 - # via - # -c requirements/static/ci/py3.7/linux.txt - # ansible-core responses==0.10.6 # via # -c requirements/static/ci/py3.7/linux.txt diff --git a/requirements/static/ci/py3.7/linux.txt b/requirements/static/ci/py3.7/linux.txt index 08ecede6a01..d3cca6a9277 100644 --- a/requirements/static/ci/py3.7/linux.txt +++ b/requirements/static/ci/py3.7/linux.txt @@ -8,10 +8,6 @@ aiohttp==3.8.6 # via etcd3-py aiosignal==1.2.0 # via aiohttp -ansible-core==2.11.7 - # via ansible -ansible==4.4.0 ; python_version < "3.9" - # via -r requirements/static/ci/linux.in apache-libcloud==2.5.0 ; sys_platform != "win32" # via -r requirements/static/ci/common.in apscheduler==3.6.3 @@ -112,7 +108,6 @@ cryptography==41.0.7 # via # -c requirements/static/ci/../pkg/py3.7/linux.txt # -r requirements/static/pkg/linux.in - # ansible-core # etcd3-py # moto # paramiko @@ -208,7 +203,6 @@ jinja2==3.1.2 # via # -c requirements/static/ci/../pkg/py3.7/linux.txt # -r requirements/base.txt - # ansible-core # junos-eznc # moto # napalm @@ -296,7 +290,6 @@ packaging==22.0 # via # -c requirements/static/ci/../pkg/py3.7/linux.txt # -r requirements/base.txt - # ansible-core # docker # pytest paramiko==2.10.1 ; sys_platform != "win32" and sys_platform != "darwin" @@ -443,7 +436,6 @@ pyyaml==6.0.1 # via # -c requirements/static/ci/../pkg/py3.7/linux.txt # -r requirements/base.txt - # ansible-core # clustershell # junos-eznc # kubernetes @@ -476,8 +468,6 @@ requests==2.31.0 # responses # twilio # vcert -resolvelib==0.5.4 - # via ansible-core responses==0.10.6 # via moto rfc3987==1.3.8 diff --git a/requirements/static/ci/py3.8/lint.txt b/requirements/static/ci/py3.8/lint.txt index 6e4e8f02841..6308d0b3316 100644 --- a/requirements/static/ci/py3.8/lint.txt +++ b/requirements/static/ci/py3.8/lint.txt @@ -12,14 +12,6 @@ aiosignal==1.2.0 # via # -c requirements/static/ci/py3.8/linux.txt # aiohttp -ansible-core==2.11.7 - # via - # -c requirements/static/ci/py3.8/linux.txt - # ansible -ansible==4.4.0 ; python_version < "3.9" - # via - # -c requirements/static/ci/py3.8/linux.txt - # -r requirements/static/ci/linux.in apache-libcloud==2.5.0 ; sys_platform != "win32" # via # -c requirements/static/ci/py3.8/linux.txt @@ -153,7 +145,6 @@ cryptography==41.0.7 # -c requirements/static/ci/../pkg/py3.8/linux.txt # -c requirements/static/ci/py3.8/linux.txt # -r requirements/static/pkg/linux.in - # ansible-core # etcd3-py # moto # paramiko @@ -270,7 +261,6 @@ jinja2==3.1.2 # -c requirements/static/ci/../pkg/py3.8/linux.txt # -c requirements/static/ci/py3.8/linux.txt # -r requirements/base.txt - # ansible-core # junos-eznc # moto # napalm @@ -398,7 +388,6 @@ packaging==22.0 # -c requirements/static/ci/../pkg/py3.8/linux.txt # -c requirements/static/ci/py3.8/linux.txt # -r requirements/base.txt - # ansible-core # docker paramiko==2.10.1 ; sys_platform != "win32" and sys_platform != "darwin" # via @@ -554,7 +543,6 @@ pyyaml==6.0.1 # -c requirements/static/ci/../pkg/py3.8/linux.txt # -c requirements/static/ci/py3.8/linux.txt # -r requirements/base.txt - # ansible-core # clustershell # junos-eznc # kubernetes @@ -591,10 +579,6 @@ requests==2.31.0 # responses # twilio # vcert -resolvelib==0.5.4 - # via - # -c requirements/static/ci/py3.8/linux.txt - # ansible-core responses==0.10.6 # via # -c requirements/static/ci/py3.8/linux.txt diff --git a/requirements/static/ci/py3.8/linux.txt b/requirements/static/ci/py3.8/linux.txt index cc8ef6daab3..a22ae241e05 100644 --- a/requirements/static/ci/py3.8/linux.txt +++ b/requirements/static/ci/py3.8/linux.txt @@ -8,10 +8,6 @@ aiohttp==3.9.0 # via etcd3-py aiosignal==1.2.0 # via aiohttp -ansible-core==2.11.7 - # via ansible -ansible==4.4.0 ; python_version < "3.9" - # via -r requirements/static/ci/linux.in apache-libcloud==2.5.0 ; sys_platform != "win32" # via -r requirements/static/ci/common.in apscheduler==3.6.3 @@ -107,7 +103,6 @@ cryptography==41.0.7 # via # -c requirements/static/ci/../pkg/py3.8/linux.txt # -r requirements/static/pkg/linux.in - # ansible-core # etcd3-py # moto # paramiko @@ -195,7 +190,6 @@ jinja2==3.1.2 # via # -c requirements/static/ci/../pkg/py3.8/linux.txt # -r requirements/base.txt - # ansible-core # junos-eznc # moto # napalm @@ -283,7 +277,6 @@ packaging==22.0 # via # -c requirements/static/ci/../pkg/py3.8/linux.txt # -r requirements/base.txt - # ansible-core # docker # pytest paramiko==2.10.1 ; sys_platform != "win32" and sys_platform != "darwin" @@ -430,7 +423,6 @@ pyyaml==6.0.1 # via # -c requirements/static/ci/../pkg/py3.8/linux.txt # -r requirements/base.txt - # ansible-core # clustershell # junos-eznc # kubernetes @@ -463,8 +455,6 @@ requests==2.31.0 # responses # twilio # vcert -resolvelib==0.5.4 - # via ansible-core responses==0.10.6 # via moto rfc3987==1.3.8 diff --git a/requirements/static/ci/py3.9/lint.txt b/requirements/static/ci/py3.9/lint.txt index 099f187c70e..cab4f4d19c5 100644 --- a/requirements/static/ci/py3.9/lint.txt +++ b/requirements/static/ci/py3.9/lint.txt @@ -12,14 +12,6 @@ aiosignal==1.2.0 # via # -c requirements/static/ci/py3.9/linux.txt # aiohttp -ansible-core==2.14.1 - # via - # -c requirements/static/ci/py3.9/linux.txt - # ansible -ansible==7.1.0 ; python_version >= "3.9" - # via - # -c requirements/static/ci/py3.9/linux.txt - # -r requirements/static/ci/linux.in apache-libcloud==2.5.0 ; sys_platform != "win32" # via # -c requirements/static/ci/py3.9/linux.txt @@ -149,7 +141,6 @@ cryptography==41.0.7 # -c requirements/static/ci/../pkg/py3.9/linux.txt # -c requirements/static/ci/py3.9/linux.txt # -r requirements/static/pkg/linux.in - # ansible-core # etcd3-py # moto # paramiko @@ -266,7 +257,6 @@ jinja2==3.1.2 # -c requirements/static/ci/../pkg/py3.9/linux.txt # -c requirements/static/ci/py3.9/linux.txt # -r requirements/base.txt - # ansible-core # junos-eznc # moto # napalm @@ -394,7 +384,6 @@ packaging==22.0 # -c requirements/static/ci/../pkg/py3.9/linux.txt # -c requirements/static/ci/py3.9/linux.txt # -r requirements/base.txt - # ansible-core # docker paramiko==2.10.1 ; sys_platform != "win32" and sys_platform != "darwin" # via @@ -552,7 +541,6 @@ pyyaml==6.0.1 # -c requirements/static/ci/../pkg/py3.9/linux.txt # -c requirements/static/ci/py3.9/linux.txt # -r requirements/base.txt - # ansible-core # clustershell # junos-eznc # kubernetes @@ -589,10 +577,6 @@ requests==2.31.0 # responses # twilio # vcert -resolvelib==0.5.4 - # via - # -c requirements/static/ci/py3.9/linux.txt - # ansible-core responses==0.10.6 # via # -c requirements/static/ci/py3.9/linux.txt diff --git a/requirements/static/ci/py3.9/linux.txt b/requirements/static/ci/py3.9/linux.txt index bf542040a8b..8515f3facd2 100644 --- a/requirements/static/ci/py3.9/linux.txt +++ b/requirements/static/ci/py3.9/linux.txt @@ -8,10 +8,6 @@ aiohttp==3.9.0 # via etcd3-py aiosignal==1.2.0 # via aiohttp -ansible-core==2.14.1 - # via ansible -ansible==7.1.0 ; python_version >= "3.9" - # via -r requirements/static/ci/linux.in apache-libcloud==2.5.0 ; sys_platform != "win32" # via -r requirements/static/ci/common.in apscheduler==3.6.3 @@ -105,7 +101,6 @@ cryptography==41.0.7 # via # -c requirements/static/ci/../pkg/py3.9/linux.txt # -r requirements/static/pkg/linux.in - # ansible-core # etcd3-py # moto # paramiko @@ -193,7 +188,6 @@ jinja2==3.1.2 # via # -c requirements/static/ci/../pkg/py3.9/linux.txt # -r requirements/base.txt - # ansible-core # junos-eznc # moto # napalm @@ -281,7 +275,6 @@ packaging==22.0 # via # -c requirements/static/ci/../pkg/py3.9/linux.txt # -r requirements/base.txt - # ansible-core # docker # pytest paramiko==2.10.1 ; sys_platform != "win32" and sys_platform != "darwin" @@ -430,7 +423,6 @@ pyyaml==6.0.1 # via # -c requirements/static/ci/../pkg/py3.9/linux.txt # -r requirements/base.txt - # ansible-core # clustershell # junos-eznc # kubernetes @@ -463,8 +455,6 @@ requests==2.31.0 # responses # twilio # vcert -resolvelib==0.5.4 - # via ansible-core responses==0.10.6 # via moto rfc3987==1.3.8 From 1655167e7a7be4f13342d5be9e0440d91727a087 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Wed, 10 Jan 2024 11:10:34 +0000 Subject: [PATCH 081/146] Update `pip` constraints to `>= 23.3,< 24.0` due to https://github.com/advisories/GHSA-mq26-g339-26xf Signed-off-by: Pedro Algarvio --- requirements/constraints.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements/constraints.txt b/requirements/constraints.txt index 4406e011a33..d38a53d3101 100644 --- a/requirements/constraints.txt +++ b/requirements/constraints.txt @@ -1,3 +1,3 @@ setuptools >= 65.6.3,< 69.0 setuptools-scm < 8.0.0 -pip >= 22.3.1,< 23.0 +pip >= 23.3,< 24.0 From 2bafd5b34e715325bd995570705d7ab354bd5805 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Thu, 11 Jan 2024 13:37:12 +0000 Subject: [PATCH 082/146] Bump to `gitpython==3.1.41` due to https://github.com/advisories/GHSA-2mqj-m65w-jghx Signed-off-by: Pedro Algarvio --- changelog/65830.security.md | 1 + requirements/static/ci/py3.10/cloud.txt | 2 +- requirements/static/ci/py3.10/darwin.txt | 2 +- requirements/static/ci/py3.10/freebsd.txt | 2 +- requirements/static/ci/py3.10/lint.txt | 2 +- requirements/static/ci/py3.10/linux.txt | 2 +- requirements/static/ci/py3.10/windows.txt | 2 +- requirements/static/ci/py3.11/cloud.txt | 2 +- requirements/static/ci/py3.11/darwin.txt | 2 +- requirements/static/ci/py3.11/freebsd.txt | 2 +- requirements/static/ci/py3.11/lint.txt | 2 +- requirements/static/ci/py3.11/linux.txt | 2 +- requirements/static/ci/py3.11/windows.txt | 2 +- requirements/static/ci/py3.12/cloud.txt | 2 +- requirements/static/ci/py3.12/darwin.txt | 2 +- requirements/static/ci/py3.12/freebsd.txt | 2 +- requirements/static/ci/py3.12/lint.txt | 2 +- requirements/static/ci/py3.12/linux.txt | 2 +- requirements/static/ci/py3.12/windows.txt | 2 +- requirements/static/ci/py3.7/cloud.txt | 2 +- requirements/static/ci/py3.7/freebsd.txt | 2 +- requirements/static/ci/py3.7/lint.txt | 2 +- requirements/static/ci/py3.7/linux.txt | 2 +- requirements/static/ci/py3.7/windows.txt | 2 +- requirements/static/ci/py3.8/cloud.txt | 2 +- requirements/static/ci/py3.8/freebsd.txt | 2 +- requirements/static/ci/py3.8/lint.txt | 2 +- requirements/static/ci/py3.8/linux.txt | 2 +- requirements/static/ci/py3.8/windows.txt | 2 +- requirements/static/ci/py3.9/cloud.txt | 2 +- requirements/static/ci/py3.9/darwin.txt | 2 +- requirements/static/ci/py3.9/freebsd.txt | 2 +- requirements/static/ci/py3.9/lint.txt | 2 +- requirements/static/ci/py3.9/linux.txt | 2 +- requirements/static/ci/py3.9/windows.txt | 2 +- requirements/static/pkg/py3.10/darwin.txt | 2 +- requirements/static/pkg/py3.10/windows.txt | 2 +- requirements/static/pkg/py3.11/darwin.txt | 2 +- requirements/static/pkg/py3.11/windows.txt | 2 +- requirements/static/pkg/py3.12/darwin.txt | 2 +- requirements/static/pkg/py3.12/windows.txt | 2 +- requirements/static/pkg/py3.7/windows.txt | 2 +- requirements/static/pkg/py3.8/windows.txt | 2 +- requirements/static/pkg/py3.9/darwin.txt | 2 +- requirements/static/pkg/py3.9/windows.txt | 2 +- 45 files changed, 45 insertions(+), 44 deletions(-) diff --git a/changelog/65830.security.md b/changelog/65830.security.md index 2fa6928bb63..b6a01212508 100644 --- a/changelog/65830.security.md +++ b/changelog/65830.security.md @@ -1,3 +1,4 @@ Update some requirements which had some security issues: * Bump to `pycryptodome==3.19.1` and `pycryptodomex==3.19.1` due to https://github.com/advisories/GHSA-j225-cvw7-qrx7 +* Bump to `gitpython==3.1.41` due to https://github.com/advisories/GHSA-2mqj-m65w-jghx diff --git a/requirements/static/ci/py3.10/cloud.txt b/requirements/static/ci/py3.10/cloud.txt index 157d00545cb..63ca39daf93 100644 --- a/requirements/static/ci/py3.10/cloud.txt +++ b/requirements/static/ci/py3.10/cloud.txt @@ -189,7 +189,7 @@ gitdb==4.0.7 # via # -c requirements/static/ci/py3.10/linux.txt # gitpython -gitpython==3.1.37 +gitpython==3.1.41 # via # -c requirements/static/ci/py3.10/linux.txt # -r requirements/static/ci/common.in diff --git a/requirements/static/ci/py3.10/darwin.txt b/requirements/static/ci/py3.10/darwin.txt index ef4bbc93929..70a17a44670 100644 --- a/requirements/static/ci/py3.10/darwin.txt +++ b/requirements/static/ci/py3.10/darwin.txt @@ -132,7 +132,7 @@ gitdb==4.0.7 # via # -c requirements/static/ci/../pkg/py3.10/darwin.txt # gitpython -gitpython==3.1.37 +gitpython==3.1.41 # via # -c requirements/static/ci/../pkg/py3.10/darwin.txt # -r requirements/darwin.txt diff --git a/requirements/static/ci/py3.10/freebsd.txt b/requirements/static/ci/py3.10/freebsd.txt index 2734d4a1ecb..e8671ea0ff1 100644 --- a/requirements/static/ci/py3.10/freebsd.txt +++ b/requirements/static/ci/py3.10/freebsd.txt @@ -128,7 +128,7 @@ geomet==0.2.1.post1 # via cassandra-driver gitdb==4.0.7 # via gitpython -gitpython==3.1.37 +gitpython==3.1.41 # via -r requirements/static/ci/common.in google-auth==2.1.0 # via kubernetes diff --git a/requirements/static/ci/py3.10/lint.txt b/requirements/static/ci/py3.10/lint.txt index bcb41543500..d5f56308fd8 100644 --- a/requirements/static/ci/py3.10/lint.txt +++ b/requirements/static/ci/py3.10/lint.txt @@ -189,7 +189,7 @@ gitdb==4.0.7 # via # -c requirements/static/ci/py3.10/linux.txt # gitpython -gitpython==3.1.37 +gitpython==3.1.41 # via # -c requirements/static/ci/py3.10/linux.txt # -r requirements/static/ci/common.in diff --git a/requirements/static/ci/py3.10/linux.txt b/requirements/static/ci/py3.10/linux.txt index 105a6a49b3c..c76afd57330 100644 --- a/requirements/static/ci/py3.10/linux.txt +++ b/requirements/static/ci/py3.10/linux.txt @@ -137,7 +137,7 @@ geomet==0.1.2 # via cassandra-driver gitdb==4.0.7 # via gitpython -gitpython==3.1.37 +gitpython==3.1.41 # via -r requirements/static/ci/common.in google-auth==2.1.0 # via kubernetes diff --git a/requirements/static/ci/py3.10/windows.txt b/requirements/static/ci/py3.10/windows.txt index 09d8975613d..df75c0aea51 100644 --- a/requirements/static/ci/py3.10/windows.txt +++ b/requirements/static/ci/py3.10/windows.txt @@ -124,7 +124,7 @@ gitdb==4.0.7 # via # -c requirements/static/ci/../pkg/py3.10/windows.txt # gitpython -gitpython==3.1.37 +gitpython==3.1.41 # via # -c requirements/static/ci/../pkg/py3.10/windows.txt # -r requirements/static/ci/common.in diff --git a/requirements/static/ci/py3.11/cloud.txt b/requirements/static/ci/py3.11/cloud.txt index 7c0ed800882..376f5b8599e 100644 --- a/requirements/static/ci/py3.11/cloud.txt +++ b/requirements/static/ci/py3.11/cloud.txt @@ -181,7 +181,7 @@ gitdb==4.0.7 # via # -c requirements/static/ci/py3.11/linux.txt # gitpython -gitpython==3.1.37 +gitpython==3.1.41 # via # -c requirements/static/ci/py3.11/linux.txt # -r requirements/static/ci/common.in diff --git a/requirements/static/ci/py3.11/darwin.txt b/requirements/static/ci/py3.11/darwin.txt index 156cbd190a6..7a83a23e544 100644 --- a/requirements/static/ci/py3.11/darwin.txt +++ b/requirements/static/ci/py3.11/darwin.txt @@ -125,7 +125,7 @@ gitdb==4.0.7 # via # -c requirements/static/ci/../pkg/py3.11/darwin.txt # gitpython -gitpython==3.1.37 +gitpython==3.1.41 # via # -c requirements/static/ci/../pkg/py3.11/darwin.txt # -r requirements/darwin.txt diff --git a/requirements/static/ci/py3.11/freebsd.txt b/requirements/static/ci/py3.11/freebsd.txt index d3cce390e55..1693be3ea9e 100644 --- a/requirements/static/ci/py3.11/freebsd.txt +++ b/requirements/static/ci/py3.11/freebsd.txt @@ -124,7 +124,7 @@ geomet==0.2.1.post1 # via cassandra-driver gitdb==4.0.7 # via gitpython -gitpython==3.1.37 +gitpython==3.1.41 # via -r requirements/static/ci/common.in google-auth==2.1.0 # via kubernetes diff --git a/requirements/static/ci/py3.11/lint.txt b/requirements/static/ci/py3.11/lint.txt index b449e2468b1..707e9c65cbf 100644 --- a/requirements/static/ci/py3.11/lint.txt +++ b/requirements/static/ci/py3.11/lint.txt @@ -185,7 +185,7 @@ gitdb==4.0.7 # via # -c requirements/static/ci/py3.11/linux.txt # gitpython -gitpython==3.1.37 +gitpython==3.1.41 # via # -c requirements/static/ci/py3.11/linux.txt # -r requirements/static/ci/common.in diff --git a/requirements/static/ci/py3.11/linux.txt b/requirements/static/ci/py3.11/linux.txt index 8fdf369b64d..5ed64f7e8be 100644 --- a/requirements/static/ci/py3.11/linux.txt +++ b/requirements/static/ci/py3.11/linux.txt @@ -133,7 +133,7 @@ geomet==0.1.2 # via cassandra-driver gitdb==4.0.7 # via gitpython -gitpython==3.1.37 +gitpython==3.1.41 # via -r requirements/static/ci/common.in google-auth==2.1.0 # via kubernetes diff --git a/requirements/static/ci/py3.11/windows.txt b/requirements/static/ci/py3.11/windows.txt index d4203afe2e9..cff5732a268 100644 --- a/requirements/static/ci/py3.11/windows.txt +++ b/requirements/static/ci/py3.11/windows.txt @@ -120,7 +120,7 @@ gitdb==4.0.7 # via # -c requirements/static/ci/../pkg/py3.11/windows.txt # gitpython -gitpython==3.1.37 +gitpython==3.1.41 # via # -c requirements/static/ci/../pkg/py3.11/windows.txt # -r requirements/static/ci/common.in diff --git a/requirements/static/ci/py3.12/cloud.txt b/requirements/static/ci/py3.12/cloud.txt index 7f312f999d0..a8659b089fa 100644 --- a/requirements/static/ci/py3.12/cloud.txt +++ b/requirements/static/ci/py3.12/cloud.txt @@ -181,7 +181,7 @@ gitdb==4.0.7 # via # -c requirements/static/ci/py3.12/linux.txt # gitpython -gitpython==3.1.37 +gitpython==3.1.41 # via # -c requirements/static/ci/py3.12/linux.txt # -r requirements/static/ci/common.in diff --git a/requirements/static/ci/py3.12/darwin.txt b/requirements/static/ci/py3.12/darwin.txt index e2f05479f56..cc0a64a764e 100644 --- a/requirements/static/ci/py3.12/darwin.txt +++ b/requirements/static/ci/py3.12/darwin.txt @@ -125,7 +125,7 @@ gitdb==4.0.7 # via # -c requirements/static/ci/../pkg/py3.12/darwin.txt # gitpython -gitpython==3.1.37 +gitpython==3.1.41 # via # -c requirements/static/ci/../pkg/py3.12/darwin.txt # -r requirements/darwin.txt diff --git a/requirements/static/ci/py3.12/freebsd.txt b/requirements/static/ci/py3.12/freebsd.txt index 3b057a3a916..e674b3d5b70 100644 --- a/requirements/static/ci/py3.12/freebsd.txt +++ b/requirements/static/ci/py3.12/freebsd.txt @@ -124,7 +124,7 @@ geomet==0.2.1.post1 # via cassandra-driver gitdb==4.0.7 # via gitpython -gitpython==3.1.37 +gitpython==3.1.41 # via -r requirements/static/ci/common.in google-auth==2.1.0 # via kubernetes diff --git a/requirements/static/ci/py3.12/lint.txt b/requirements/static/ci/py3.12/lint.txt index 47aec11ad69..8f578b7d8e2 100644 --- a/requirements/static/ci/py3.12/lint.txt +++ b/requirements/static/ci/py3.12/lint.txt @@ -185,7 +185,7 @@ gitdb==4.0.7 # via # -c requirements/static/ci/py3.12/linux.txt # gitpython -gitpython==3.1.37 +gitpython==3.1.41 # via # -c requirements/static/ci/py3.12/linux.txt # -r requirements/static/ci/common.in diff --git a/requirements/static/ci/py3.12/linux.txt b/requirements/static/ci/py3.12/linux.txt index 96a6d9a368e..8b12a7fcbaf 100644 --- a/requirements/static/ci/py3.12/linux.txt +++ b/requirements/static/ci/py3.12/linux.txt @@ -133,7 +133,7 @@ geomet==0.1.2 # via cassandra-driver gitdb==4.0.7 # via gitpython -gitpython==3.1.37 +gitpython==3.1.41 # via -r requirements/static/ci/common.in google-auth==2.1.0 # via kubernetes diff --git a/requirements/static/ci/py3.12/windows.txt b/requirements/static/ci/py3.12/windows.txt index 8cb6687482a..ddb6b0ed748 100644 --- a/requirements/static/ci/py3.12/windows.txt +++ b/requirements/static/ci/py3.12/windows.txt @@ -120,7 +120,7 @@ gitdb==4.0.7 # via # -c requirements/static/ci/../pkg/py3.12/windows.txt # gitpython -gitpython==3.1.37 +gitpython==3.1.41 # via # -c requirements/static/ci/../pkg/py3.12/windows.txt # -r requirements/static/ci/common.in diff --git a/requirements/static/ci/py3.7/cloud.txt b/requirements/static/ci/py3.7/cloud.txt index 809e7f0df2c..e82b55a0673 100644 --- a/requirements/static/ci/py3.7/cloud.txt +++ b/requirements/static/ci/py3.7/cloud.txt @@ -209,7 +209,7 @@ gitdb==4.0.7 # via # -c requirements/static/ci/py3.7/linux.txt # gitpython -gitpython==3.1.37 +gitpython==3.1.41 # via # -c requirements/static/ci/py3.7/linux.txt # -r requirements/static/ci/common.in diff --git a/requirements/static/ci/py3.7/freebsd.txt b/requirements/static/ci/py3.7/freebsd.txt index 162a4115727..e901d75ace2 100644 --- a/requirements/static/ci/py3.7/freebsd.txt +++ b/requirements/static/ci/py3.7/freebsd.txt @@ -143,7 +143,7 @@ geomet==0.2.1.post1 # via cassandra-driver gitdb==4.0.7 # via gitpython -gitpython==3.1.37 +gitpython==3.1.41 # via -r requirements/static/ci/common.in google-auth==2.1.0 # via kubernetes diff --git a/requirements/static/ci/py3.7/lint.txt b/requirements/static/ci/py3.7/lint.txt index 121d3e9e2d0..9af4a933f0b 100644 --- a/requirements/static/ci/py3.7/lint.txt +++ b/requirements/static/ci/py3.7/lint.txt @@ -208,7 +208,7 @@ gitdb==4.0.7 # via # -c requirements/static/ci/py3.7/linux.txt # gitpython -gitpython==3.1.37 +gitpython==3.1.41 # via # -c requirements/static/ci/py3.7/linux.txt # -r requirements/static/ci/common.in diff --git a/requirements/static/ci/py3.7/linux.txt b/requirements/static/ci/py3.7/linux.txt index d3cca6a9277..165c66ee850 100644 --- a/requirements/static/ci/py3.7/linux.txt +++ b/requirements/static/ci/py3.7/linux.txt @@ -149,7 +149,7 @@ geomet==0.1.2 # via cassandra-driver gitdb==4.0.7 # via gitpython -gitpython==3.1.37 +gitpython==3.1.41 # via -r requirements/static/ci/common.in google-auth==2.1.0 # via kubernetes diff --git a/requirements/static/ci/py3.7/windows.txt b/requirements/static/ci/py3.7/windows.txt index 61dac739a06..524e3bb6004 100644 --- a/requirements/static/ci/py3.7/windows.txt +++ b/requirements/static/ci/py3.7/windows.txt @@ -131,7 +131,7 @@ gitdb==4.0.7 # via # -c requirements/static/ci/../pkg/py3.7/windows.txt # gitpython -gitpython==3.1.37 +gitpython==3.1.41 # via # -c requirements/static/ci/../pkg/py3.7/windows.txt # -r requirements/static/ci/common.in diff --git a/requirements/static/ci/py3.8/cloud.txt b/requirements/static/ci/py3.8/cloud.txt index f59a3e2f790..bd2f56a51ae 100644 --- a/requirements/static/ci/py3.8/cloud.txt +++ b/requirements/static/ci/py3.8/cloud.txt @@ -204,7 +204,7 @@ gitdb==4.0.7 # via # -c requirements/static/ci/py3.8/linux.txt # gitpython -gitpython==3.1.37 +gitpython==3.1.41 # via # -c requirements/static/ci/py3.8/linux.txt # -r requirements/static/ci/common.in diff --git a/requirements/static/ci/py3.8/freebsd.txt b/requirements/static/ci/py3.8/freebsd.txt index 2a3d0f16127..5a6a75ffdce 100644 --- a/requirements/static/ci/py3.8/freebsd.txt +++ b/requirements/static/ci/py3.8/freebsd.txt @@ -138,7 +138,7 @@ geomet==0.2.1.post1 # via cassandra-driver gitdb==4.0.7 # via gitpython -gitpython==3.1.37 +gitpython==3.1.41 # via -r requirements/static/ci/common.in google-auth==2.1.0 # via kubernetes diff --git a/requirements/static/ci/py3.8/lint.txt b/requirements/static/ci/py3.8/lint.txt index 6308d0b3316..4e3325c003f 100644 --- a/requirements/static/ci/py3.8/lint.txt +++ b/requirements/static/ci/py3.8/lint.txt @@ -199,7 +199,7 @@ gitdb==4.0.7 # via # -c requirements/static/ci/py3.8/linux.txt # gitpython -gitpython==3.1.37 +gitpython==3.1.41 # via # -c requirements/static/ci/py3.8/linux.txt # -r requirements/static/ci/common.in diff --git a/requirements/static/ci/py3.8/linux.txt b/requirements/static/ci/py3.8/linux.txt index a22ae241e05..336483abcca 100644 --- a/requirements/static/ci/py3.8/linux.txt +++ b/requirements/static/ci/py3.8/linux.txt @@ -144,7 +144,7 @@ geomet==0.1.2 # via cassandra-driver gitdb==4.0.7 # via gitpython -gitpython==3.1.37 +gitpython==3.1.41 # via -r requirements/static/ci/common.in google-auth==2.1.0 # via kubernetes diff --git a/requirements/static/ci/py3.8/windows.txt b/requirements/static/ci/py3.8/windows.txt index 2b2fcdb70cc..98a62a78ab2 100644 --- a/requirements/static/ci/py3.8/windows.txt +++ b/requirements/static/ci/py3.8/windows.txt @@ -126,7 +126,7 @@ gitdb==4.0.7 # via # -c requirements/static/ci/../pkg/py3.8/windows.txt # gitpython -gitpython==3.1.37 +gitpython==3.1.41 # via # -c requirements/static/ci/../pkg/py3.8/windows.txt # -r requirements/static/ci/common.in diff --git a/requirements/static/ci/py3.9/cloud.txt b/requirements/static/ci/py3.9/cloud.txt index 8ece9fe0054..56dd04fffd6 100644 --- a/requirements/static/ci/py3.9/cloud.txt +++ b/requirements/static/ci/py3.9/cloud.txt @@ -204,7 +204,7 @@ gitdb==4.0.7 # via # -c requirements/static/ci/py3.9/linux.txt # gitpython -gitpython==3.1.37 +gitpython==3.1.41 # via # -c requirements/static/ci/py3.9/linux.txt # -r requirements/static/ci/common.in diff --git a/requirements/static/ci/py3.9/darwin.txt b/requirements/static/ci/py3.9/darwin.txt index 9cc480c4f8c..41537d36f65 100644 --- a/requirements/static/ci/py3.9/darwin.txt +++ b/requirements/static/ci/py3.9/darwin.txt @@ -142,7 +142,7 @@ gitdb==4.0.7 # via # -c requirements/static/ci/../pkg/py3.9/darwin.txt # gitpython -gitpython==3.1.37 +gitpython==3.1.41 # via # -c requirements/static/ci/../pkg/py3.9/darwin.txt # -r requirements/darwin.txt diff --git a/requirements/static/ci/py3.9/freebsd.txt b/requirements/static/ci/py3.9/freebsd.txt index ef689569923..cfe46ff8e36 100644 --- a/requirements/static/ci/py3.9/freebsd.txt +++ b/requirements/static/ci/py3.9/freebsd.txt @@ -138,7 +138,7 @@ geomet==0.2.1.post1 # via cassandra-driver gitdb==4.0.7 # via gitpython -gitpython==3.1.37 +gitpython==3.1.41 # via -r requirements/static/ci/common.in google-auth==2.1.0 # via kubernetes diff --git a/requirements/static/ci/py3.9/lint.txt b/requirements/static/ci/py3.9/lint.txt index cab4f4d19c5..fde2f7a7ed3 100644 --- a/requirements/static/ci/py3.9/lint.txt +++ b/requirements/static/ci/py3.9/lint.txt @@ -195,7 +195,7 @@ gitdb==4.0.7 # via # -c requirements/static/ci/py3.9/linux.txt # gitpython -gitpython==3.1.37 +gitpython==3.1.41 # via # -c requirements/static/ci/py3.9/linux.txt # -r requirements/static/ci/common.in diff --git a/requirements/static/ci/py3.9/linux.txt b/requirements/static/ci/py3.9/linux.txt index 8515f3facd2..828ba3d2a3c 100644 --- a/requirements/static/ci/py3.9/linux.txt +++ b/requirements/static/ci/py3.9/linux.txt @@ -142,7 +142,7 @@ geomet==0.1.2 # via cassandra-driver gitdb==4.0.7 # via gitpython -gitpython==3.1.37 +gitpython==3.1.41 # via -r requirements/static/ci/common.in google-auth==2.1.0 # via kubernetes diff --git a/requirements/static/ci/py3.9/windows.txt b/requirements/static/ci/py3.9/windows.txt index 745620465a1..10e9c8d4186 100644 --- a/requirements/static/ci/py3.9/windows.txt +++ b/requirements/static/ci/py3.9/windows.txt @@ -126,7 +126,7 @@ gitdb==4.0.7 # via # -c requirements/static/ci/../pkg/py3.9/windows.txt # gitpython -gitpython==3.1.37 +gitpython==3.1.41 # via # -c requirements/static/ci/../pkg/py3.9/windows.txt # -r requirements/static/ci/common.in diff --git a/requirements/static/pkg/py3.10/darwin.txt b/requirements/static/pkg/py3.10/darwin.txt index 66f477a3679..dd640bb81f8 100644 --- a/requirements/static/pkg/py3.10/darwin.txt +++ b/requirements/static/pkg/py3.10/darwin.txt @@ -26,7 +26,7 @@ distro==1.5.0 # via -r requirements/base.txt gitdb==4.0.7 # via gitpython -gitpython==3.1.37 +gitpython==3.1.41 # via -r requirements/darwin.txt idna==3.2 # via diff --git a/requirements/static/pkg/py3.10/windows.txt b/requirements/static/pkg/py3.10/windows.txt index 57bee54a0a2..1c1fc3b0213 100644 --- a/requirements/static/pkg/py3.10/windows.txt +++ b/requirements/static/pkg/py3.10/windows.txt @@ -31,7 +31,7 @@ distro==1.5.0 # via -r requirements/base.txt gitdb==4.0.7 # via gitpython -gitpython==3.1.37 +gitpython==3.1.41 # via -r requirements/windows.txt idna==3.2 # via requests diff --git a/requirements/static/pkg/py3.11/darwin.txt b/requirements/static/pkg/py3.11/darwin.txt index f58c1b44ca1..3ae9fd7999d 100644 --- a/requirements/static/pkg/py3.11/darwin.txt +++ b/requirements/static/pkg/py3.11/darwin.txt @@ -26,7 +26,7 @@ distro==1.5.0 # via -r requirements/base.txt gitdb==4.0.7 # via gitpython -gitpython==3.1.37 +gitpython==3.1.41 # via -r requirements/darwin.txt idna==3.2 # via diff --git a/requirements/static/pkg/py3.11/windows.txt b/requirements/static/pkg/py3.11/windows.txt index 3fba20fec85..b5cd26dce0c 100644 --- a/requirements/static/pkg/py3.11/windows.txt +++ b/requirements/static/pkg/py3.11/windows.txt @@ -31,7 +31,7 @@ distro==1.5.0 # via -r requirements/base.txt gitdb==4.0.7 # via gitpython -gitpython==3.1.37 +gitpython==3.1.41 # via -r requirements/windows.txt idna==3.2 # via requests diff --git a/requirements/static/pkg/py3.12/darwin.txt b/requirements/static/pkg/py3.12/darwin.txt index 25bd463624b..7bbf467c7ef 100644 --- a/requirements/static/pkg/py3.12/darwin.txt +++ b/requirements/static/pkg/py3.12/darwin.txt @@ -26,7 +26,7 @@ distro==1.5.0 # via -r requirements/base.txt gitdb==4.0.7 # via gitpython -gitpython==3.1.37 +gitpython==3.1.41 # via -r requirements/darwin.txt idna==3.2 # via diff --git a/requirements/static/pkg/py3.12/windows.txt b/requirements/static/pkg/py3.12/windows.txt index 0b605d4b3b2..61b24ec3303 100644 --- a/requirements/static/pkg/py3.12/windows.txt +++ b/requirements/static/pkg/py3.12/windows.txt @@ -31,7 +31,7 @@ distro==1.5.0 # via -r requirements/base.txt gitdb==4.0.7 # via gitpython -gitpython==3.1.37 +gitpython==3.1.41 # via -r requirements/windows.txt idna==3.2 # via requests diff --git a/requirements/static/pkg/py3.7/windows.txt b/requirements/static/pkg/py3.7/windows.txt index a7c722f36c7..e202d18f9e9 100644 --- a/requirements/static/pkg/py3.7/windows.txt +++ b/requirements/static/pkg/py3.7/windows.txt @@ -31,7 +31,7 @@ distro==1.5.0 # via -r requirements/base.txt gitdb==4.0.7 # via gitpython -gitpython==3.1.37 +gitpython==3.1.41 # via -r requirements/windows.txt idna==3.2 # via requests diff --git a/requirements/static/pkg/py3.8/windows.txt b/requirements/static/pkg/py3.8/windows.txt index f7b838bca8c..5ad09a3ade0 100644 --- a/requirements/static/pkg/py3.8/windows.txt +++ b/requirements/static/pkg/py3.8/windows.txt @@ -31,7 +31,7 @@ distro==1.5.0 # via -r requirements/base.txt gitdb==4.0.7 # via gitpython -gitpython==3.1.37 +gitpython==3.1.41 # via -r requirements/windows.txt idna==3.2 # via requests diff --git a/requirements/static/pkg/py3.9/darwin.txt b/requirements/static/pkg/py3.9/darwin.txt index 832976429bc..19ad95b667f 100644 --- a/requirements/static/pkg/py3.9/darwin.txt +++ b/requirements/static/pkg/py3.9/darwin.txt @@ -26,7 +26,7 @@ distro==1.5.0 # via -r requirements/base.txt gitdb==4.0.7 # via gitpython -gitpython==3.1.37 +gitpython==3.1.41 # via -r requirements/darwin.txt idna==3.2 # via diff --git a/requirements/static/pkg/py3.9/windows.txt b/requirements/static/pkg/py3.9/windows.txt index 32ec5dd7db9..7f4c7f13bd2 100644 --- a/requirements/static/pkg/py3.9/windows.txt +++ b/requirements/static/pkg/py3.9/windows.txt @@ -31,7 +31,7 @@ distro==1.5.0 # via -r requirements/base.txt gitdb==4.0.7 # via gitpython -gitpython==3.1.37 +gitpython==3.1.41 # via -r requirements/windows.txt idna==3.2 # via requests From 6d5958d9e51bf9c0ba3d7099882f295c2f0b11b9 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Fri, 12 Jan 2024 20:38:06 +0000 Subject: [PATCH 083/146] Migrate some crypt tests to pytest Signed-off-by: Pedro Algarvio --- tests/pytests/unit/crypt/__init__.py | 58 ++++++ tests/pytests/unit/{ => crypt}/test_crypt.py | 0 .../unit/crypt/test_crypt_cryptodome.py | 108 +++++++++++ .../pytests/unit/crypt/test_crypt_m2crypto.py | 98 ++++++++++ tests/unit/test_crypt.py | 182 +----------------- 5 files changed, 266 insertions(+), 180 deletions(-) create mode 100644 tests/pytests/unit/crypt/__init__.py rename tests/pytests/unit/{ => crypt}/test_crypt.py (100%) create mode 100644 tests/pytests/unit/crypt/test_crypt_cryptodome.py create mode 100644 tests/pytests/unit/crypt/test_crypt_m2crypto.py diff --git a/tests/pytests/unit/crypt/__init__.py b/tests/pytests/unit/crypt/__init__.py new file mode 100644 index 00000000000..d8427ce59ac --- /dev/null +++ b/tests/pytests/unit/crypt/__init__.py @@ -0,0 +1,58 @@ +PRIVKEY_DATA = ( + "-----BEGIN RSA PRIVATE KEY-----\n" + "MIIEpAIBAAKCAQEA75GR6ZTv5JOv90Vq8tKhKC7YQnhDIo2hM0HVziTEk5R4UQBW\n" + "a0CKytFMbTONY2msEDwX9iA0x7F5Lgj0X8eD4ZMsYqLzqjWMekLC8bjhxc+EuPo9\n" + "Dygu3mJ2VgRC7XhlFpmdo5NN8J2E7B/CNB3R4hOcMMZNZdi0xLtFoTfwU61UPfFX\n" + "14mV2laqLbvDEfQLJhUTDeFFV8EN5Z4H1ttLP3sMXJvc3EvM0JiDVj4l1TWFUHHz\n" + "eFgCA1Im0lv8i7PFrgW7nyMfK9uDSsUmIp7k6ai4tVzwkTmV5PsriP1ju88Lo3MB\n" + "4/sUmDv/JmlZ9YyzTO3Po8Uz3Aeq9HJWyBWHAQIDAQABAoIBAGOzBzBYZUWRGOgl\n" + "IY8QjTT12dY/ymC05GM6gMobjxuD7FZ5d32HDLu/QrknfS3kKlFPUQGDAbQhbbb0\n" + "zw6VL5NO9mfOPO2W/3FaG1sRgBQcerWonoSSSn8OJwVBHMFLG3a+U1Zh1UvPoiPK\n" + "S734swIM+zFpNYivGPvOm/muF/waFf8tF/47t1cwt/JGXYQnkG/P7z0vp47Irpsb\n" + "Yjw7vPe4BnbY6SppSxscW3KoV7GtJLFKIxAXbxsuJMF/rYe3O3w2VKJ1Sug1VDJl\n" + "/GytwAkSUer84WwP2b07Wn4c5pCnmLslMgXCLkENgi1NnJMhYVOnckxGDZk54hqP\n" + "9RbLnkkCgYEA/yKuWEvgdzYRYkqpzB0l9ka7Y00CV4Dha9Of6GjQi9i4VCJ/UFVr\n" + "UlhTo5y0ZzpcDAPcoZf5CFZsD90a/BpQ3YTtdln2MMCL/Kr3QFmetkmDrt+3wYnX\n" + "sKESfsa2nZdOATRpl1antpwyD4RzsAeOPwBiACj4fkq5iZJBSI0bxrMCgYEA8GFi\n" + "qAjgKh81/Uai6KWTOW2kX02LEMVRrnZLQ9VPPLGid4KZDDk1/dEfxjjkcyOxX1Ux\n" + "Klu4W8ZEdZyzPcJrfk7PdopfGOfrhWzkREK9C40H7ou/1jUecq/STPfSOmxh3Y+D\n" + "ifMNO6z4sQAHx8VaHaxVsJ7SGR/spr0pkZL+NXsCgYEA84rIgBKWB1W+TGRXJzdf\n" + "yHIGaCjXpm2pQMN3LmP3RrcuZWm0vBt94dHcrR5l+u/zc6iwEDTAjJvqdU4rdyEr\n" + "tfkwr7v6TNlQB3WvpWanIPyVzfVSNFX/ZWSsAgZvxYjr9ixw6vzWBXOeOb/Gqu7b\n" + "cvpLkjmJ0wxDhbXtyXKhZA8CgYBZyvcQb+hUs732M4mtQBSD0kohc5TsGdlOQ1AQ\n" + "McFcmbpnzDghkclyW8jzwdLMk9uxEeDAwuxWE/UEvhlSi6qdzxC+Zifp5NBc0fVe\n" + "7lMx2mfJGxj5CnSqQLVdHQHB4zSXkAGB6XHbBd0MOUeuvzDPfs2voVQ4IG3FR0oc\n" + "3/znuwKBgQChZGH3McQcxmLA28aUwOVbWssfXKdDCsiJO+PEXXlL0maO3SbnFn+Q\n" + "Tyf8oHI5cdP7AbwDSx9bUfRPjg9dKKmATBFr2bn216pjGxK0OjYOCntFTVr0psRB\n" + "CrKg52Qrq71/2l4V2NLQZU40Dr1bN9V+Ftd9L0pvpCAEAWpIbLXGDw==\n" + "-----END RSA PRIVATE KEY-----" +) + +PUBKEY_DATA = ( + "-----BEGIN PUBLIC KEY-----\n" + "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA75GR6ZTv5JOv90Vq8tKh\n" + "KC7YQnhDIo2hM0HVziTEk5R4UQBWa0CKytFMbTONY2msEDwX9iA0x7F5Lgj0X8eD\n" + "4ZMsYqLzqjWMekLC8bjhxc+EuPo9Dygu3mJ2VgRC7XhlFpmdo5NN8J2E7B/CNB3R\n" + "4hOcMMZNZdi0xLtFoTfwU61UPfFX14mV2laqLbvDEfQLJhUTDeFFV8EN5Z4H1ttL\n" + "P3sMXJvc3EvM0JiDVj4l1TWFUHHzeFgCA1Im0lv8i7PFrgW7nyMfK9uDSsUmIp7k\n" + "6ai4tVzwkTmV5PsriP1ju88Lo3MB4/sUmDv/JmlZ9YyzTO3Po8Uz3Aeq9HJWyBWH\n" + "AQIDAQAB\n" + "-----END PUBLIC KEY-----" +) + +MSG = b"It's me, Mario" + +SIG = ( + b"\x07\xf3\xb1\xe7\xdb\x06\xf4_\xe2\xdc\xcb!F\xfb\xbex{W\x1d\xe4E" + b"\xd3\r\xc5\x90\xca(\x05\x1d\x99\x8b\x1aug\x9f\x95>\x94\x7f\xe3+" + b"\x12\xfa\x9c\xd4\xb8\x02]\x0e\xa5\xa3LL\xc3\xa2\x8f+\x83Z\x1b\x17" + b'\xbfT\xd3\xc7\xfd\x0b\xf4\xd7J\xfe^\x86q"I\xa3x\xbc\xd3$\xe9M<\xe1' + b"\x07\xad\xf2_\x9f\xfa\xf7g(~\xd8\xf5\xe7\xda-\xa3Ko\xfc.\x99\xcf" + b"\x9b\xb9\xc1U\x97\x82'\xcb\xc6\x08\xaa\xa0\xe4\xd0\xc1+\xfc\x86" + b'\r\xe4y\xb1#\xd3\x1dS\x96D28\xc4\xd5\r\xd4\x98\x1a44"\xd7\xc2\xb4' + b"]\xa7\x0f\xa7Db\x85G\x8c\xd6\x94!\x8af1O\xf6g\xd7\x03\xfd\xb3\xbc" + b"\xce\x9f\xe7\x015\xb8\x1d]AHK\xa0\x14m\xda=O\xa7\xde\xf2\xff\x9b" + b"\x8e\x83\xc8j\x11\x1a\x98\x85\xde\xc5\x91\x07\x84!\x12^4\xcb\xa8" + b"\x98\x8a\x8a&#\xb9(#?\x80\x15\x9eW\xb5\x12\xd1\x95S\xf2\xc3A\xed\x86x~\xcfU\xd5Q\xfe~\x10\xd2\x9b" +) diff --git a/tests/pytests/unit/test_crypt.py b/tests/pytests/unit/crypt/test_crypt.py similarity index 100% rename from tests/pytests/unit/test_crypt.py rename to tests/pytests/unit/crypt/test_crypt.py diff --git a/tests/pytests/unit/crypt/test_crypt_cryptodome.py b/tests/pytests/unit/crypt/test_crypt_cryptodome.py new file mode 100644 index 00000000000..357b302e3c6 --- /dev/null +++ b/tests/pytests/unit/crypt/test_crypt_cryptodome.py @@ -0,0 +1,108 @@ +import os + +import pytest + +import salt.crypt +from tests.support.mock import MagicMock, MockCall, mock_open, patch + +from . import MSG, PRIVKEY_DATA, PUBKEY_DATA, SIG + +try: + import M2Crypto # pylint: disable=unused-import + + HAS_M2 = True +except ImportError: + HAS_M2 = False +try: + from Cryptodome.PublicKey import RSA + + HAS_PYCRYPTO_RSA = True +except ImportError: + HAS_PYCRYPTO_RSA = False +if not HAS_PYCRYPTO_RSA: + try: + from Crypto.PublicKey import RSA # nosec + + HAS_PYCRYPTO_RSA = True + except ImportError: + HAS_PYCRYPTO_RSA = False + +pytestmark = [ + pytest.mark.skipif(not HAS_PYCRYPTO_RSA, reason="pycrypto >= 2.6 is not available"), + pytest.mark.skipif(HAS_M2, reason="m2crypto is used by salt.crypt if installed"), +] + + +@pytest.mark.slow_test +def test_gen_keys(): + open_priv_wb = MockCall("/keydir{}keyname.pem".format(os.sep), "wb+") + open_pub_wb = MockCall("/keydir{}keyname.pub".format(os.sep), "wb+") + + with patch.multiple( + os, + umask=MagicMock(), + chmod=MagicMock(), + access=MagicMock(return_value=True), + ): + with patch("salt.utils.files.fopen", mock_open()) as m_open, patch( + "os.path.isfile", return_value=True + ): + result = salt.crypt.gen_keys("/keydir", "keyname", 2048) + assert result == "/keydir{}keyname.pem".format(os.sep), result + assert open_priv_wb not in m_open.calls + assert open_pub_wb not in m_open.calls + + with patch("salt.utils.files.fopen", mock_open()) as m_open, patch( + "os.path.isfile", return_value=False + ): + salt.crypt.gen_keys("/keydir", "keyname", 2048) + assert open_priv_wb in m_open.calls + assert open_pub_wb in m_open.calls + + +@patch("os.umask", MagicMock()) +@patch("os.chmod", MagicMock()) +@patch("os.chown", MagicMock(), create=True) +@patch("os.access", MagicMock(return_value=True)) +@pytest.mark.slow_test +def test_gen_keys_with_passphrase(): + key_path = os.path.join(os.sep, "keydir") + open_priv_wb = MockCall(os.path.join(key_path, "keyname.pem"), "wb+") + open_pub_wb = MockCall(os.path.join(key_path, "keyname.pub"), "wb+") + + with patch("salt.utils.files.fopen", mock_open()) as m_open, patch( + "os.path.isfile", return_value=True + ): + assert salt.crypt.gen_keys( + key_path, "keyname", 2048, passphrase="password" + ) == os.path.join(key_path, "keyname.pem") + result = salt.crypt.gen_keys(key_path, "keyname", 2048, passphrase="password") + assert result == os.path.join(key_path, "keyname.pem"), result + assert open_priv_wb not in m_open.calls + assert open_pub_wb not in m_open.calls + + with patch("salt.utils.files.fopen", mock_open()) as m_open, patch( + "os.path.isfile", return_value=False + ): + salt.crypt.gen_keys(key_path, "keyname", 2048) + assert open_priv_wb in m_open.calls + assert open_pub_wb in m_open.calls + + +def test_sign_message(): + key = RSA.importKey(PRIVKEY_DATA) + with patch("salt.crypt.get_rsa_key", return_value=key): + assert SIG == salt.crypt.sign_message("/keydir/keyname.pem", MSG) + + +def test_sign_message_with_passphrase(): + key = RSA.importKey(PRIVKEY_DATA) + with patch("salt.crypt.get_rsa_key", return_value=key): + assert SIG == salt.crypt.sign_message( + "/keydir/keyname.pem", MSG, passphrase="password" + ) + + +def test_verify_signature(): + with patch("salt.utils.files.fopen", mock_open(read_data=PUBKEY_DATA)): + assert salt.crypt.verify_signature("/keydir/keyname.pub", MSG, SIG) diff --git a/tests/pytests/unit/crypt/test_crypt_m2crypto.py b/tests/pytests/unit/crypt/test_crypt_m2crypto.py new file mode 100644 index 00000000000..f06bbdbc9cc --- /dev/null +++ b/tests/pytests/unit/crypt/test_crypt_m2crypto.py @@ -0,0 +1,98 @@ +import os + +import pytest + +import salt.crypt +from tests.support.mock import MagicMock, mock_open, patch + +from . import MSG, PRIVKEY_DATA, PUBKEY_DATA, SIG + +M2Crypto = pytest.importorskip("M2Crypto") + + +@pytest.mark.slow_test +def test_gen_keys(): + with patch("os.umask", MagicMock()), patch("os.chmod", MagicMock()), patch( + "os.access", MagicMock(return_value=True) + ): + with patch("M2Crypto.RSA.RSA.save_pem", MagicMock()) as save_pem, patch( + "M2Crypto.RSA.RSA.save_pub_key", MagicMock() + ) as save_pub: + with patch("os.path.isfile", return_value=True): + assert salt.crypt.gen_keys( + "/keydir", "keyname", 2048 + ) == "/keydir{}keyname.pem".format(os.sep) + save_pem.assert_not_called() + save_pub.assert_not_called() + + with patch("os.path.isfile", return_value=False): + assert salt.crypt.gen_keys( + "/keydir", "keyname", 2048 + ) == "/keydir{}keyname.pem".format(os.sep) + save_pem.assert_called_once_with( + "/keydir{}keyname.pem".format(os.sep), cipher=None + ) + save_pub.assert_called_once_with("/keydir{}keyname.pub".format(os.sep)) + + +@pytest.mark.slow_test +def test_gen_keys_with_passphrase(): + with patch("os.umask", MagicMock()), patch("os.chmod", MagicMock()), patch( + "os.chown", MagicMock() + ), patch("os.access", MagicMock(return_value=True)): + with patch("M2Crypto.RSA.RSA.save_pem", MagicMock()) as save_pem, patch( + "M2Crypto.RSA.RSA.save_pub_key", MagicMock() + ) as save_pub: + with patch("os.path.isfile", return_value=True): + assert salt.crypt.gen_keys( + "/keydir", "keyname", 2048, passphrase="password" + ) == "/keydir{}keyname.pem".format(os.sep) + save_pem.assert_not_called() + save_pub.assert_not_called() + + with patch("os.path.isfile", return_value=False): + assert salt.crypt.gen_keys( + "/keydir", "keyname", 2048, passphrase="password" + ) == "/keydir{}keyname.pem".format(os.sep) + callback = save_pem.call_args[1]["callback"] + save_pem.assert_called_once_with( + "/keydir{}keyname.pem".format(os.sep), + cipher="des_ede3_cbc", + callback=callback, + ) + assert callback(None) == b"password" + save_pub.assert_called_once_with("/keydir{}keyname.pub".format(os.sep)) + + +def test_sign_message(): + key = M2Crypto.RSA.load_key_string(salt.utils.stringutils.to_bytes(PRIVKEY_DATA)) + with patch("salt.crypt.get_rsa_key", return_value=key): + assert SIG == salt.crypt.sign_message("/keydir/keyname.pem", MSG) + + +def test_sign_message_with_passphrase(): + key = M2Crypto.RSA.load_key_string(salt.utils.stringutils.to_bytes(PRIVKEY_DATA)) + with patch("salt.crypt.get_rsa_key", return_value=key): + assert SIG == salt.crypt.sign_message( + "/keydir/keyname.pem", MSG, passphrase="password" + ) + + +def test_verify_signature(): + with patch( + "salt.utils.files.fopen", + mock_open(read_data=salt.utils.stringutils.to_bytes(PUBKEY_DATA)), + ): + assert salt.crypt.verify_signature("/keydir/keyname.pub", MSG, SIG) + + +def test_encrypt_decrypt_bin(): + priv_key = M2Crypto.RSA.load_key_string( + salt.utils.stringutils.to_bytes(PRIVKEY_DATA) + ) + pub_key = M2Crypto.RSA.load_pub_key_bio( + M2Crypto.BIO.MemoryBuffer(salt.utils.stringutils.to_bytes(PUBKEY_DATA)) + ) + encrypted = salt.crypt.private_encrypt(priv_key, b"salt") + decrypted = salt.crypt.public_decrypt(pub_key, encrypted) + assert b"salt" == decrypted diff --git a/tests/unit/test_crypt.py b/tests/unit/test_crypt.py index f0c30a26da3..89ec83294b9 100644 --- a/tests/unit/test_crypt.py +++ b/tests/unit/test_crypt.py @@ -6,8 +6,7 @@ import pytest import salt.utils.files import salt.utils.stringutils -from salt import crypt -from tests.support.mock import MagicMock, MockCall, mock_open, patch +from tests.support.mock import mock_open, patch from tests.support.unit import TestCase try: @@ -17,7 +16,7 @@ try: except ImportError: HAS_M2 = False try: - from Cryptodome.PublicKey import RSA + from Cryptodome.PublicKey import RSA # pylint: disable=unused-import HAS_PYCRYPTO_RSA = True except ImportError: @@ -91,183 +90,6 @@ SIG = ( ) -@pytest.mark.skipif(not HAS_PYCRYPTO_RSA, reason="pycrypto >= 2.6 is not available") -@pytest.mark.skipif(HAS_M2, reason="m2crypto is used by salt.crypt if installed") -class CryptTestCase(TestCase): - @pytest.mark.slow_test - def test_gen_keys(self): - open_priv_wb = MockCall("/keydir{}keyname.pem".format(os.sep), "wb+") - open_pub_wb = MockCall("/keydir{}keyname.pub".format(os.sep), "wb+") - - with patch.multiple( - os, - umask=MagicMock(), - chmod=MagicMock(), - access=MagicMock(return_value=True), - ): - with patch("salt.utils.files.fopen", mock_open()) as m_open, patch( - "os.path.isfile", return_value=True - ): - result = crypt.gen_keys("/keydir", "keyname", 2048) - assert result == "/keydir{}keyname.pem".format(os.sep), result - assert open_priv_wb not in m_open.calls - assert open_pub_wb not in m_open.calls - - with patch("salt.utils.files.fopen", mock_open()) as m_open, patch( - "os.path.isfile", return_value=False - ): - crypt.gen_keys("/keydir", "keyname", 2048) - assert open_priv_wb in m_open.calls - assert open_pub_wb in m_open.calls - - @patch("os.umask", MagicMock()) - @patch("os.chmod", MagicMock()) - @patch("os.chown", MagicMock(), create=True) - @patch("os.access", MagicMock(return_value=True)) - @pytest.mark.slow_test - def test_gen_keys_with_passphrase(self): - key_path = os.path.join(os.sep, "keydir") - open_priv_wb = MockCall(os.path.join(key_path, "keyname.pem"), "wb+") - open_pub_wb = MockCall(os.path.join(key_path, "keyname.pub"), "wb+") - - with patch("salt.utils.files.fopen", mock_open()) as m_open, patch( - "os.path.isfile", return_value=True - ): - self.assertEqual( - crypt.gen_keys(key_path, "keyname", 2048, passphrase="password"), - os.path.join(key_path, "keyname.pem"), - ) - result = crypt.gen_keys(key_path, "keyname", 2048, passphrase="password") - assert result == os.path.join(key_path, "keyname.pem"), result - assert open_priv_wb not in m_open.calls - assert open_pub_wb not in m_open.calls - - with patch("salt.utils.files.fopen", mock_open()) as m_open, patch( - "os.path.isfile", return_value=False - ): - crypt.gen_keys(key_path, "keyname", 2048) - assert open_priv_wb in m_open.calls - assert open_pub_wb in m_open.calls - - def test_sign_message(self): - key = RSA.importKey(PRIVKEY_DATA) - with patch("salt.crypt.get_rsa_key", return_value=key): - self.assertEqual(SIG, salt.crypt.sign_message("/keydir/keyname.pem", MSG)) - - def test_sign_message_with_passphrase(self): - key = RSA.importKey(PRIVKEY_DATA) - with patch("salt.crypt.get_rsa_key", return_value=key): - self.assertEqual( - SIG, - crypt.sign_message("/keydir/keyname.pem", MSG, passphrase="password"), - ) - - def test_verify_signature(self): - with patch("salt.utils.files.fopen", mock_open(read_data=PUBKEY_DATA)): - self.assertTrue(crypt.verify_signature("/keydir/keyname.pub", MSG, SIG)) - - -@pytest.mark.skipif(not HAS_M2, reason="m2crypto is not available") -class M2CryptTestCase(TestCase): - @patch("os.umask", MagicMock()) - @patch("os.chmod", MagicMock()) - @patch("os.access", MagicMock(return_value=True)) - @pytest.mark.slow_test - def test_gen_keys(self): - with patch("M2Crypto.RSA.RSA.save_pem", MagicMock()) as save_pem: - with patch("M2Crypto.RSA.RSA.save_pub_key", MagicMock()) as save_pub: - with patch("os.path.isfile", return_value=True): - self.assertEqual( - crypt.gen_keys("/keydir", "keyname", 2048), - "/keydir{}keyname.pem".format(os.sep), - ) - save_pem.assert_not_called() - save_pub.assert_not_called() - - with patch("os.path.isfile", return_value=False): - self.assertEqual( - crypt.gen_keys("/keydir", "keyname", 2048), - "/keydir{}keyname.pem".format(os.sep), - ) - save_pem.assert_called_once_with( - "/keydir{}keyname.pem".format(os.sep), cipher=None - ) - save_pub.assert_called_once_with( - "/keydir{}keyname.pub".format(os.sep) - ) - - @patch("os.umask", MagicMock()) - @patch("os.chmod", MagicMock()) - @patch("os.chown", MagicMock()) - @patch("os.access", MagicMock(return_value=True)) - @pytest.mark.slow_test - def test_gen_keys_with_passphrase(self): - with patch("M2Crypto.RSA.RSA.save_pem", MagicMock()) as save_pem: - with patch("M2Crypto.RSA.RSA.save_pub_key", MagicMock()) as save_pub: - with patch("os.path.isfile", return_value=True): - self.assertEqual( - crypt.gen_keys( - "/keydir", "keyname", 2048, passphrase="password" - ), - "/keydir{}keyname.pem".format(os.sep), - ) - save_pem.assert_not_called() - save_pub.assert_not_called() - - with patch("os.path.isfile", return_value=False): - self.assertEqual( - crypt.gen_keys( - "/keydir", "keyname", 2048, passphrase="password" - ), - "/keydir{}keyname.pem".format(os.sep), - ) - callback = save_pem.call_args[1]["callback"] - save_pem.assert_called_once_with( - "/keydir{}keyname.pem".format(os.sep), - cipher="des_ede3_cbc", - callback=callback, - ) - self.assertEqual(callback(None), b"password") - save_pub.assert_called_once_with( - "/keydir{}keyname.pub".format(os.sep) - ) - - def test_sign_message(self): - key = M2Crypto.RSA.load_key_string( - salt.utils.stringutils.to_bytes(PRIVKEY_DATA) - ) - with patch("salt.crypt.get_rsa_key", return_value=key): - self.assertEqual(SIG, salt.crypt.sign_message("/keydir/keyname.pem", MSG)) - - def test_sign_message_with_passphrase(self): - key = M2Crypto.RSA.load_key_string( - salt.utils.stringutils.to_bytes(PRIVKEY_DATA) - ) - with patch("salt.crypt.get_rsa_key", return_value=key): - self.assertEqual( - SIG, - crypt.sign_message("/keydir/keyname.pem", MSG, passphrase="password"), - ) - - def test_verify_signature(self): - with patch( - "salt.utils.files.fopen", - mock_open(read_data=salt.utils.stringutils.to_bytes(PUBKEY_DATA)), - ): - self.assertTrue(crypt.verify_signature("/keydir/keyname.pub", MSG, SIG)) - - def test_encrypt_decrypt_bin(self): - priv_key = M2Crypto.RSA.load_key_string( - salt.utils.stringutils.to_bytes(PRIVKEY_DATA) - ) - pub_key = M2Crypto.RSA.load_pub_key_bio( - M2Crypto.BIO.MemoryBuffer(salt.utils.stringutils.to_bytes(PUBKEY_DATA)) - ) - encrypted = salt.crypt.private_encrypt(priv_key, b"salt") - decrypted = salt.crypt.public_decrypt(pub_key, encrypted) - self.assertEqual(b"salt", decrypted) - - class TestBadCryptodomePubKey(TestCase): """ Test that we can load public keys exported by pycrpytodome<=3.4.6 From 3921ca9c084c0b013325c33f4d2d267e00d159a6 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Tue, 16 Jan 2024 12:52:19 +0000 Subject: [PATCH 084/146] Bump to `jinja2==3.1.3` due to https://github.com/advisories/GHSA-h5c8-rqwp-cp95 Signed-off-by: Pedro Algarvio --- requirements/static/ci/py3.10/changelog.txt | 2 +- requirements/static/ci/py3.10/cloud.txt | 2 +- requirements/static/ci/py3.10/darwin.txt | 2 +- requirements/static/ci/py3.10/docs.txt | 2 +- requirements/static/ci/py3.10/freebsd.txt | 2 +- requirements/static/ci/py3.10/lint.txt | 2 +- requirements/static/ci/py3.10/linux.txt | 2 +- requirements/static/ci/py3.10/tools.txt | 2 +- requirements/static/ci/py3.10/windows.txt | 2 +- requirements/static/ci/py3.11/changelog.txt | 2 +- requirements/static/ci/py3.11/cloud.txt | 2 +- requirements/static/ci/py3.11/darwin.txt | 2 +- requirements/static/ci/py3.11/docs.txt | 2 +- requirements/static/ci/py3.11/freebsd.txt | 2 +- requirements/static/ci/py3.11/lint.txt | 2 +- requirements/static/ci/py3.11/linux.txt | 2 +- requirements/static/ci/py3.11/tools.txt | 2 +- requirements/static/ci/py3.11/windows.txt | 2 +- requirements/static/ci/py3.12/changelog.txt | 2 +- requirements/static/ci/py3.12/cloud.txt | 2 +- requirements/static/ci/py3.12/darwin.txt | 2 +- requirements/static/ci/py3.12/docs.txt | 2 +- requirements/static/ci/py3.12/freebsd.txt | 2 +- requirements/static/ci/py3.12/lint.txt | 2 +- requirements/static/ci/py3.12/linux.txt | 2 +- requirements/static/ci/py3.12/tools.txt | 2 +- requirements/static/ci/py3.12/windows.txt | 2 +- requirements/static/ci/py3.7/cloud.txt | 2 +- requirements/static/ci/py3.7/docs.txt | 2 +- requirements/static/ci/py3.7/freebsd.txt | 2 +- requirements/static/ci/py3.7/lint.txt | 2 +- requirements/static/ci/py3.7/linux.txt | 2 +- requirements/static/ci/py3.7/windows.txt | 2 +- requirements/static/ci/py3.8/changelog.txt | 2 +- requirements/static/ci/py3.8/cloud.txt | 2 +- requirements/static/ci/py3.8/docs.txt | 2 +- requirements/static/ci/py3.8/freebsd.txt | 2 +- requirements/static/ci/py3.8/lint.txt | 2 +- requirements/static/ci/py3.8/linux.txt | 2 +- requirements/static/ci/py3.8/windows.txt | 2 +- requirements/static/ci/py3.9/changelog.txt | 2 +- requirements/static/ci/py3.9/cloud.txt | 2 +- requirements/static/ci/py3.9/darwin.txt | 2 +- requirements/static/ci/py3.9/docs.txt | 2 +- requirements/static/ci/py3.9/freebsd.txt | 2 +- requirements/static/ci/py3.9/lint.txt | 2 +- requirements/static/ci/py3.9/linux.txt | 2 +- requirements/static/ci/py3.9/tools.txt | 2 +- requirements/static/ci/py3.9/windows.txt | 2 +- requirements/static/pkg/py3.10/darwin.txt | 2 +- requirements/static/pkg/py3.10/freebsd.txt | 2 +- requirements/static/pkg/py3.10/linux.txt | 2 +- requirements/static/pkg/py3.10/windows.txt | 2 +- requirements/static/pkg/py3.11/darwin.txt | 2 +- requirements/static/pkg/py3.11/freebsd.txt | 2 +- requirements/static/pkg/py3.11/linux.txt | 2 +- requirements/static/pkg/py3.11/windows.txt | 2 +- requirements/static/pkg/py3.12/darwin.txt | 2 +- requirements/static/pkg/py3.12/freebsd.txt | 2 +- requirements/static/pkg/py3.12/linux.txt | 2 +- requirements/static/pkg/py3.12/windows.txt | 2 +- requirements/static/pkg/py3.7/freebsd.txt | 2 +- requirements/static/pkg/py3.7/linux.txt | 2 +- requirements/static/pkg/py3.7/windows.txt | 2 +- requirements/static/pkg/py3.8/freebsd.txt | 2 +- requirements/static/pkg/py3.8/linux.txt | 2 +- requirements/static/pkg/py3.8/windows.txt | 2 +- requirements/static/pkg/py3.9/darwin.txt | 2 +- requirements/static/pkg/py3.9/freebsd.txt | 2 +- requirements/static/pkg/py3.9/linux.txt | 2 +- requirements/static/pkg/py3.9/windows.txt | 2 +- 71 files changed, 71 insertions(+), 71 deletions(-) diff --git a/requirements/static/ci/py3.10/changelog.txt b/requirements/static/ci/py3.10/changelog.txt index 00114bce949..901e8a069db 100644 --- a/requirements/static/ci/py3.10/changelog.txt +++ b/requirements/static/ci/py3.10/changelog.txt @@ -13,7 +13,7 @@ click==7.1.1 # towncrier incremental==17.5.0 # via towncrier -jinja2==3.1.2 +jinja2==3.1.3 # via # -c requirements/static/ci/py3.10/linux.txt # towncrier diff --git a/requirements/static/ci/py3.10/cloud.txt b/requirements/static/ci/py3.10/cloud.txt index 63ca39daf93..85e3fe4ddbc 100644 --- a/requirements/static/ci/py3.10/cloud.txt +++ b/requirements/static/ci/py3.10/cloud.txt @@ -244,7 +244,7 @@ jaraco.text==3.5.1 # -c requirements/static/ci/../pkg/py3.10/linux.txt # -c requirements/static/ci/py3.10/linux.txt # jaraco.collections -jinja2==3.1.2 +jinja2==3.1.3 # via # -c requirements/static/ci/../pkg/py3.10/linux.txt # -c requirements/static/ci/py3.10/linux.txt diff --git a/requirements/static/ci/py3.10/darwin.txt b/requirements/static/ci/py3.10/darwin.txt index 70a17a44670..b3036d59df8 100644 --- a/requirements/static/ci/py3.10/darwin.txt +++ b/requirements/static/ci/py3.10/darwin.txt @@ -178,7 +178,7 @@ jaraco.text==3.5.1 # via # -c requirements/static/ci/../pkg/py3.10/darwin.txt # jaraco.collections -jinja2==3.1.2 +jinja2==3.1.3 # via # -c requirements/static/ci/../pkg/py3.10/darwin.txt # -r requirements/base.txt diff --git a/requirements/static/ci/py3.10/docs.txt b/requirements/static/ci/py3.10/docs.txt index 2601631ebd5..7574bc61153 100644 --- a/requirements/static/ci/py3.10/docs.txt +++ b/requirements/static/ci/py3.10/docs.txt @@ -62,7 +62,7 @@ jaraco.text==3.5.1 # via # -c requirements/static/ci/py3.10/linux.txt # jaraco.collections -jinja2==3.1.2 +jinja2==3.1.3 # via # -c requirements/static/ci/py3.10/linux.txt # -r requirements/base.txt diff --git a/requirements/static/ci/py3.10/freebsd.txt b/requirements/static/ci/py3.10/freebsd.txt index e8671ea0ff1..020c81c1ec9 100644 --- a/requirements/static/ci/py3.10/freebsd.txt +++ b/requirements/static/ci/py3.10/freebsd.txt @@ -170,7 +170,7 @@ jaraco.text==3.5.1 # via # -c requirements/static/ci/../pkg/py3.10/freebsd.txt # jaraco.collections -jinja2==3.1.2 +jinja2==3.1.3 # via # -c requirements/static/ci/../pkg/py3.10/freebsd.txt # -r requirements/base.txt diff --git a/requirements/static/ci/py3.10/lint.txt b/requirements/static/ci/py3.10/lint.txt index d5f56308fd8..064d7b30026 100644 --- a/requirements/static/ci/py3.10/lint.txt +++ b/requirements/static/ci/py3.10/lint.txt @@ -246,7 +246,7 @@ jaraco.text==3.5.1 # -c requirements/static/ci/../pkg/py3.10/linux.txt # -c requirements/static/ci/py3.10/linux.txt # jaraco.collections -jinja2==3.1.2 +jinja2==3.1.3 # via # -c requirements/static/ci/../pkg/py3.10/linux.txt # -c requirements/static/ci/py3.10/linux.txt diff --git a/requirements/static/ci/py3.10/linux.txt b/requirements/static/ci/py3.10/linux.txt index c76afd57330..4c4e64ba3aa 100644 --- a/requirements/static/ci/py3.10/linux.txt +++ b/requirements/static/ci/py3.10/linux.txt @@ -179,7 +179,7 @@ jaraco.text==3.5.1 # via # -c requirements/static/ci/../pkg/py3.10/linux.txt # jaraco.collections -jinja2==3.1.2 +jinja2==3.1.3 # via # -c requirements/static/ci/../pkg/py3.10/linux.txt # -r requirements/base.txt diff --git a/requirements/static/ci/py3.10/tools.txt b/requirements/static/ci/py3.10/tools.txt index e390aabbffd..d3b6eb23735 100644 --- a/requirements/static/ci/py3.10/tools.txt +++ b/requirements/static/ci/py3.10/tools.txt @@ -20,7 +20,7 @@ charset-normalizer==3.2.0 # via requests idna==3.2 # via requests -jinja2==3.1.2 +jinja2==3.1.3 # via -r requirements/static/ci/tools.in jmespath==1.0.1 # via diff --git a/requirements/static/ci/py3.10/windows.txt b/requirements/static/ci/py3.10/windows.txt index df75c0aea51..b906453ba0f 100644 --- a/requirements/static/ci/py3.10/windows.txt +++ b/requirements/static/ci/py3.10/windows.txt @@ -171,7 +171,7 @@ jaraco.text==3.5.0 # via # -c requirements/static/ci/../pkg/py3.10/windows.txt # jaraco.collections -jinja2==3.1.2 +jinja2==3.1.3 # via # -c requirements/static/ci/../pkg/py3.10/windows.txt # -r requirements/base.txt diff --git a/requirements/static/ci/py3.11/changelog.txt b/requirements/static/ci/py3.11/changelog.txt index 2aa97aa5da2..e6589faff9a 100644 --- a/requirements/static/ci/py3.11/changelog.txt +++ b/requirements/static/ci/py3.11/changelog.txt @@ -13,7 +13,7 @@ click==7.1.1 # towncrier incremental==17.5.0 # via towncrier -jinja2==3.1.2 +jinja2==3.1.3 # via # -c requirements/static/ci/py3.11/linux.txt # towncrier diff --git a/requirements/static/ci/py3.11/cloud.txt b/requirements/static/ci/py3.11/cloud.txt index 376f5b8599e..493cc5c1101 100644 --- a/requirements/static/ci/py3.11/cloud.txt +++ b/requirements/static/ci/py3.11/cloud.txt @@ -236,7 +236,7 @@ jaraco.text==3.5.1 # -c requirements/static/ci/../pkg/py3.11/linux.txt # -c requirements/static/ci/py3.11/linux.txt # jaraco.collections -jinja2==3.1.2 +jinja2==3.1.3 # via # -c requirements/static/ci/../pkg/py3.11/linux.txt # -c requirements/static/ci/py3.11/linux.txt diff --git a/requirements/static/ci/py3.11/darwin.txt b/requirements/static/ci/py3.11/darwin.txt index 7a83a23e544..bb87e0b67a3 100644 --- a/requirements/static/ci/py3.11/darwin.txt +++ b/requirements/static/ci/py3.11/darwin.txt @@ -171,7 +171,7 @@ jaraco.text==3.5.1 # via # -c requirements/static/ci/../pkg/py3.11/darwin.txt # jaraco.collections -jinja2==3.1.2 +jinja2==3.1.3 # via # -c requirements/static/ci/../pkg/py3.11/darwin.txt # -r requirements/base.txt diff --git a/requirements/static/ci/py3.11/docs.txt b/requirements/static/ci/py3.11/docs.txt index 8349e865ddb..bdaf9afb140 100644 --- a/requirements/static/ci/py3.11/docs.txt +++ b/requirements/static/ci/py3.11/docs.txt @@ -62,7 +62,7 @@ jaraco.text==3.5.1 # via # -c requirements/static/ci/py3.11/linux.txt # jaraco.collections -jinja2==3.1.2 +jinja2==3.1.3 # via # -c requirements/static/ci/py3.11/linux.txt # -r requirements/base.txt diff --git a/requirements/static/ci/py3.11/freebsd.txt b/requirements/static/ci/py3.11/freebsd.txt index 1693be3ea9e..35dffdcbdd5 100644 --- a/requirements/static/ci/py3.11/freebsd.txt +++ b/requirements/static/ci/py3.11/freebsd.txt @@ -166,7 +166,7 @@ jaraco.text==3.5.1 # via # -c requirements/static/ci/../pkg/py3.11/freebsd.txt # jaraco.collections -jinja2==3.1.2 +jinja2==3.1.3 # via # -c requirements/static/ci/../pkg/py3.11/freebsd.txt # -r requirements/base.txt diff --git a/requirements/static/ci/py3.11/lint.txt b/requirements/static/ci/py3.11/lint.txt index 707e9c65cbf..56908697dd8 100644 --- a/requirements/static/ci/py3.11/lint.txt +++ b/requirements/static/ci/py3.11/lint.txt @@ -242,7 +242,7 @@ jaraco.text==3.5.1 # -c requirements/static/ci/../pkg/py3.11/linux.txt # -c requirements/static/ci/py3.11/linux.txt # jaraco.collections -jinja2==3.1.2 +jinja2==3.1.3 # via # -c requirements/static/ci/../pkg/py3.11/linux.txt # -c requirements/static/ci/py3.11/linux.txt diff --git a/requirements/static/ci/py3.11/linux.txt b/requirements/static/ci/py3.11/linux.txt index 5ed64f7e8be..8f7777ff140 100644 --- a/requirements/static/ci/py3.11/linux.txt +++ b/requirements/static/ci/py3.11/linux.txt @@ -175,7 +175,7 @@ jaraco.text==3.5.1 # via # -c requirements/static/ci/../pkg/py3.11/linux.txt # jaraco.collections -jinja2==3.1.2 +jinja2==3.1.3 # via # -c requirements/static/ci/../pkg/py3.11/linux.txt # -r requirements/base.txt diff --git a/requirements/static/ci/py3.11/tools.txt b/requirements/static/ci/py3.11/tools.txt index acc8dbef504..adcf0b938b8 100644 --- a/requirements/static/ci/py3.11/tools.txt +++ b/requirements/static/ci/py3.11/tools.txt @@ -22,7 +22,7 @@ commonmark==0.9.1 # via rich idna==3.2 # via requests -jinja2==3.1.2 +jinja2==3.1.3 # via -r requirements/static/ci/tools.in jmespath==1.0.1 # via diff --git a/requirements/static/ci/py3.11/windows.txt b/requirements/static/ci/py3.11/windows.txt index cff5732a268..f71249ea76f 100644 --- a/requirements/static/ci/py3.11/windows.txt +++ b/requirements/static/ci/py3.11/windows.txt @@ -167,7 +167,7 @@ jaraco.text==3.5.0 # via # -c requirements/static/ci/../pkg/py3.11/windows.txt # jaraco.collections -jinja2==3.1.2 +jinja2==3.1.3 # via # -c requirements/static/ci/../pkg/py3.11/windows.txt # -r requirements/base.txt diff --git a/requirements/static/ci/py3.12/changelog.txt b/requirements/static/ci/py3.12/changelog.txt index 6a252d0cd70..af7f4286875 100644 --- a/requirements/static/ci/py3.12/changelog.txt +++ b/requirements/static/ci/py3.12/changelog.txt @@ -13,7 +13,7 @@ click==7.1.1 # towncrier incremental==17.5.0 # via towncrier -jinja2==3.1.2 +jinja2==3.1.3 # via # -c requirements/static/ci/py3.12/linux.txt # towncrier diff --git a/requirements/static/ci/py3.12/cloud.txt b/requirements/static/ci/py3.12/cloud.txt index a8659b089fa..e2f024f4f3c 100644 --- a/requirements/static/ci/py3.12/cloud.txt +++ b/requirements/static/ci/py3.12/cloud.txt @@ -236,7 +236,7 @@ jaraco.text==3.5.1 # -c requirements/static/ci/../pkg/py3.12/linux.txt # -c requirements/static/ci/py3.12/linux.txt # jaraco.collections -jinja2==3.1.2 +jinja2==3.1.3 # via # -c requirements/static/ci/../pkg/py3.12/linux.txt # -c requirements/static/ci/py3.12/linux.txt diff --git a/requirements/static/ci/py3.12/darwin.txt b/requirements/static/ci/py3.12/darwin.txt index cc0a64a764e..2ec42d204e3 100644 --- a/requirements/static/ci/py3.12/darwin.txt +++ b/requirements/static/ci/py3.12/darwin.txt @@ -171,7 +171,7 @@ jaraco.text==3.5.1 # via # -c requirements/static/ci/../pkg/py3.12/darwin.txt # jaraco.collections -jinja2==3.1.2 +jinja2==3.1.3 # via # -c requirements/static/ci/../pkg/py3.12/darwin.txt # -r requirements/base.txt diff --git a/requirements/static/ci/py3.12/docs.txt b/requirements/static/ci/py3.12/docs.txt index 39dd98dd698..80b51652bd9 100644 --- a/requirements/static/ci/py3.12/docs.txt +++ b/requirements/static/ci/py3.12/docs.txt @@ -62,7 +62,7 @@ jaraco.text==3.5.1 # via # -c requirements/static/ci/py3.12/linux.txt # jaraco.collections -jinja2==3.1.2 +jinja2==3.1.3 # via # -c requirements/static/ci/py3.12/linux.txt # -r requirements/base.txt diff --git a/requirements/static/ci/py3.12/freebsd.txt b/requirements/static/ci/py3.12/freebsd.txt index e674b3d5b70..0c383c06d01 100644 --- a/requirements/static/ci/py3.12/freebsd.txt +++ b/requirements/static/ci/py3.12/freebsd.txt @@ -166,7 +166,7 @@ jaraco.text==3.5.1 # via # -c requirements/static/ci/../pkg/py3.12/freebsd.txt # jaraco.collections -jinja2==3.1.2 +jinja2==3.1.3 # via # -c requirements/static/ci/../pkg/py3.12/freebsd.txt # -r requirements/base.txt diff --git a/requirements/static/ci/py3.12/lint.txt b/requirements/static/ci/py3.12/lint.txt index 8f578b7d8e2..0e2be829d65 100644 --- a/requirements/static/ci/py3.12/lint.txt +++ b/requirements/static/ci/py3.12/lint.txt @@ -242,7 +242,7 @@ jaraco.text==3.5.1 # -c requirements/static/ci/../pkg/py3.12/linux.txt # -c requirements/static/ci/py3.12/linux.txt # jaraco.collections -jinja2==3.1.2 +jinja2==3.1.3 # via # -c requirements/static/ci/../pkg/py3.12/linux.txt # -c requirements/static/ci/py3.12/linux.txt diff --git a/requirements/static/ci/py3.12/linux.txt b/requirements/static/ci/py3.12/linux.txt index 8b12a7fcbaf..4b3c8c28059 100644 --- a/requirements/static/ci/py3.12/linux.txt +++ b/requirements/static/ci/py3.12/linux.txt @@ -175,7 +175,7 @@ jaraco.text==3.5.1 # via # -c requirements/static/ci/../pkg/py3.12/linux.txt # jaraco.collections -jinja2==3.1.2 +jinja2==3.1.3 # via # -c requirements/static/ci/../pkg/py3.12/linux.txt # -r requirements/base.txt diff --git a/requirements/static/ci/py3.12/tools.txt b/requirements/static/ci/py3.12/tools.txt index 7531a07f5be..f6e9cfcccb0 100644 --- a/requirements/static/ci/py3.12/tools.txt +++ b/requirements/static/ci/py3.12/tools.txt @@ -22,7 +22,7 @@ commonmark==0.9.1 # via rich idna==3.2 # via requests -jinja2==3.1.2 +jinja2==3.1.3 # via -r requirements/static/ci/tools.in jmespath==1.0.1 # via diff --git a/requirements/static/ci/py3.12/windows.txt b/requirements/static/ci/py3.12/windows.txt index ddb6b0ed748..29783613cde 100644 --- a/requirements/static/ci/py3.12/windows.txt +++ b/requirements/static/ci/py3.12/windows.txt @@ -167,7 +167,7 @@ jaraco.text==3.5.0 # via # -c requirements/static/ci/../pkg/py3.12/windows.txt # jaraco.collections -jinja2==3.1.2 +jinja2==3.1.3 # via # -c requirements/static/ci/../pkg/py3.12/windows.txt # -r requirements/base.txt diff --git a/requirements/static/ci/py3.7/cloud.txt b/requirements/static/ci/py3.7/cloud.txt index e82b55a0673..989736d9acb 100644 --- a/requirements/static/ci/py3.7/cloud.txt +++ b/requirements/static/ci/py3.7/cloud.txt @@ -272,7 +272,7 @@ jaraco.text==3.5.1 # -c requirements/static/ci/../pkg/py3.7/linux.txt # -c requirements/static/ci/py3.7/linux.txt # jaraco.collections -jinja2==3.1.2 +jinja2==3.1.3 # via # -c requirements/static/ci/../pkg/py3.7/linux.txt # -c requirements/static/ci/py3.7/linux.txt diff --git a/requirements/static/ci/py3.7/docs.txt b/requirements/static/ci/py3.7/docs.txt index 96b190fabe9..528de0370f3 100644 --- a/requirements/static/ci/py3.7/docs.txt +++ b/requirements/static/ci/py3.7/docs.txt @@ -66,7 +66,7 @@ jaraco.text==3.5.1 # via # -c requirements/static/ci/py3.7/linux.txt # jaraco.collections -jinja2==3.1.2 +jinja2==3.1.3 # via # -c requirements/static/ci/py3.7/linux.txt # -r requirements/base.txt diff --git a/requirements/static/ci/py3.7/freebsd.txt b/requirements/static/ci/py3.7/freebsd.txt index e901d75ace2..27347630730 100644 --- a/requirements/static/ci/py3.7/freebsd.txt +++ b/requirements/static/ci/py3.7/freebsd.txt @@ -193,7 +193,7 @@ jaraco.text==3.5.1 # via # -c requirements/static/ci/../pkg/py3.7/freebsd.txt # jaraco.collections -jinja2==3.1.2 +jinja2==3.1.3 # via # -c requirements/static/ci/../pkg/py3.7/freebsd.txt # -r requirements/base.txt diff --git a/requirements/static/ci/py3.7/lint.txt b/requirements/static/ci/py3.7/lint.txt index 9af4a933f0b..40e9673b90d 100644 --- a/requirements/static/ci/py3.7/lint.txt +++ b/requirements/static/ci/py3.7/lint.txt @@ -271,7 +271,7 @@ jaraco.text==3.5.1 # -c requirements/static/ci/../pkg/py3.7/linux.txt # -c requirements/static/ci/py3.7/linux.txt # jaraco.collections -jinja2==3.1.2 +jinja2==3.1.3 # via # -c requirements/static/ci/../pkg/py3.7/linux.txt # -c requirements/static/ci/py3.7/linux.txt diff --git a/requirements/static/ci/py3.7/linux.txt b/requirements/static/ci/py3.7/linux.txt index 165c66ee850..f2f92c5fde7 100644 --- a/requirements/static/ci/py3.7/linux.txt +++ b/requirements/static/ci/py3.7/linux.txt @@ -199,7 +199,7 @@ jaraco.text==3.5.1 # via # -c requirements/static/ci/../pkg/py3.7/linux.txt # jaraco.collections -jinja2==3.1.2 +jinja2==3.1.3 # via # -c requirements/static/ci/../pkg/py3.7/linux.txt # -r requirements/base.txt diff --git a/requirements/static/ci/py3.7/windows.txt b/requirements/static/ci/py3.7/windows.txt index 524e3bb6004..598bbc73a77 100644 --- a/requirements/static/ci/py3.7/windows.txt +++ b/requirements/static/ci/py3.7/windows.txt @@ -186,7 +186,7 @@ jaraco.text==3.5.0 # via # -c requirements/static/ci/../pkg/py3.7/windows.txt # jaraco.collections -jinja2==3.1.2 +jinja2==3.1.3 # via # -c requirements/static/ci/../pkg/py3.7/windows.txt # -r requirements/base.txt diff --git a/requirements/static/ci/py3.8/changelog.txt b/requirements/static/ci/py3.8/changelog.txt index 6b6f20b0654..a55d84719b3 100644 --- a/requirements/static/ci/py3.8/changelog.txt +++ b/requirements/static/ci/py3.8/changelog.txt @@ -13,7 +13,7 @@ click==7.1.1 # towncrier incremental==17.5.0 # via towncrier -jinja2==3.1.2 +jinja2==3.1.3 # via # -c requirements/static/ci/py3.8/linux.txt # towncrier diff --git a/requirements/static/ci/py3.8/cloud.txt b/requirements/static/ci/py3.8/cloud.txt index bd2f56a51ae..55cbf4a483e 100644 --- a/requirements/static/ci/py3.8/cloud.txt +++ b/requirements/static/ci/py3.8/cloud.txt @@ -259,7 +259,7 @@ jaraco.text==3.5.1 # -c requirements/static/ci/../pkg/py3.8/linux.txt # -c requirements/static/ci/py3.8/linux.txt # jaraco.collections -jinja2==3.1.2 +jinja2==3.1.3 # via # -c requirements/static/ci/../pkg/py3.8/linux.txt # -c requirements/static/ci/py3.8/linux.txt diff --git a/requirements/static/ci/py3.8/docs.txt b/requirements/static/ci/py3.8/docs.txt index 616cdae5f58..660f0e9cbe6 100644 --- a/requirements/static/ci/py3.8/docs.txt +++ b/requirements/static/ci/py3.8/docs.txt @@ -62,7 +62,7 @@ jaraco.text==3.5.1 # via # -c requirements/static/ci/py3.8/linux.txt # jaraco.collections -jinja2==3.1.2 +jinja2==3.1.3 # via # -c requirements/static/ci/py3.8/linux.txt # -r requirements/base.txt diff --git a/requirements/static/ci/py3.8/freebsd.txt b/requirements/static/ci/py3.8/freebsd.txt index 5a6a75ffdce..809f0025f58 100644 --- a/requirements/static/ci/py3.8/freebsd.txt +++ b/requirements/static/ci/py3.8/freebsd.txt @@ -180,7 +180,7 @@ jaraco.text==3.5.1 # via # -c requirements/static/ci/../pkg/py3.8/freebsd.txt # jaraco.collections -jinja2==3.1.2 +jinja2==3.1.3 # via # -c requirements/static/ci/../pkg/py3.8/freebsd.txt # -r requirements/base.txt diff --git a/requirements/static/ci/py3.8/lint.txt b/requirements/static/ci/py3.8/lint.txt index 4e3325c003f..f43642082d2 100644 --- a/requirements/static/ci/py3.8/lint.txt +++ b/requirements/static/ci/py3.8/lint.txt @@ -256,7 +256,7 @@ jaraco.text==3.5.1 # -c requirements/static/ci/../pkg/py3.8/linux.txt # -c requirements/static/ci/py3.8/linux.txt # jaraco.collections -jinja2==3.1.2 +jinja2==3.1.3 # via # -c requirements/static/ci/../pkg/py3.8/linux.txt # -c requirements/static/ci/py3.8/linux.txt diff --git a/requirements/static/ci/py3.8/linux.txt b/requirements/static/ci/py3.8/linux.txt index 336483abcca..80af3cf3e41 100644 --- a/requirements/static/ci/py3.8/linux.txt +++ b/requirements/static/ci/py3.8/linux.txt @@ -186,7 +186,7 @@ jaraco.text==3.5.1 # via # -c requirements/static/ci/../pkg/py3.8/linux.txt # jaraco.collections -jinja2==3.1.2 +jinja2==3.1.3 # via # -c requirements/static/ci/../pkg/py3.8/linux.txt # -r requirements/base.txt diff --git a/requirements/static/ci/py3.8/windows.txt b/requirements/static/ci/py3.8/windows.txt index 98a62a78ab2..9424b6d1dd2 100644 --- a/requirements/static/ci/py3.8/windows.txt +++ b/requirements/static/ci/py3.8/windows.txt @@ -173,7 +173,7 @@ jaraco.text==3.5.0 # via # -c requirements/static/ci/../pkg/py3.8/windows.txt # jaraco.collections -jinja2==3.1.2 +jinja2==3.1.3 # via # -c requirements/static/ci/../pkg/py3.8/windows.txt # -r requirements/base.txt diff --git a/requirements/static/ci/py3.9/changelog.txt b/requirements/static/ci/py3.9/changelog.txt index 92c670f312e..540b3c88fcc 100644 --- a/requirements/static/ci/py3.9/changelog.txt +++ b/requirements/static/ci/py3.9/changelog.txt @@ -13,7 +13,7 @@ click==7.1.1 # towncrier incremental==17.5.0 # via towncrier -jinja2==3.1.2 +jinja2==3.1.3 # via # -c requirements/static/ci/py3.9/linux.txt # towncrier diff --git a/requirements/static/ci/py3.9/cloud.txt b/requirements/static/ci/py3.9/cloud.txt index 56dd04fffd6..94eb1f11bc4 100644 --- a/requirements/static/ci/py3.9/cloud.txt +++ b/requirements/static/ci/py3.9/cloud.txt @@ -259,7 +259,7 @@ jaraco.text==3.5.1 # -c requirements/static/ci/../pkg/py3.9/linux.txt # -c requirements/static/ci/py3.9/linux.txt # jaraco.collections -jinja2==3.1.2 +jinja2==3.1.3 # via # -c requirements/static/ci/../pkg/py3.9/linux.txt # -c requirements/static/ci/py3.9/linux.txt diff --git a/requirements/static/ci/py3.9/darwin.txt b/requirements/static/ci/py3.9/darwin.txt index 41537d36f65..775edb2d556 100644 --- a/requirements/static/ci/py3.9/darwin.txt +++ b/requirements/static/ci/py3.9/darwin.txt @@ -188,7 +188,7 @@ jaraco.text==3.5.1 # via # -c requirements/static/ci/../pkg/py3.9/darwin.txt # jaraco.collections -jinja2==3.1.2 +jinja2==3.1.3 # via # -c requirements/static/ci/../pkg/py3.9/darwin.txt # -r requirements/base.txt diff --git a/requirements/static/ci/py3.9/docs.txt b/requirements/static/ci/py3.9/docs.txt index 8e76c5973fd..1add3de6b29 100644 --- a/requirements/static/ci/py3.9/docs.txt +++ b/requirements/static/ci/py3.9/docs.txt @@ -66,7 +66,7 @@ jaraco.text==3.5.1 # via # -c requirements/static/ci/py3.9/linux.txt # jaraco.collections -jinja2==3.1.2 +jinja2==3.1.3 # via # -c requirements/static/ci/py3.9/linux.txt # -r requirements/base.txt diff --git a/requirements/static/ci/py3.9/freebsd.txt b/requirements/static/ci/py3.9/freebsd.txt index cfe46ff8e36..35404575ce0 100644 --- a/requirements/static/ci/py3.9/freebsd.txt +++ b/requirements/static/ci/py3.9/freebsd.txt @@ -180,7 +180,7 @@ jaraco.text==3.5.1 # via # -c requirements/static/ci/../pkg/py3.9/freebsd.txt # jaraco.collections -jinja2==3.1.2 +jinja2==3.1.3 # via # -c requirements/static/ci/../pkg/py3.9/freebsd.txt # -r requirements/base.txt diff --git a/requirements/static/ci/py3.9/lint.txt b/requirements/static/ci/py3.9/lint.txt index fde2f7a7ed3..35230753af6 100644 --- a/requirements/static/ci/py3.9/lint.txt +++ b/requirements/static/ci/py3.9/lint.txt @@ -252,7 +252,7 @@ jaraco.text==3.5.1 # -c requirements/static/ci/../pkg/py3.9/linux.txt # -c requirements/static/ci/py3.9/linux.txt # jaraco.collections -jinja2==3.1.2 +jinja2==3.1.3 # via # -c requirements/static/ci/../pkg/py3.9/linux.txt # -c requirements/static/ci/py3.9/linux.txt diff --git a/requirements/static/ci/py3.9/linux.txt b/requirements/static/ci/py3.9/linux.txt index 828ba3d2a3c..5f930d33f71 100644 --- a/requirements/static/ci/py3.9/linux.txt +++ b/requirements/static/ci/py3.9/linux.txt @@ -184,7 +184,7 @@ jaraco.text==3.5.1 # via # -c requirements/static/ci/../pkg/py3.9/linux.txt # jaraco.collections -jinja2==3.1.2 +jinja2==3.1.3 # via # -c requirements/static/ci/../pkg/py3.9/linux.txt # -r requirements/base.txt diff --git a/requirements/static/ci/py3.9/tools.txt b/requirements/static/ci/py3.9/tools.txt index 49375c5e736..1f3d04a05e1 100644 --- a/requirements/static/ci/py3.9/tools.txt +++ b/requirements/static/ci/py3.9/tools.txt @@ -20,7 +20,7 @@ charset-normalizer==3.2.0 # via requests idna==3.2 # via requests -jinja2==3.1.2 +jinja2==3.1.3 # via -r requirements/static/ci/tools.in jmespath==1.0.1 # via diff --git a/requirements/static/ci/py3.9/windows.txt b/requirements/static/ci/py3.9/windows.txt index 10e9c8d4186..77383fc1d69 100644 --- a/requirements/static/ci/py3.9/windows.txt +++ b/requirements/static/ci/py3.9/windows.txt @@ -173,7 +173,7 @@ jaraco.text==3.5.0 # via # -c requirements/static/ci/../pkg/py3.9/windows.txt # jaraco.collections -jinja2==3.1.2 +jinja2==3.1.3 # via # -c requirements/static/ci/../pkg/py3.9/windows.txt # -r requirements/base.txt diff --git a/requirements/static/pkg/py3.10/darwin.txt b/requirements/static/pkg/py3.10/darwin.txt index dd640bb81f8..dd0388e4b9d 100644 --- a/requirements/static/pkg/py3.10/darwin.txt +++ b/requirements/static/pkg/py3.10/darwin.txt @@ -47,7 +47,7 @@ jaraco.functools==2.0 # tempora jaraco.text==3.5.1 # via jaraco.collections -jinja2==3.1.2 +jinja2==3.1.3 # via -r requirements/base.txt jmespath==1.0.1 # via -r requirements/base.txt diff --git a/requirements/static/pkg/py3.10/freebsd.txt b/requirements/static/pkg/py3.10/freebsd.txt index 999cbfc1e61..3a7ec7bb9e6 100644 --- a/requirements/static/pkg/py3.10/freebsd.txt +++ b/requirements/static/pkg/py3.10/freebsd.txt @@ -41,7 +41,7 @@ jaraco.functools==2.0 # tempora jaraco.text==3.5.1 # via jaraco.collections -jinja2==3.1.2 +jinja2==3.1.3 # via -r requirements/base.txt jmespath==1.0.1 # via -r requirements/base.txt diff --git a/requirements/static/pkg/py3.10/linux.txt b/requirements/static/pkg/py3.10/linux.txt index 446ac3b7fd8..d7d35c34cca 100644 --- a/requirements/static/pkg/py3.10/linux.txt +++ b/requirements/static/pkg/py3.10/linux.txt @@ -39,7 +39,7 @@ jaraco.functools==2.0 # tempora jaraco.text==3.5.1 # via jaraco.collections -jinja2==3.1.2 +jinja2==3.1.3 # via -r requirements/base.txt jmespath==1.0.1 # via -r requirements/base.txt diff --git a/requirements/static/pkg/py3.10/windows.txt b/requirements/static/pkg/py3.10/windows.txt index 1c1fc3b0213..a231b0bdb08 100644 --- a/requirements/static/pkg/py3.10/windows.txt +++ b/requirements/static/pkg/py3.10/windows.txt @@ -52,7 +52,7 @@ jaraco.functools==2.0 # tempora jaraco.text==3.5.0 # via jaraco.collections -jinja2==3.1.2 +jinja2==3.1.3 # via -r requirements/base.txt jmespath==1.0.1 # via -r requirements/base.txt diff --git a/requirements/static/pkg/py3.11/darwin.txt b/requirements/static/pkg/py3.11/darwin.txt index 3ae9fd7999d..10080a8dd20 100644 --- a/requirements/static/pkg/py3.11/darwin.txt +++ b/requirements/static/pkg/py3.11/darwin.txt @@ -47,7 +47,7 @@ jaraco.functools==2.0 # tempora jaraco.text==3.5.1 # via jaraco.collections -jinja2==3.1.2 +jinja2==3.1.3 # via -r requirements/base.txt jmespath==1.0.1 # via -r requirements/base.txt diff --git a/requirements/static/pkg/py3.11/freebsd.txt b/requirements/static/pkg/py3.11/freebsd.txt index 7f0c55fc20e..7ba6d12b104 100644 --- a/requirements/static/pkg/py3.11/freebsd.txt +++ b/requirements/static/pkg/py3.11/freebsd.txt @@ -41,7 +41,7 @@ jaraco.functools==2.0 # tempora jaraco.text==3.5.1 # via jaraco.collections -jinja2==3.1.2 +jinja2==3.1.3 # via -r requirements/base.txt jmespath==1.0.1 # via -r requirements/base.txt diff --git a/requirements/static/pkg/py3.11/linux.txt b/requirements/static/pkg/py3.11/linux.txt index 0c91544bdb6..6ea847aafec 100644 --- a/requirements/static/pkg/py3.11/linux.txt +++ b/requirements/static/pkg/py3.11/linux.txt @@ -39,7 +39,7 @@ jaraco.functools==2.0 # tempora jaraco.text==3.5.1 # via jaraco.collections -jinja2==3.1.2 +jinja2==3.1.3 # via -r requirements/base.txt jmespath==1.0.1 # via -r requirements/base.txt diff --git a/requirements/static/pkg/py3.11/windows.txt b/requirements/static/pkg/py3.11/windows.txt index b5cd26dce0c..be0822d71e5 100644 --- a/requirements/static/pkg/py3.11/windows.txt +++ b/requirements/static/pkg/py3.11/windows.txt @@ -52,7 +52,7 @@ jaraco.functools==2.0 # tempora jaraco.text==3.5.0 # via jaraco.collections -jinja2==3.1.2 +jinja2==3.1.3 # via -r requirements/base.txt jmespath==1.0.1 # via -r requirements/base.txt diff --git a/requirements/static/pkg/py3.12/darwin.txt b/requirements/static/pkg/py3.12/darwin.txt index 7bbf467c7ef..31c67ce1d6f 100644 --- a/requirements/static/pkg/py3.12/darwin.txt +++ b/requirements/static/pkg/py3.12/darwin.txt @@ -47,7 +47,7 @@ jaraco.functools==2.0 # tempora jaraco.text==3.5.1 # via jaraco.collections -jinja2==3.1.2 +jinja2==3.1.3 # via -r requirements/base.txt jmespath==1.0.1 # via -r requirements/base.txt diff --git a/requirements/static/pkg/py3.12/freebsd.txt b/requirements/static/pkg/py3.12/freebsd.txt index b321476ba61..eb43935ca47 100644 --- a/requirements/static/pkg/py3.12/freebsd.txt +++ b/requirements/static/pkg/py3.12/freebsd.txt @@ -41,7 +41,7 @@ jaraco.functools==2.0 # tempora jaraco.text==3.5.1 # via jaraco.collections -jinja2==3.1.2 +jinja2==3.1.3 # via -r requirements/base.txt jmespath==1.0.1 # via -r requirements/base.txt diff --git a/requirements/static/pkg/py3.12/linux.txt b/requirements/static/pkg/py3.12/linux.txt index eaf9356ed72..85dd5bbc90e 100644 --- a/requirements/static/pkg/py3.12/linux.txt +++ b/requirements/static/pkg/py3.12/linux.txt @@ -39,7 +39,7 @@ jaraco.functools==2.0 # tempora jaraco.text==3.5.1 # via jaraco.collections -jinja2==3.1.2 +jinja2==3.1.3 # via -r requirements/base.txt jmespath==1.0.1 # via -r requirements/base.txt diff --git a/requirements/static/pkg/py3.12/windows.txt b/requirements/static/pkg/py3.12/windows.txt index 61b24ec3303..15fff737182 100644 --- a/requirements/static/pkg/py3.12/windows.txt +++ b/requirements/static/pkg/py3.12/windows.txt @@ -52,7 +52,7 @@ jaraco.functools==2.0 # tempora jaraco.text==3.5.0 # via jaraco.collections -jinja2==3.1.2 +jinja2==3.1.3 # via -r requirements/base.txt jmespath==1.0.1 # via -r requirements/base.txt diff --git a/requirements/static/pkg/py3.7/freebsd.txt b/requirements/static/pkg/py3.7/freebsd.txt index 1f37ca0cb77..d26272a0970 100644 --- a/requirements/static/pkg/py3.7/freebsd.txt +++ b/requirements/static/pkg/py3.7/freebsd.txt @@ -41,7 +41,7 @@ jaraco.functools==2.0 # tempora jaraco.text==3.5.1 # via jaraco.collections -jinja2==3.1.2 +jinja2==3.1.3 # via -r requirements/base.txt jmespath==1.0.1 # via -r requirements/base.txt diff --git a/requirements/static/pkg/py3.7/linux.txt b/requirements/static/pkg/py3.7/linux.txt index 10aa08c23fd..93a2bd79ef8 100644 --- a/requirements/static/pkg/py3.7/linux.txt +++ b/requirements/static/pkg/py3.7/linux.txt @@ -39,7 +39,7 @@ jaraco.functools==2.0 # tempora jaraco.text==3.5.1 # via jaraco.collections -jinja2==3.1.2 +jinja2==3.1.3 # via -r requirements/base.txt jmespath==1.0.1 # via -r requirements/base.txt diff --git a/requirements/static/pkg/py3.7/windows.txt b/requirements/static/pkg/py3.7/windows.txt index e202d18f9e9..334db47befb 100644 --- a/requirements/static/pkg/py3.7/windows.txt +++ b/requirements/static/pkg/py3.7/windows.txt @@ -52,7 +52,7 @@ jaraco.functools==2.0 # tempora jaraco.text==3.5.0 # via jaraco.collections -jinja2==3.1.2 +jinja2==3.1.3 # via -r requirements/base.txt jmespath==1.0.1 # via -r requirements/base.txt diff --git a/requirements/static/pkg/py3.8/freebsd.txt b/requirements/static/pkg/py3.8/freebsd.txt index a6af263a28f..22b6d3049b3 100644 --- a/requirements/static/pkg/py3.8/freebsd.txt +++ b/requirements/static/pkg/py3.8/freebsd.txt @@ -41,7 +41,7 @@ jaraco.functools==2.0 # tempora jaraco.text==3.5.1 # via jaraco.collections -jinja2==3.1.2 +jinja2==3.1.3 # via -r requirements/base.txt jmespath==1.0.1 # via -r requirements/base.txt diff --git a/requirements/static/pkg/py3.8/linux.txt b/requirements/static/pkg/py3.8/linux.txt index e291cad63dc..a0a72abb801 100644 --- a/requirements/static/pkg/py3.8/linux.txt +++ b/requirements/static/pkg/py3.8/linux.txt @@ -39,7 +39,7 @@ jaraco.functools==2.0 # tempora jaraco.text==3.5.1 # via jaraco.collections -jinja2==3.1.2 +jinja2==3.1.3 # via -r requirements/base.txt jmespath==1.0.1 # via -r requirements/base.txt diff --git a/requirements/static/pkg/py3.8/windows.txt b/requirements/static/pkg/py3.8/windows.txt index 5ad09a3ade0..f304db73f73 100644 --- a/requirements/static/pkg/py3.8/windows.txt +++ b/requirements/static/pkg/py3.8/windows.txt @@ -52,7 +52,7 @@ jaraco.functools==2.0 # tempora jaraco.text==3.5.0 # via jaraco.collections -jinja2==3.1.2 +jinja2==3.1.3 # via -r requirements/base.txt jmespath==1.0.1 # via -r requirements/base.txt diff --git a/requirements/static/pkg/py3.9/darwin.txt b/requirements/static/pkg/py3.9/darwin.txt index 19ad95b667f..1d4911b6e01 100644 --- a/requirements/static/pkg/py3.9/darwin.txt +++ b/requirements/static/pkg/py3.9/darwin.txt @@ -47,7 +47,7 @@ jaraco.functools==2.0 # tempora jaraco.text==3.5.1 # via jaraco.collections -jinja2==3.1.2 +jinja2==3.1.3 # via -r requirements/base.txt jmespath==1.0.1 # via -r requirements/base.txt diff --git a/requirements/static/pkg/py3.9/freebsd.txt b/requirements/static/pkg/py3.9/freebsd.txt index 57a4c492aa5..800bb76edac 100644 --- a/requirements/static/pkg/py3.9/freebsd.txt +++ b/requirements/static/pkg/py3.9/freebsd.txt @@ -41,7 +41,7 @@ jaraco.functools==2.0 # tempora jaraco.text==3.5.1 # via jaraco.collections -jinja2==3.1.2 +jinja2==3.1.3 # via -r requirements/base.txt jmespath==1.0.1 # via -r requirements/base.txt diff --git a/requirements/static/pkg/py3.9/linux.txt b/requirements/static/pkg/py3.9/linux.txt index b46dadd157c..c0e0ef4e791 100644 --- a/requirements/static/pkg/py3.9/linux.txt +++ b/requirements/static/pkg/py3.9/linux.txt @@ -39,7 +39,7 @@ jaraco.functools==2.0 # tempora jaraco.text==3.5.1 # via jaraco.collections -jinja2==3.1.2 +jinja2==3.1.3 # via -r requirements/base.txt jmespath==1.0.1 # via -r requirements/base.txt diff --git a/requirements/static/pkg/py3.9/windows.txt b/requirements/static/pkg/py3.9/windows.txt index 7f4c7f13bd2..3ebb43358ef 100644 --- a/requirements/static/pkg/py3.9/windows.txt +++ b/requirements/static/pkg/py3.9/windows.txt @@ -52,7 +52,7 @@ jaraco.functools==2.0 # tempora jaraco.text==3.5.0 # via jaraco.collections -jinja2==3.1.2 +jinja2==3.1.3 # via -r requirements/base.txt jmespath==1.0.1 # via -r requirements/base.txt From f7770748492735b15da56c8d877c8d5afa2cec05 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Tue, 16 Jan 2024 09:24:08 +0000 Subject: [PATCH 085/146] Update changelog to include the Jinja security update Signed-off-by: Pedro Algarvio --- changelog/65830.security.md | 1 + 1 file changed, 1 insertion(+) diff --git a/changelog/65830.security.md b/changelog/65830.security.md index b6a01212508..509b279126d 100644 --- a/changelog/65830.security.md +++ b/changelog/65830.security.md @@ -2,3 +2,4 @@ Update some requirements which had some security issues: * Bump to `pycryptodome==3.19.1` and `pycryptodomex==3.19.1` due to https://github.com/advisories/GHSA-j225-cvw7-qrx7 * Bump to `gitpython==3.1.41` due to https://github.com/advisories/GHSA-2mqj-m65w-jghx +* Bump to `jinja2==3.1.3` due to https://github.com/advisories/GHSA-h5c8-rqwp-cp95 From 81905044bd7806571fe507e76425f2045af28b9a Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Wed, 17 Jan 2024 13:37:06 +0000 Subject: [PATCH 086/146] Increase concurrency in CI pipelines. Signed-off-by: Pedro Algarvio --- tools/ci.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/ci.py b/tools/ci.py index 2ef75858340..494fc59e818 100644 --- a/tools/ci.py +++ b/tools/ci.py @@ -656,7 +656,7 @@ def matrix( "functional": 3, "integration": 5, "scenarios": 1, - "unit": 2, + "unit": 4, } # On nightly and scheduled builds we don't want splits at all if workflow.lower() in ("nightly", "scheduled"): From cbfc665b288af5f6249d4d465aa02d51ee381c3f Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Wed, 17 Jan 2024 14:02:38 +0000 Subject: [PATCH 087/146] When running changed tests, always run all changed files tests Signed-off-by: Pedro Algarvio --- .github/workflows/test-action-linux.yml | 24 ++------------ .github/workflows/test-action-macos.yml | 40 ++--------------------- .github/workflows/test-action-windows.yml | 22 ++----------- 3 files changed, 7 insertions(+), 79 deletions(-) diff --git a/.github/workflows/test-action-linux.yml b/.github/workflows/test-action-linux.yml index c1399e56fbf..955f2d6629c 100644 --- a/.github/workflows/test-action-linux.yml +++ b/.github/workflows/test-action-linux.yml @@ -205,31 +205,13 @@ jobs: --nox-session=${{ inputs.nox-session }} ${{ inputs.distro-slug }} \ ${{ matrix.tests-chunk }} - - name: Run Fast/Changed Tests + - name: Run Changed Tests id: run-fast-changed-tests - if: ${{ fromJSON(inputs.testrun)['type'] != 'full' && fromJSON(inputs.testrun)['selected_tests']['fast'] == false }} + if: ${{ fromJSON(inputs.testrun)['type'] != 'full' }} run: | tools --timestamps --no-output-timeout-secs=1800 --timeout-secs=14400 vm test --skip-requirements-install \ --nox-session=${{ inputs.nox-session }} --rerun-failures -E SALT_TRANSPORT ${{ matrix.fips && '--fips ' || '' }}${{ inputs.distro-slug }} \ - ${{ matrix.tests-chunk }} -- --suppress-no-test-exit-code \ - --from-filenames=testrun-changed-files.txt - - - name: Run Slow/Changed Tests - id: run-slow-changed-tests - if: ${{ fromJSON(inputs.testrun)['type'] != 'full' && fromJSON(inputs.testrun)['selected_tests']['slow'] == false }} - run: | - tools --timestamps --no-output-timeout-secs=1800 --timeout-secs=14400 vm test --skip-requirements-install \ - --nox-session=${{ inputs.nox-session }} --rerun-failures -E SALT_TRANSPORT ${{ matrix.fips && '--fips ' || '' }}${{ inputs.distro-slug }} \ - ${{ matrix.tests-chunk }} -- --no-fast-tests --slow-tests --suppress-no-test-exit-code \ - --from-filenames=testrun-changed-files.txt - - - name: Run Core/Changed Tests - id: run-core-changed-tests - if: ${{ fromJSON(inputs.testrun)['type'] != 'full' && fromJSON(inputs.testrun)['selected_tests']['core'] == false }} - run: | - tools --timestamps --no-output-timeout-secs=1800 --timeout-secs=14400 vm test --skip-requirements-install \ - --nox-session=${{ inputs.nox-session }} --rerun-failures -E SALT_TRANSPORT ${{ matrix.fips && '--fips ' || '' }}${{ inputs.distro-slug }} \ - ${{ matrix.tests-chunk }} -- --no-fast-tests --core-tests --suppress-no-test-exit-code \ + ${{ matrix.tests-chunk }} -- --core-tests --slow-tests --suppress-no-test-exit-code \ --from-filenames=testrun-changed-files.txt - name: Run Fast Tests diff --git a/.github/workflows/test-action-macos.yml b/.github/workflows/test-action-macos.yml index 9c731f2bd27..5b38d1314e7 100644 --- a/.github/workflows/test-action-macos.yml +++ b/.github/workflows/test-action-macos.yml @@ -183,7 +183,7 @@ jobs: run: | sudo -E nox --force-color -e ${{ inputs.nox-session }} -- ${{ matrix.tests-chunk }} -- -k "mac or darwin" - - name: Run Fast/Changed Tests + - name: Run Changed Tests id: run-fast-changed-tests if: ${{ fromJSON(inputs.testrun)['type'] != 'full' && fromJSON(inputs.testrun)['selected_tests']['fast'] == false }} env: @@ -198,43 +198,7 @@ jobs: COVERAGE_CONTEXT: ${{ inputs.distro-slug }} run: | sudo -E nox --force-color -e ${{ inputs.nox-session }} -- ${{ matrix.tests-chunk }} -- \ - -k "mac or darwin" --suppress-no-test-exit-code \ - --from-filenames=testrun-changed-files.txt - - - name: Run Slow/Changed Tests - id: run-slow-changed-tests - if: ${{ fromJSON(inputs.testrun)['type'] != 'full' && fromJSON(inputs.testrun)['selected_tests']['slow'] == false }} - env: - SKIP_REQUIREMENTS_INSTALL: "1" - PRINT_TEST_SELECTION: "0" - PRINT_TEST_PLAN_ONLY: "0" - PRINT_SYSTEM_INFO: "0" - RERUN_FAILURES: "1" - GITHUB_ACTIONS_PIPELINE: "1" - SKIP_INITIAL_GH_ACTIONS_FAILURES: "1" - SKIP_CODE_COVERAGE: "${{ inputs.skip-code-coverage && '1' || '0' }}" - COVERAGE_CONTEXT: ${{ inputs.distro-slug }} - run: | - sudo -E nox --force-color -e ${{ inputs.nox-session }} -- ${{ matrix.tests-chunk }} -- \ - -k "mac or darwin" --suppress-no-test-exit-code --no-fast-tests --slow-tests \ - --from-filenames=testrun-changed-files.txt - - - name: Run Core/Changed Tests - id: run-core-changed-tests - if: ${{ fromJSON(inputs.testrun)['type'] != 'full' && fromJSON(inputs.testrun)['selected_tests']['core'] == false }} - env: - SKIP_REQUIREMENTS_INSTALL: "1" - PRINT_TEST_SELECTION: "0" - PRINT_TEST_PLAN_ONLY: "0" - PRINT_SYSTEM_INFO: "0" - RERUN_FAILURES: "1" - GITHUB_ACTIONS_PIPELINE: "1" - SKIP_INITIAL_GH_ACTIONS_FAILURES: "1" - SKIP_CODE_COVERAGE: "${{ inputs.skip-code-coverage && '1' || '0' }}" - COVERAGE_CONTEXT: ${{ inputs.distro-slug }} - run: | - sudo -E nox --force-color -e ${{ inputs.nox-session }} -- ${{ matrix.tests-chunk }} -- \ - -k "mac or darwin" --suppress-no-test-exit-code --no-fast-tests --core-tests \ + -k "mac or darwin" --core-tests --slow-tests --suppress-no-test-exit-code \ --from-filenames=testrun-changed-files.txt - name: Run Fast Tests diff --git a/.github/workflows/test-action-windows.yml b/.github/workflows/test-action-windows.yml index d430baab46a..b6346d50ca0 100644 --- a/.github/workflows/test-action-windows.yml +++ b/.github/workflows/test-action-windows.yml @@ -205,31 +205,13 @@ jobs: --nox-session=${{ inputs.nox-session }} ${{ inputs.distro-slug }} \ ${{ matrix.tests-chunk }} - - name: Run Fast/Changed Tests + - name: Run Changed Tests id: run-fast-changed-tests if: ${{ fromJSON(inputs.testrun)['type'] != 'full' && fromJSON(inputs.testrun)['selected_tests']['fast'] == false }} run: | tools --timestamps --no-output-timeout-secs=1800 --timeout-secs=14400 vm test --skip-requirements-install \ --nox-session=${{ inputs.nox-session }} --rerun-failures -E SALT_TRANSPORT ${{ matrix.fips && '--fips ' || '' }}${{ inputs.distro-slug }} \ - ${{ matrix.tests-chunk }} -- --suppress-no-test-exit-code \ - --from-filenames=testrun-changed-files.txt - - - name: Run Slow/Changed Tests - id: run-slow-changed-tests - if: ${{ fromJSON(inputs.testrun)['type'] != 'full' && fromJSON(inputs.testrun)['selected_tests']['slow'] == false }} - run: | - tools --timestamps --no-output-timeout-secs=1800 --timeout-secs=14400 vm test --skip-requirements-install \ - --nox-session=${{ inputs.nox-session }} --rerun-failures -E SALT_TRANSPORT ${{ matrix.fips && '--fips ' || '' }}${{ inputs.distro-slug }} \ - ${{ matrix.tests-chunk }} -- --no-fast-tests --slow-tests --suppress-no-test-exit-code \ - --from-filenames=testrun-changed-files.txt - - - name: Run Core/Changed Tests - id: run-core-changed-tests - if: ${{ fromJSON(inputs.testrun)['type'] != 'full' && fromJSON(inputs.testrun)['selected_tests']['core'] == false }} - run: | - tools --timestamps --no-output-timeout-secs=1800 --timeout-secs=14400 vm test --skip-requirements-install \ - --nox-session=${{ inputs.nox-session }} --rerun-failures -E SALT_TRANSPORT ${{ matrix.fips && '--fips ' || '' }}${{ inputs.distro-slug }} \ - ${{ matrix.tests-chunk }} -- --no-fast-tests --core-tests --suppress-no-test-exit-code \ + ${{ matrix.tests-chunk }} -- --core-tests --slow-tests --suppress-no-test-exit-code \ --from-filenames=testrun-changed-files.txt - name: Run Fast Tests From 8504ad85389ce94cf9c09c785a8fa4bed3e76bb2 Mon Sep 17 00:00:00 2001 From: Shane Lee Date: Tue, 23 Jan 2024 14:59:51 -0700 Subject: [PATCH 088/146] Backport notarize.sh from 3006 --- pkg/osx/notarize.sh | 195 +++++++++++++++++++++++--------------------- 1 file changed, 101 insertions(+), 94 deletions(-) diff --git a/pkg/osx/notarize.sh b/pkg/osx/notarize.sh index d2461eff5dd..87c9cf2adeb 100755 --- a/pkg/osx/notarize.sh +++ b/pkg/osx/notarize.sh @@ -6,18 +6,19 @@ # Date: December 2020 # # Description: This notarizes the macOS Installer Package (.pkg). It uses the -# `altool` xcode utility which is only available in the full -# Xcode package. It is not available in Command Line Tools. +# `notarytool` xcode utility which became available in Xcode 13. +# Xcode 13 requires macOS Big Sur 11.3 or higher. However, the +# notarytool binary can be extracted and run on macOS Catalina +# 10.15.7 and higher. It is not available in Command Line Tools. # -# This script will upload a copy of the package to apple and wait +# This script will upload a copy of the package to Apple and wait # for the notarization to return. This can take several minutes. # -# This script should be run with sudo. If not, it will attempt to -# elevate and run with sudo. In order for the environment variables -# to be available in sudo you need to pass the `-E` option. For -# example: +# This script requires the presence of some environment variables. +# If running this script with sudo, be sure to pass the `-E` +# option. # -# sudo -E ./notarize.sh +# sudo -E ./notarize.sh salt-3006.2-signed.pkg # # Requirements: # - Full Xcode Installation @@ -32,36 +33,27 @@ # The package that will be notarized (must be signed) # # Example: -# The following will notarize the 'salt-v2015.8.3-signed.pkg' file +# The following will notarize the 'salt-3006.2-signed.pkg' file: # -# sudo ./notarize.sh salt-v2015.8.3-signed.pkg +# ./notarize.sh salt-3006.2-signed.pkg # # Environment Setup: # # Define Environment Variables: -# Create two environment variables for the apple account and the -# app-specific password associated with that account. To generate the -# app-specific password see: https://support.apple.com/en-us/HT204397 +# Create three environment variables for the apple account, apple team +# ID, and the app-specific password associated with that account. To +# generate the app-specific password see: +# https://support.apple.com/en-us/HT204397 # # export APPLE_ACCT="username@domain.com" +# export APPLE_TEAM_ID="AB283DVDS5" # export APP_SPEC_PWD="abcd-efgh-ijkl-mnop" # ################################################################################ -echo "vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv" -echo "Notarize Salt Package" -# Make sure the script is launched with sudo -# We're doing this with notarize because the package we're notarizing was -# built with sudo... so, we need sudo here in order to staple the notarization -# to the package -if [[ $(id -u) -ne 0 ]]; then - echo ">>>>>> Re-launching as sudo <<<<<<" - exec sudo -E /bin/bash -c "$(printf '%q ' "${BASH_SOURCE[0]}" "$@")" -fi - -################################################################################ +#------------------------------------------------------------------------------- # Check input parameters -################################################################################ +#------------------------------------------------------------------------------- if [ "$1" == "" ]; then echo "Must supply a package to notarize" exit 1 @@ -69,84 +61,99 @@ else PACKAGE=$1 fi -################################################################################ -# Environment Variables -################################################################################ -echo "**** Setting Variables" -BUNDLE_ID="com.saltstack.salt" -NOTARIZE_APP_LOG=$(mktemp -t notarize-app) -NOTARIZE_INFO_LOG=$(mktemp -t notarize-info) +#------------------------------------------------------------------------------- +# Functions +#------------------------------------------------------------------------------- +# _msg +# +# Prints the message with a dash... no new line +_msg() { + printf -- "- %s: " "$1" +} -################################################################################ +# _success +# +# Prints a green Success +_success() { + printf "\e[32m%s\e[0m\n" "Success" +} + +# _failure +# +# Prints a red Failure and exits +_failure() { + printf "\e[31m%s\e[0m\n" "Failure" + echo "output >>>>>>" + cat "$NOTARIZE_LOG" 1>&2 + echo "<<<<<< output" + exit 1 +} + +#------------------------------------------------------------------------------- +# Environment Variables +#------------------------------------------------------------------------------- +_msg "Setting Variables" +NOTARIZE_LOG=$(mktemp -t notarize-app.log) +NOTARY_TOOL=$(xcrun --find notarytool) +_success + +#------------------------------------------------------------------------------- +# Check for notarytool +#------------------------------------------------------------------------------- +if [ ! -f "$NOTARY_TOOL" ]; then + echo "This script requires the NotaryTool binary" + exit 1 +fi + +#------------------------------------------------------------------------------- # Delete temporary files on exit -################################################################################ +#------------------------------------------------------------------------------- function finish { - rm "$NOTARIZE_APP_LOG" "$NOTARIZE_INFO_LOG" + rm "$NOTARIZE_LOG" } trap finish EXIT -################################################################################ +#------------------------------------------------------------------------------- +# Script Start +#------------------------------------------------------------------------------- +printf "=%.0s" {1..80}; printf "\n" +echo "Notarize Salt Package" +echo "- This can take up to 30 minutes" +printf -- "-%.0s" {1..80}; printf "\n" + +#------------------------------------------------------------------------------- # Submit app for notarization -################################################################################ -echo "**** Submitting Package for Notarization" -if ! xcrun altool --notarize-app \ - --primary-bundle-id "$BUNDLE_ID" \ - --username "$APPLE_ACCT" \ - --password "$APP_SPEC_PWD" \ - -f "$PACKAGE" > "$NOTARIZE_APP_LOG" 2>&1; then - cat "$NOTARIZE_APP_LOG" 1>&2 - exit 1 +#------------------------------------------------------------------------------- +_msg "Submitting Package for Notarization" +if $NOTARY_TOOL submit \ + --apple-id "$APPLE_ACCT" \ + --team-id "$APPLE_TEAM_ID" \ + --password "$APP_SPEC_PWD" \ + --wait \ + "$PACKAGE" > "$NOTARIZE_LOG" 2>&1; then + _success +else + _failure fi -# Get RequestUUID from the APP LOG -# Uncomment for debugging -# cat "$NOTARIZE_APP_LOG" - -if ! grep -q "No errors uploading" "$NOTARIZE_APP_LOG"; then - echo ">>>>>> Failed Uploading Package <<<<<<" - exit 1 -fi -RequestUUID=$(awk -F ' = ' '/RequestUUID/ {print $2}' "$NOTARIZE_APP_LOG") - -echo "**** Checking Notarization Status (every 30 seconds)" -echo -n "**** " -# Check status every 30 seconds -while sleep 30; do - echo -n "." - - # check notarization status - if ! xcrun altool --notarization-info "$RequestUUID" \ - --username "$APPLE_ACCT" \ - --password "$APP_SPEC_PWD" > "$NOTARIZE_INFO_LOG" 2>&1; then - cat "$NOTARIZE_INFO_LOG" 1>&2 - exit 1 - fi - - # Look for Status in the INFO LOG - # Uncomment for debugging - # cat "$NOTARIZE_INFO_LOG" - - # Continue checking until Status is no longer "in progress" - if ! grep -q "Status: in progress" "$NOTARIZE_INFO_LOG"; then - echo "" - break - fi - -done - -# Make sure the result is "success", then staple -if ! grep -q "Status: success" "$NOTARIZE_INFO_LOG"; then - echo "**** There was a problem notarizing the package" - echo "**** View the log for details:" - awk -F ': ' '/LogFileURL/ {print $2}' "$NOTARIZE_INFO_LOG" - exit 1 +# Make sure the status is "Accepted", then staple +_msg "Verifying accepted status" +if grep -q "status: Accepted" "$NOTARIZE_LOG"; then + _success +else + _failure fi -echo "**** Stapling Notarization to the Package" -if ! xcrun stapler staple "$PACKAGE" > "$NOTARIZE_INFO_LOG"; then - cat "$NOTARIZE_INFO_LOG" 1>&2 - exit 1 +_msg "Stapling Notarization to the Package" +if xcrun stapler staple "$PACKAGE" > "$NOTARIZE_LOG"; then + _success +else + _failure fi -echo "Notarize Salt Package Completed Successfully" -echo "^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^" +#------------------------------------------------------------------------------- +# Script Completed +#------------------------------------------------------------------------------- +printf -- "-%.0s" {1..80}; printf "\n" +echo "Notarize Salt Package Completed" +printf "=%.0s" {1..80}; printf "\n" From 43d524020a53c893c06044118c7b28359c36b56c Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Wed, 17 Jan 2024 16:27:20 +0000 Subject: [PATCH 089/146] Rely on uploaded artifacts instead of the GH cache Signed-off-by: Pedro Algarvio --- .github/workflows/build-deps-ci-action.yml | 6 +- .github/workflows/ci.yml | 66 ------------------ .github/workflows/nightly.yml | 66 ------------------ .github/workflows/release.yml | 1 - .github/workflows/scheduled.yml | 66 ------------------ .github/workflows/staging.yml | 67 ------------------- .../templates/build-deps-ci-action.yml.jinja | 6 +- .../test-package-downloads-action.yml.jinja | 31 +++------ .../test-salt-pkg-repo-downloads.yml.jinja | 1 - .../templates/test-salt-pkg.yml.jinja | 3 - .../workflows/templates/test-salt.yml.jinja | 3 - .github/workflows/test-action-linux.yml | 13 +--- .github/workflows/test-action-macos.yml | 13 +--- .github/workflows/test-action-windows.yml | 13 +--- .../test-package-downloads-action.yml | 31 +++------ .../workflows/test-packages-action-linux.yml | 13 +--- .../workflows/test-packages-action-macos.yml | 13 +--- .../test-packages-action-windows.yml | 13 +--- 18 files changed, 42 insertions(+), 383 deletions(-) diff --git a/.github/workflows/build-deps-ci-action.yml b/.github/workflows/build-deps-ci-action.yml index fcdd9f37714..e64f6ffff5e 100644 --- a/.github/workflows/build-deps-ci-action.yml +++ b/.github/workflows/build-deps-ci-action.yml @@ -152,7 +152,7 @@ jobs: tools --timestamps vm destroy --no-wait ${{ matrix.distro-slug }} - name: Upload Nox Requirements Tarball - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: nox-linux-${{ matrix.arch }}-${{ inputs.nox-session }} path: nox.linux.${{ matrix.arch }}.tar.* @@ -240,7 +240,7 @@ jobs: nox --force-color -e compress-dependencies -- macos ${{ matrix.arch }} - name: Upload Nox Requirements Tarball - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: nox-macos-${{ matrix.arch }}-${{ inputs.nox-session }} path: nox.macos.${{ matrix.arch }}.tar.* @@ -350,7 +350,7 @@ jobs: tools --timestamps vm destroy --no-wait ${{ matrix.distro-slug }} - name: Upload Nox Requirements Tarball - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: nox-windows-${{ matrix.arch }}-${{ inputs.nox-session }} path: nox.windows.${{ matrix.arch }}.tar.* diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2093eede62a..1b722778b1e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -505,7 +505,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" amazonlinux-2-arm64-pkg-tests: name: Amazon Linux 2 Arm64 Package Test @@ -527,7 +526,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" amazonlinux-2023-pkg-tests: name: Amazon Linux 2023 Package Test @@ -549,7 +547,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" amazonlinux-2023-arm64-pkg-tests: name: Amazon Linux 2023 Arm64 Package Test @@ -571,7 +568,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" centos-7-pkg-tests: name: CentOS 7 Package Test @@ -593,7 +589,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" centosstream-8-pkg-tests: name: CentOS Stream 8 Package Test @@ -615,7 +610,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" centosstream-9-pkg-tests: name: CentOS Stream 9 Package Test @@ -637,7 +631,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" centosstream-9-arm64-pkg-tests: name: CentOS Stream 9 Arm64 Package Test @@ -659,7 +652,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-10-pkg-tests: name: Debian 10 Package Test @@ -681,7 +673,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-11-pkg-tests: name: Debian 11 Package Test @@ -703,7 +694,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-11-arm64-pkg-tests: name: Debian 11 Arm64 Package Test @@ -725,7 +715,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-12-pkg-tests: name: Debian 12 Package Test @@ -747,7 +736,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-12-arm64-pkg-tests: name: Debian 12 Arm64 Package Test @@ -769,7 +757,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" photonos-3-pkg-tests: name: Photon OS 3 Package Test @@ -791,7 +778,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" photonos-3-arm64-pkg-tests: name: Photon OS 3 Arm64 Package Test @@ -813,7 +799,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" photonos-4-pkg-tests: name: Photon OS 4 Package Test @@ -835,7 +820,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true photonos-4-arm64-pkg-tests: @@ -858,7 +842,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true photonos-5-pkg-tests: @@ -881,7 +864,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true photonos-5-arm64-pkg-tests: @@ -904,7 +886,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true ubuntu-2004-pkg-tests: @@ -927,7 +908,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" ubuntu-2004-arm64-pkg-tests: name: Ubuntu 20.04 Arm64 Package Test @@ -949,7 +929,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" ubuntu-2204-pkg-tests: name: Ubuntu 22.04 Package Test @@ -971,7 +950,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" ubuntu-2204-arm64-pkg-tests: name: Ubuntu 22.04 Arm64 Package Test @@ -993,7 +971,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" macos-12-pkg-tests: name: macOS 12 Package Test @@ -1015,7 +992,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" macos-13-pkg-tests: name: macOS 13 Package Test @@ -1037,7 +1013,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" macos-13-xlarge-pkg-tests: name: macOS 13 Arm64 Package Test @@ -1059,7 +1034,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2016-nsis-pkg-tests: name: Windows 2016 NSIS Package Test @@ -1081,7 +1055,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2016-msi-pkg-tests: name: Windows 2016 MSI Package Test @@ -1103,7 +1076,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2019-nsis-pkg-tests: name: Windows 2019 NSIS Package Test @@ -1125,7 +1097,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2019-msi-pkg-tests: name: Windows 2019 MSI Package Test @@ -1147,7 +1118,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2022-nsis-pkg-tests: name: Windows 2022 NSIS Package Test @@ -1169,7 +1139,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2022-msi-pkg-tests: name: Windows 2022 MSI Package Test @@ -1191,7 +1160,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2016: name: Windows 2016 Test @@ -1213,7 +1181,6 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} workflow-slug: ci default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2019: name: Windows 2019 Test @@ -1235,7 +1202,6 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} workflow-slug: ci default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2022: name: Windows 2022 Test @@ -1257,7 +1223,6 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} workflow-slug: ci default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" macos-12: name: macOS 12 Test @@ -1279,7 +1244,6 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} workflow-slug: ci default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" macos-13: name: macOS 13 Test @@ -1301,7 +1265,6 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} workflow-slug: ci default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" macos-13-xlarge: name: macOS 13 Arm64 Test @@ -1323,7 +1286,6 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} workflow-slug: ci default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" almalinux-8: name: Alma Linux 8 Test @@ -1345,7 +1307,6 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} workflow-slug: ci default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" almalinux-9: name: Alma Linux 9 Test @@ -1367,7 +1328,6 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} workflow-slug: ci default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" amazonlinux-2: name: Amazon Linux 2 Test @@ -1389,7 +1349,6 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} workflow-slug: ci default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" amazonlinux-2-arm64: name: Amazon Linux 2 Arm64 Test @@ -1411,7 +1370,6 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} workflow-slug: ci default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" amazonlinux-2023: name: Amazon Linux 2023 Test @@ -1433,7 +1391,6 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} workflow-slug: ci default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" amazonlinux-2023-arm64: name: Amazon Linux 2023 Arm64 Test @@ -1455,7 +1412,6 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} workflow-slug: ci default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" archlinux-lts: name: Arch Linux LTS Test @@ -1477,7 +1433,6 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} workflow-slug: ci default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" centos-7: name: CentOS 7 Test @@ -1499,7 +1454,6 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} workflow-slug: ci default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" centosstream-8: name: CentOS Stream 8 Test @@ -1521,7 +1475,6 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} workflow-slug: ci default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" centosstream-9: name: CentOS Stream 9 Test @@ -1543,7 +1496,6 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} workflow-slug: ci default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-10: name: Debian 10 Test @@ -1565,7 +1517,6 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} workflow-slug: ci default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-11: name: Debian 11 Test @@ -1587,7 +1538,6 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} workflow-slug: ci default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-11-arm64: name: Debian 11 Arm64 Test @@ -1609,7 +1559,6 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} workflow-slug: ci default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-12: name: Debian 12 Test @@ -1631,7 +1580,6 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} workflow-slug: ci default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-12-arm64: name: Debian 12 Arm64 Test @@ -1653,7 +1601,6 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} workflow-slug: ci default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fedora-37: name: Fedora 37 Test @@ -1675,7 +1622,6 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} workflow-slug: ci default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fedora-38: name: Fedora 38 Test @@ -1697,7 +1643,6 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} workflow-slug: ci default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" opensuse-15: name: Opensuse 15 Test @@ -1719,7 +1664,6 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} workflow-slug: ci default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" photonos-3: name: Photon OS 3 Test @@ -1741,7 +1685,6 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} workflow-slug: ci default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" photonos-3-arm64: name: Photon OS 3 Arm64 Test @@ -1763,7 +1706,6 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} workflow-slug: ci default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" photonos-4: name: Photon OS 4 Test @@ -1785,7 +1727,6 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} workflow-slug: ci default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true photonos-4-arm64: @@ -1808,7 +1749,6 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} workflow-slug: ci default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true photonos-5: @@ -1831,7 +1771,6 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} workflow-slug: ci default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true photonos-5-arm64: @@ -1854,7 +1793,6 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} workflow-slug: ci default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true ubuntu-2004: @@ -1877,7 +1815,6 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} workflow-slug: ci default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" ubuntu-2004-arm64: name: Ubuntu 20.04 Arm64 Test @@ -1899,7 +1836,6 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} workflow-slug: ci default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" ubuntu-2204: name: Ubuntu 22.04 Test @@ -1921,7 +1857,6 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} workflow-slug: ci default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" ubuntu-2204-arm64: name: Ubuntu 22.04 Arm64 Test @@ -1943,7 +1878,6 @@ jobs: skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} workflow-slug: ci default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" combine-all-code-coverage: name: Combine Code Coverage diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 6c61010f339..e30e34da6b9 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -562,7 +562,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" amazonlinux-2-arm64-pkg-tests: name: Amazon Linux 2 Arm64 Package Test @@ -584,7 +583,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" amazonlinux-2023-pkg-tests: name: Amazon Linux 2023 Package Test @@ -606,7 +604,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" amazonlinux-2023-arm64-pkg-tests: name: Amazon Linux 2023 Arm64 Package Test @@ -628,7 +625,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" centos-7-pkg-tests: name: CentOS 7 Package Test @@ -650,7 +646,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" centosstream-8-pkg-tests: name: CentOS Stream 8 Package Test @@ -672,7 +667,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" centosstream-9-pkg-tests: name: CentOS Stream 9 Package Test @@ -694,7 +688,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" centosstream-9-arm64-pkg-tests: name: CentOS Stream 9 Arm64 Package Test @@ -716,7 +709,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-10-pkg-tests: name: Debian 10 Package Test @@ -738,7 +730,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-11-pkg-tests: name: Debian 11 Package Test @@ -760,7 +751,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-11-arm64-pkg-tests: name: Debian 11 Arm64 Package Test @@ -782,7 +772,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-12-pkg-tests: name: Debian 12 Package Test @@ -804,7 +793,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-12-arm64-pkg-tests: name: Debian 12 Arm64 Package Test @@ -826,7 +814,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" photonos-3-pkg-tests: name: Photon OS 3 Package Test @@ -848,7 +835,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" photonos-3-arm64-pkg-tests: name: Photon OS 3 Arm64 Package Test @@ -870,7 +856,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" photonos-4-pkg-tests: name: Photon OS 4 Package Test @@ -892,7 +877,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true photonos-4-arm64-pkg-tests: @@ -915,7 +899,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true photonos-5-pkg-tests: @@ -938,7 +921,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true photonos-5-arm64-pkg-tests: @@ -961,7 +943,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true ubuntu-2004-pkg-tests: @@ -984,7 +965,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" ubuntu-2004-arm64-pkg-tests: name: Ubuntu 20.04 Arm64 Package Test @@ -1006,7 +986,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" ubuntu-2204-pkg-tests: name: Ubuntu 22.04 Package Test @@ -1028,7 +1007,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" ubuntu-2204-arm64-pkg-tests: name: Ubuntu 22.04 Arm64 Package Test @@ -1050,7 +1028,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" macos-12-pkg-tests: name: macOS 12 Package Test @@ -1072,7 +1049,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" macos-13-pkg-tests: name: macOS 13 Package Test @@ -1094,7 +1070,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" macos-13-xlarge-pkg-tests: name: macOS 13 Arm64 Package Test @@ -1116,7 +1091,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2016-nsis-pkg-tests: name: Windows 2016 NSIS Package Test @@ -1138,7 +1112,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2016-msi-pkg-tests: name: Windows 2016 MSI Package Test @@ -1160,7 +1133,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2019-nsis-pkg-tests: name: Windows 2019 NSIS Package Test @@ -1182,7 +1154,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2019-msi-pkg-tests: name: Windows 2019 MSI Package Test @@ -1204,7 +1175,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2022-nsis-pkg-tests: name: Windows 2022 NSIS Package Test @@ -1226,7 +1196,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2022-msi-pkg-tests: name: Windows 2022 MSI Package Test @@ -1248,7 +1217,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2016: name: Windows 2016 Test @@ -1270,7 +1238,6 @@ jobs: skip-code-coverage: false workflow-slug: nightly default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2019: name: Windows 2019 Test @@ -1292,7 +1259,6 @@ jobs: skip-code-coverage: false workflow-slug: nightly default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2022: name: Windows 2022 Test @@ -1314,7 +1280,6 @@ jobs: skip-code-coverage: false workflow-slug: nightly default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" macos-12: name: macOS 12 Test @@ -1336,7 +1301,6 @@ jobs: skip-code-coverage: false workflow-slug: nightly default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" macos-13: name: macOS 13 Test @@ -1358,7 +1322,6 @@ jobs: skip-code-coverage: false workflow-slug: nightly default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" macos-13-xlarge: name: macOS 13 Arm64 Test @@ -1380,7 +1343,6 @@ jobs: skip-code-coverage: false workflow-slug: nightly default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" almalinux-8: name: Alma Linux 8 Test @@ -1402,7 +1364,6 @@ jobs: skip-code-coverage: false workflow-slug: nightly default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" almalinux-9: name: Alma Linux 9 Test @@ -1424,7 +1385,6 @@ jobs: skip-code-coverage: false workflow-slug: nightly default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" amazonlinux-2: name: Amazon Linux 2 Test @@ -1446,7 +1406,6 @@ jobs: skip-code-coverage: false workflow-slug: nightly default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" amazonlinux-2-arm64: name: Amazon Linux 2 Arm64 Test @@ -1468,7 +1427,6 @@ jobs: skip-code-coverage: false workflow-slug: nightly default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" amazonlinux-2023: name: Amazon Linux 2023 Test @@ -1490,7 +1448,6 @@ jobs: skip-code-coverage: false workflow-slug: nightly default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" amazonlinux-2023-arm64: name: Amazon Linux 2023 Arm64 Test @@ -1512,7 +1469,6 @@ jobs: skip-code-coverage: false workflow-slug: nightly default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" archlinux-lts: name: Arch Linux LTS Test @@ -1534,7 +1490,6 @@ jobs: skip-code-coverage: false workflow-slug: nightly default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" centos-7: name: CentOS 7 Test @@ -1556,7 +1511,6 @@ jobs: skip-code-coverage: false workflow-slug: nightly default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" centosstream-8: name: CentOS Stream 8 Test @@ -1578,7 +1532,6 @@ jobs: skip-code-coverage: false workflow-slug: nightly default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" centosstream-9: name: CentOS Stream 9 Test @@ -1600,7 +1553,6 @@ jobs: skip-code-coverage: false workflow-slug: nightly default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-10: name: Debian 10 Test @@ -1622,7 +1574,6 @@ jobs: skip-code-coverage: false workflow-slug: nightly default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-11: name: Debian 11 Test @@ -1644,7 +1595,6 @@ jobs: skip-code-coverage: false workflow-slug: nightly default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-11-arm64: name: Debian 11 Arm64 Test @@ -1666,7 +1616,6 @@ jobs: skip-code-coverage: false workflow-slug: nightly default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-12: name: Debian 12 Test @@ -1688,7 +1637,6 @@ jobs: skip-code-coverage: false workflow-slug: nightly default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-12-arm64: name: Debian 12 Arm64 Test @@ -1710,7 +1658,6 @@ jobs: skip-code-coverage: false workflow-slug: nightly default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fedora-37: name: Fedora 37 Test @@ -1732,7 +1679,6 @@ jobs: skip-code-coverage: false workflow-slug: nightly default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fedora-38: name: Fedora 38 Test @@ -1754,7 +1700,6 @@ jobs: skip-code-coverage: false workflow-slug: nightly default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" opensuse-15: name: Opensuse 15 Test @@ -1776,7 +1721,6 @@ jobs: skip-code-coverage: false workflow-slug: nightly default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" photonos-3: name: Photon OS 3 Test @@ -1798,7 +1742,6 @@ jobs: skip-code-coverage: false workflow-slug: nightly default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" photonos-3-arm64: name: Photon OS 3 Arm64 Test @@ -1820,7 +1763,6 @@ jobs: skip-code-coverage: false workflow-slug: nightly default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" photonos-4: name: Photon OS 4 Test @@ -1842,7 +1784,6 @@ jobs: skip-code-coverage: false workflow-slug: nightly default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true photonos-4-arm64: @@ -1865,7 +1806,6 @@ jobs: skip-code-coverage: false workflow-slug: nightly default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true photonos-5: @@ -1888,7 +1828,6 @@ jobs: skip-code-coverage: false workflow-slug: nightly default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true photonos-5-arm64: @@ -1911,7 +1850,6 @@ jobs: skip-code-coverage: false workflow-slug: nightly default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true ubuntu-2004: @@ -1934,7 +1872,6 @@ jobs: skip-code-coverage: false workflow-slug: nightly default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" ubuntu-2004-arm64: name: Ubuntu 20.04 Arm64 Test @@ -1956,7 +1893,6 @@ jobs: skip-code-coverage: false workflow-slug: nightly default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" ubuntu-2204: name: Ubuntu 22.04 Test @@ -1978,7 +1914,6 @@ jobs: skip-code-coverage: false workflow-slug: nightly default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" ubuntu-2204-arm64: name: Ubuntu 22.04 Arm64 Test @@ -2000,7 +1935,6 @@ jobs: skip-code-coverage: false workflow-slug: nightly default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" combine-all-code-coverage: name: Combine Code Coverage diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b2f738ab900..0f46f541cad 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -264,7 +264,6 @@ jobs: python-version: "3.10" skip-code-coverage: true latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" secrets: inherit release: diff --git a/.github/workflows/scheduled.yml b/.github/workflows/scheduled.yml index fce0cda7865..ebc9ff59aea 100644 --- a/.github/workflows/scheduled.yml +++ b/.github/workflows/scheduled.yml @@ -539,7 +539,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" amazonlinux-2-arm64-pkg-tests: name: Amazon Linux 2 Arm64 Package Test @@ -561,7 +560,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" amazonlinux-2023-pkg-tests: name: Amazon Linux 2023 Package Test @@ -583,7 +581,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" amazonlinux-2023-arm64-pkg-tests: name: Amazon Linux 2023 Arm64 Package Test @@ -605,7 +602,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" centos-7-pkg-tests: name: CentOS 7 Package Test @@ -627,7 +623,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" centosstream-8-pkg-tests: name: CentOS Stream 8 Package Test @@ -649,7 +644,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" centosstream-9-pkg-tests: name: CentOS Stream 9 Package Test @@ -671,7 +665,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" centosstream-9-arm64-pkg-tests: name: CentOS Stream 9 Arm64 Package Test @@ -693,7 +686,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-10-pkg-tests: name: Debian 10 Package Test @@ -715,7 +707,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-11-pkg-tests: name: Debian 11 Package Test @@ -737,7 +728,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-11-arm64-pkg-tests: name: Debian 11 Arm64 Package Test @@ -759,7 +749,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-12-pkg-tests: name: Debian 12 Package Test @@ -781,7 +770,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-12-arm64-pkg-tests: name: Debian 12 Arm64 Package Test @@ -803,7 +791,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" photonos-3-pkg-tests: name: Photon OS 3 Package Test @@ -825,7 +812,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" photonos-3-arm64-pkg-tests: name: Photon OS 3 Arm64 Package Test @@ -847,7 +833,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" photonos-4-pkg-tests: name: Photon OS 4 Package Test @@ -869,7 +854,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true photonos-4-arm64-pkg-tests: @@ -892,7 +876,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true photonos-5-pkg-tests: @@ -915,7 +898,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true photonos-5-arm64-pkg-tests: @@ -938,7 +920,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true ubuntu-2004-pkg-tests: @@ -961,7 +942,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" ubuntu-2004-arm64-pkg-tests: name: Ubuntu 20.04 Arm64 Package Test @@ -983,7 +963,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" ubuntu-2204-pkg-tests: name: Ubuntu 22.04 Package Test @@ -1005,7 +984,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" ubuntu-2204-arm64-pkg-tests: name: Ubuntu 22.04 Arm64 Package Test @@ -1027,7 +1005,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" macos-12-pkg-tests: name: macOS 12 Package Test @@ -1049,7 +1026,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" macos-13-pkg-tests: name: macOS 13 Package Test @@ -1071,7 +1047,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" macos-13-xlarge-pkg-tests: name: macOS 13 Arm64 Package Test @@ -1093,7 +1068,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2016-nsis-pkg-tests: name: Windows 2016 NSIS Package Test @@ -1115,7 +1089,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2016-msi-pkg-tests: name: Windows 2016 MSI Package Test @@ -1137,7 +1110,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2019-nsis-pkg-tests: name: Windows 2019 NSIS Package Test @@ -1159,7 +1131,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2019-msi-pkg-tests: name: Windows 2019 MSI Package Test @@ -1181,7 +1152,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2022-nsis-pkg-tests: name: Windows 2022 NSIS Package Test @@ -1203,7 +1173,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2022-msi-pkg-tests: name: Windows 2022 MSI Package Test @@ -1225,7 +1194,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: false testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2016: name: Windows 2016 Test @@ -1247,7 +1215,6 @@ jobs: skip-code-coverage: false workflow-slug: scheduled default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2019: name: Windows 2019 Test @@ -1269,7 +1236,6 @@ jobs: skip-code-coverage: false workflow-slug: scheduled default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2022: name: Windows 2022 Test @@ -1291,7 +1257,6 @@ jobs: skip-code-coverage: false workflow-slug: scheduled default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" macos-12: name: macOS 12 Test @@ -1313,7 +1278,6 @@ jobs: skip-code-coverage: false workflow-slug: scheduled default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" macos-13: name: macOS 13 Test @@ -1335,7 +1299,6 @@ jobs: skip-code-coverage: false workflow-slug: scheduled default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" macos-13-xlarge: name: macOS 13 Arm64 Test @@ -1357,7 +1320,6 @@ jobs: skip-code-coverage: false workflow-slug: scheduled default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" almalinux-8: name: Alma Linux 8 Test @@ -1379,7 +1341,6 @@ jobs: skip-code-coverage: false workflow-slug: scheduled default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" almalinux-9: name: Alma Linux 9 Test @@ -1401,7 +1362,6 @@ jobs: skip-code-coverage: false workflow-slug: scheduled default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" amazonlinux-2: name: Amazon Linux 2 Test @@ -1423,7 +1383,6 @@ jobs: skip-code-coverage: false workflow-slug: scheduled default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" amazonlinux-2-arm64: name: Amazon Linux 2 Arm64 Test @@ -1445,7 +1404,6 @@ jobs: skip-code-coverage: false workflow-slug: scheduled default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" amazonlinux-2023: name: Amazon Linux 2023 Test @@ -1467,7 +1425,6 @@ jobs: skip-code-coverage: false workflow-slug: scheduled default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" amazonlinux-2023-arm64: name: Amazon Linux 2023 Arm64 Test @@ -1489,7 +1446,6 @@ jobs: skip-code-coverage: false workflow-slug: scheduled default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" archlinux-lts: name: Arch Linux LTS Test @@ -1511,7 +1467,6 @@ jobs: skip-code-coverage: false workflow-slug: scheduled default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" centos-7: name: CentOS 7 Test @@ -1533,7 +1488,6 @@ jobs: skip-code-coverage: false workflow-slug: scheduled default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" centosstream-8: name: CentOS Stream 8 Test @@ -1555,7 +1509,6 @@ jobs: skip-code-coverage: false workflow-slug: scheduled default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" centosstream-9: name: CentOS Stream 9 Test @@ -1577,7 +1530,6 @@ jobs: skip-code-coverage: false workflow-slug: scheduled default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-10: name: Debian 10 Test @@ -1599,7 +1551,6 @@ jobs: skip-code-coverage: false workflow-slug: scheduled default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-11: name: Debian 11 Test @@ -1621,7 +1572,6 @@ jobs: skip-code-coverage: false workflow-slug: scheduled default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-11-arm64: name: Debian 11 Arm64 Test @@ -1643,7 +1593,6 @@ jobs: skip-code-coverage: false workflow-slug: scheduled default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-12: name: Debian 12 Test @@ -1665,7 +1614,6 @@ jobs: skip-code-coverage: false workflow-slug: scheduled default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-12-arm64: name: Debian 12 Arm64 Test @@ -1687,7 +1635,6 @@ jobs: skip-code-coverage: false workflow-slug: scheduled default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fedora-37: name: Fedora 37 Test @@ -1709,7 +1656,6 @@ jobs: skip-code-coverage: false workflow-slug: scheduled default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fedora-38: name: Fedora 38 Test @@ -1731,7 +1677,6 @@ jobs: skip-code-coverage: false workflow-slug: scheduled default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" opensuse-15: name: Opensuse 15 Test @@ -1753,7 +1698,6 @@ jobs: skip-code-coverage: false workflow-slug: scheduled default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" photonos-3: name: Photon OS 3 Test @@ -1775,7 +1719,6 @@ jobs: skip-code-coverage: false workflow-slug: scheduled default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" photonos-3-arm64: name: Photon OS 3 Arm64 Test @@ -1797,7 +1740,6 @@ jobs: skip-code-coverage: false workflow-slug: scheduled default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" photonos-4: name: Photon OS 4 Test @@ -1819,7 +1761,6 @@ jobs: skip-code-coverage: false workflow-slug: scheduled default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true photonos-4-arm64: @@ -1842,7 +1783,6 @@ jobs: skip-code-coverage: false workflow-slug: scheduled default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true photonos-5: @@ -1865,7 +1805,6 @@ jobs: skip-code-coverage: false workflow-slug: scheduled default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true photonos-5-arm64: @@ -1888,7 +1827,6 @@ jobs: skip-code-coverage: false workflow-slug: scheduled default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true ubuntu-2004: @@ -1911,7 +1849,6 @@ jobs: skip-code-coverage: false workflow-slug: scheduled default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" ubuntu-2004-arm64: name: Ubuntu 20.04 Arm64 Test @@ -1933,7 +1870,6 @@ jobs: skip-code-coverage: false workflow-slug: scheduled default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" ubuntu-2204: name: Ubuntu 22.04 Test @@ -1955,7 +1891,6 @@ jobs: skip-code-coverage: false workflow-slug: scheduled default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" ubuntu-2204-arm64: name: Ubuntu 22.04 Arm64 Test @@ -1977,7 +1912,6 @@ jobs: skip-code-coverage: false workflow-slug: scheduled default-timeout: 360 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" combine-all-code-coverage: name: Combine Code Coverage diff --git a/.github/workflows/staging.yml b/.github/workflows/staging.yml index 28afc26a243..046366d3f0f 100644 --- a/.github/workflows/staging.yml +++ b/.github/workflows/staging.yml @@ -552,7 +552,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" amazonlinux-2-arm64-pkg-tests: name: Amazon Linux 2 Arm64 Package Test @@ -574,7 +573,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" amazonlinux-2023-pkg-tests: name: Amazon Linux 2023 Package Test @@ -596,7 +594,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" amazonlinux-2023-arm64-pkg-tests: name: Amazon Linux 2023 Arm64 Package Test @@ -618,7 +615,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" centos-7-pkg-tests: name: CentOS 7 Package Test @@ -640,7 +636,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" centosstream-8-pkg-tests: name: CentOS Stream 8 Package Test @@ -662,7 +657,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" centosstream-9-pkg-tests: name: CentOS Stream 9 Package Test @@ -684,7 +678,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" centosstream-9-arm64-pkg-tests: name: CentOS Stream 9 Arm64 Package Test @@ -706,7 +699,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-10-pkg-tests: name: Debian 10 Package Test @@ -728,7 +720,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-11-pkg-tests: name: Debian 11 Package Test @@ -750,7 +741,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-11-arm64-pkg-tests: name: Debian 11 Arm64 Package Test @@ -772,7 +762,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-12-pkg-tests: name: Debian 12 Package Test @@ -794,7 +783,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-12-arm64-pkg-tests: name: Debian 12 Arm64 Package Test @@ -816,7 +804,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" photonos-3-pkg-tests: name: Photon OS 3 Package Test @@ -838,7 +825,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" photonos-3-arm64-pkg-tests: name: Photon OS 3 Arm64 Package Test @@ -860,7 +846,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" photonos-4-pkg-tests: name: Photon OS 4 Package Test @@ -882,7 +867,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true photonos-4-arm64-pkg-tests: @@ -905,7 +889,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true photonos-5-pkg-tests: @@ -928,7 +911,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true photonos-5-arm64-pkg-tests: @@ -951,7 +933,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true ubuntu-2004-pkg-tests: @@ -974,7 +955,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" ubuntu-2004-arm64-pkg-tests: name: Ubuntu 20.04 Arm64 Package Test @@ -996,7 +976,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" ubuntu-2204-pkg-tests: name: Ubuntu 22.04 Package Test @@ -1018,7 +997,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" ubuntu-2204-arm64-pkg-tests: name: Ubuntu 22.04 Arm64 Package Test @@ -1040,7 +1018,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" macos-12-pkg-tests: name: macOS 12 Package Test @@ -1062,7 +1039,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" macos-13-pkg-tests: name: macOS 13 Package Test @@ -1084,7 +1060,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" macos-13-xlarge-pkg-tests: name: macOS 13 Arm64 Package Test @@ -1106,7 +1081,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2016-nsis-pkg-tests: name: Windows 2016 NSIS Package Test @@ -1128,7 +1102,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2016-msi-pkg-tests: name: Windows 2016 MSI Package Test @@ -1150,7 +1123,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2019-nsis-pkg-tests: name: Windows 2019 NSIS Package Test @@ -1172,7 +1144,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2019-msi-pkg-tests: name: Windows 2019 MSI Package Test @@ -1194,7 +1165,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2022-nsis-pkg-tests: name: Windows 2022 NSIS Package Test @@ -1216,7 +1186,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2022-msi-pkg-tests: name: Windows 2022 MSI Package Test @@ -1238,7 +1207,6 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.13 skip-code-coverage: true testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2016: name: Windows 2016 Test @@ -1260,7 +1228,6 @@ jobs: skip-code-coverage: true workflow-slug: staging default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2019: name: Windows 2019 Test @@ -1282,7 +1249,6 @@ jobs: skip-code-coverage: true workflow-slug: staging default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" windows-2022: name: Windows 2022 Test @@ -1304,7 +1270,6 @@ jobs: skip-code-coverage: true workflow-slug: staging default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" macos-12: name: macOS 12 Test @@ -1326,7 +1291,6 @@ jobs: skip-code-coverage: true workflow-slug: staging default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" macos-13: name: macOS 13 Test @@ -1348,7 +1312,6 @@ jobs: skip-code-coverage: true workflow-slug: staging default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" macos-13-xlarge: name: macOS 13 Arm64 Test @@ -1370,7 +1333,6 @@ jobs: skip-code-coverage: true workflow-slug: staging default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" almalinux-8: name: Alma Linux 8 Test @@ -1392,7 +1354,6 @@ jobs: skip-code-coverage: true workflow-slug: staging default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" almalinux-9: name: Alma Linux 9 Test @@ -1414,7 +1375,6 @@ jobs: skip-code-coverage: true workflow-slug: staging default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" amazonlinux-2: name: Amazon Linux 2 Test @@ -1436,7 +1396,6 @@ jobs: skip-code-coverage: true workflow-slug: staging default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" amazonlinux-2-arm64: name: Amazon Linux 2 Arm64 Test @@ -1458,7 +1417,6 @@ jobs: skip-code-coverage: true workflow-slug: staging default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" amazonlinux-2023: name: Amazon Linux 2023 Test @@ -1480,7 +1438,6 @@ jobs: skip-code-coverage: true workflow-slug: staging default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" amazonlinux-2023-arm64: name: Amazon Linux 2023 Arm64 Test @@ -1502,7 +1459,6 @@ jobs: skip-code-coverage: true workflow-slug: staging default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" archlinux-lts: name: Arch Linux LTS Test @@ -1524,7 +1480,6 @@ jobs: skip-code-coverage: true workflow-slug: staging default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" centos-7: name: CentOS 7 Test @@ -1546,7 +1501,6 @@ jobs: skip-code-coverage: true workflow-slug: staging default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" centosstream-8: name: CentOS Stream 8 Test @@ -1568,7 +1522,6 @@ jobs: skip-code-coverage: true workflow-slug: staging default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" centosstream-9: name: CentOS Stream 9 Test @@ -1590,7 +1543,6 @@ jobs: skip-code-coverage: true workflow-slug: staging default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-10: name: Debian 10 Test @@ -1612,7 +1564,6 @@ jobs: skip-code-coverage: true workflow-slug: staging default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-11: name: Debian 11 Test @@ -1634,7 +1585,6 @@ jobs: skip-code-coverage: true workflow-slug: staging default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-11-arm64: name: Debian 11 Arm64 Test @@ -1656,7 +1606,6 @@ jobs: skip-code-coverage: true workflow-slug: staging default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-12: name: Debian 12 Test @@ -1678,7 +1627,6 @@ jobs: skip-code-coverage: true workflow-slug: staging default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" debian-12-arm64: name: Debian 12 Arm64 Test @@ -1700,7 +1648,6 @@ jobs: skip-code-coverage: true workflow-slug: staging default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fedora-37: name: Fedora 37 Test @@ -1722,7 +1669,6 @@ jobs: skip-code-coverage: true workflow-slug: staging default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fedora-38: name: Fedora 38 Test @@ -1744,7 +1690,6 @@ jobs: skip-code-coverage: true workflow-slug: staging default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" opensuse-15: name: Opensuse 15 Test @@ -1766,7 +1711,6 @@ jobs: skip-code-coverage: true workflow-slug: staging default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" photonos-3: name: Photon OS 3 Test @@ -1788,7 +1732,6 @@ jobs: skip-code-coverage: true workflow-slug: staging default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" photonos-3-arm64: name: Photon OS 3 Arm64 Test @@ -1810,7 +1753,6 @@ jobs: skip-code-coverage: true workflow-slug: staging default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" photonos-4: name: Photon OS 4 Test @@ -1832,7 +1774,6 @@ jobs: skip-code-coverage: true workflow-slug: staging default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true photonos-4-arm64: @@ -1855,7 +1796,6 @@ jobs: skip-code-coverage: true workflow-slug: staging default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true photonos-5: @@ -1878,7 +1818,6 @@ jobs: skip-code-coverage: true workflow-slug: staging default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true photonos-5-arm64: @@ -1901,7 +1840,6 @@ jobs: skip-code-coverage: true workflow-slug: staging default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" fips: true ubuntu-2004: @@ -1924,7 +1862,6 @@ jobs: skip-code-coverage: true workflow-slug: staging default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" ubuntu-2004-arm64: name: Ubuntu 20.04 Arm64 Test @@ -1946,7 +1883,6 @@ jobs: skip-code-coverage: true workflow-slug: staging default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" ubuntu-2204: name: Ubuntu 22.04 Test @@ -1968,7 +1904,6 @@ jobs: skip-code-coverage: true workflow-slug: staging default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" ubuntu-2204-arm64: name: Ubuntu 22.04 Arm64 Test @@ -1990,7 +1925,6 @@ jobs: skip-code-coverage: true workflow-slug: staging default-timeout: 180 - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" build-src-repo: name: Build Repository @@ -2903,7 +2837,6 @@ jobs: python-version: "3.10" skip-code-coverage: true latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" secrets: inherit publish-pypi: diff --git a/.github/workflows/templates/build-deps-ci-action.yml.jinja b/.github/workflows/templates/build-deps-ci-action.yml.jinja index 100edcab7c4..c8c98d11300 100644 --- a/.github/workflows/templates/build-deps-ci-action.yml.jinja +++ b/.github/workflows/templates/build-deps-ci-action.yml.jinja @@ -152,7 +152,7 @@ jobs: tools --timestamps vm destroy --no-wait ${{ matrix.distro-slug }} - name: Upload Nox Requirements Tarball - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: nox-linux-${{ matrix.arch }}-${{ inputs.nox-session }} path: nox.linux.${{ matrix.arch }}.tar.* @@ -240,7 +240,7 @@ jobs: nox --force-color -e compress-dependencies -- macos ${{ matrix.arch }} - name: Upload Nox Requirements Tarball - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: nox-macos-${{ matrix.arch }}-${{ inputs.nox-session }} path: nox.macos.${{ matrix.arch }}.tar.* @@ -352,7 +352,7 @@ jobs: tools --timestamps vm destroy --no-wait ${{ matrix.distro-slug }} - name: Upload Nox Requirements Tarball - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: nox-windows-${{ matrix.arch }}-${{ inputs.nox-session }} path: nox.windows.${{ matrix.arch }}.tar.* diff --git a/.github/workflows/templates/test-package-downloads-action.yml.jinja b/.github/workflows/templates/test-package-downloads-action.yml.jinja index 5fe5d927d20..cdaf37cbfc4 100644 --- a/.github/workflows/templates/test-package-downloads-action.yml.jinja +++ b/.github/workflows/templates/test-package-downloads-action.yml.jinja @@ -23,10 +23,6 @@ on: required: true type: string description: The nox version to install - nox-archive-hash: - required: true - type: string - description: Nox Tarball Cache Hash python-version: required: false type: string @@ -98,13 +94,10 @@ jobs: cd artifacts tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-linux-${{ matrix.arch }}.tar.xz - - name: Download cached nox.linux.${{ matrix.arch }}.tar.* for session ${{ inputs.nox-session }} - uses: actions/cache@v3.3.1 + - name: Download nox.linux.${{ matrix.arch }}.tar.* artifact for session ${{ inputs.nox-session }} + uses: actions/download-artifact@v4 with: - path: nox.linux.${{ matrix.arch }}.tar.* - key: ${{ inputs.cache-prefix }}|testrun-deps|${{ matrix.arch }}|linux|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ inputs.nox-archive-hash }} - # If we get a cache miss here it means the dependencies step failed to save the cache - fail-on-cache-miss: true + name: nox-linux-${{ matrix.arch }}-${{ inputs.nox-session }} - name: Setup Python Tools Scripts uses: ./.github/actions/setup-python-tools-scripts @@ -335,13 +328,10 @@ jobs: run: | python3 -m pip install 'nox==${{ inputs.nox-version }}' - - name: Download cached nox.macos.${{ matrix.arch }}.tar.* for session ${{ inputs.nox-session }} - uses: actions/cache@v3.3.1 + - name: Download nox.macos.${{ matrix.arch }}.tar.* artifact for session ${{ inputs.nox-session }} + uses: actions/download-artifact@v4 with: - path: nox.macos.${{ matrix.arch }}.tar.* - key: ${{ inputs.cache-prefix }}|testrun-deps|${{ matrix.arch }}|macos|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ inputs.nox-archive-hash }} - # If we get a cache miss here it means the dependencies step failed to save the cache - fail-on-cache-miss: true + name: nox-macos-${{ matrix.arch }}-${{ inputs.nox-session }} - name: Decompress .nox Directory run: | @@ -527,13 +517,10 @@ jobs: cd artifacts tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-windows-${{ matrix.arch }}.tar.xz - - name: Download cached nox.windows.${{ matrix.arch }}.tar.* for session ${{ inputs.nox-session }} - uses: actions/cache@v3.3.1 + - name: Download nox.windows.${{ matrix.arch }}.tar.* artifact for session ${{ inputs.nox-session }} + uses: actions/download-artifact@v4 with: - path: nox.windows.${{ matrix.arch }}.tar.* - key: ${{ inputs.cache-prefix }}|testrun-deps|${{ matrix.arch }}|windows|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ inputs.nox-archive-hash }} - # If we get a cache miss here it means the dependencies step failed to save the cache - fail-on-cache-miss: true + name: nox-windows-${{ matrix.arch }}-${{ inputs.nox-session }} - name: Setup Python Tools Scripts uses: ./.github/actions/setup-python-tools-scripts diff --git a/.github/workflows/templates/test-salt-pkg-repo-downloads.yml.jinja b/.github/workflows/templates/test-salt-pkg-repo-downloads.yml.jinja index 0373787a47c..d28614620db 100644 --- a/.github/workflows/templates/test-salt-pkg-repo-downloads.yml.jinja +++ b/.github/workflows/templates/test-salt-pkg-repo-downloads.yml.jinja @@ -31,5 +31,4 @@ python-version: "<{ gh_actions_workflows_python_version }>" skip-code-coverage: true latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" secrets: inherit diff --git a/.github/workflows/templates/test-salt-pkg.yml.jinja b/.github/workflows/templates/test-salt-pkg.yml.jinja index f51108c8287..be07a1e6bca 100644 --- a/.github/workflows/templates/test-salt-pkg.yml.jinja +++ b/.github/workflows/templates/test-salt-pkg.yml.jinja @@ -22,7 +22,6 @@ cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|<{ python_version }> skip-code-coverage: <{ skip_test_coverage_check }> testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" <%- if fips == "fips" %> fips: true <%- endif %> @@ -55,7 +54,6 @@ cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|<{ python_version }> skip-code-coverage: <{ skip_test_coverage_check }> testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" <%- endfor %> @@ -85,7 +83,6 @@ cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|<{ python_version }> skip-code-coverage: <{ skip_test_coverage_check }> testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" <%- endfor %> <%- endfor %> diff --git a/.github/workflows/templates/test-salt.yml.jinja b/.github/workflows/templates/test-salt.yml.jinja index d15c9f4623b..e35e363156a 100644 --- a/.github/workflows/templates/test-salt.yml.jinja +++ b/.github/workflows/templates/test-salt.yml.jinja @@ -27,7 +27,6 @@ skip-code-coverage: <{ skip_test_coverage_check }> workflow-slug: <{ workflow_slug }> default-timeout: <{ timeout_value }> - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" <%- endfor %> @@ -55,7 +54,6 @@ skip-code-coverage: <{ skip_test_coverage_check }> workflow-slug: <{ workflow_slug }> default-timeout: <{ timeout_value }> - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" <%- endfor %> @@ -82,7 +80,6 @@ skip-code-coverage: <{ skip_test_coverage_check }> workflow-slug: <{ workflow_slug }> default-timeout: <{ timeout_value }> - nox-archive-hash: "${{ needs.prepare-workflow.outputs.nox-archive-hash }}" <%- if fips == "fips" %> fips: true <%- endif %> diff --git a/.github/workflows/test-action-linux.yml b/.github/workflows/test-action-linux.yml index 955f2d6629c..94216969667 100644 --- a/.github/workflows/test-action-linux.yml +++ b/.github/workflows/test-action-linux.yml @@ -36,10 +36,6 @@ on: required: true type: string description: The nox version to install - nox-archive-hash: - required: true - type: string - description: Nox Tarball Cache Hash gh-actions-python-version: required: false type: string @@ -151,13 +147,10 @@ jobs: cd artifacts tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-${{ inputs.platform }}-${{ inputs.arch }}.tar.xz - - name: Download cached nox.linux.${{ inputs.arch }}.tar.* for session ${{ inputs.nox-session }} - uses: actions/cache@v3.3.1 + - name: Download nox.linux.${{ inputs.arch }}.tar.* artifact for session ${{ inputs.nox-session }} + uses: actions/upload-artifact@v4 with: - path: nox.linux.${{ inputs.arch }}.tar.* - key: ${{ inputs.cache-prefix }}|testrun-deps|${{ inputs.arch }}|linux|${{ inputs.nox-session }}|${{ inputs.gh-actions-python-version }}|${{ inputs.nox-archive-hash }} - # If we get a cache miss here it means the dependencies step failed to save the cache - fail-on-cache-miss: true + name: nox-linux-${{ inputs.arch }}-${{ inputs.nox-session }} - name: PyPi Proxy run: | diff --git a/.github/workflows/test-action-macos.yml b/.github/workflows/test-action-macos.yml index 5b38d1314e7..f2576d9099d 100644 --- a/.github/workflows/test-action-macos.yml +++ b/.github/workflows/test-action-macos.yml @@ -41,10 +41,6 @@ on: required: true type: string description: The nox version to install - nox-archive-hash: - required: true - type: string - description: Nox Tarball Cache Hash package-name: required: false type: string @@ -144,13 +140,10 @@ jobs: run: | brew install tree - - name: Download cached nox.macos.${{ inputs.arch }}.tar.* for session ${{ inputs.nox-session }} - uses: actions/cache@v3.3.1 + - name: Download nox.macos.${{ inputs.arch }}.tar.* artifact for session ${{ inputs.nox-session }} + uses: actions/download-artifact@v4 with: - path: nox.macos.${{ inputs.arch }}.tar.* - key: ${{ inputs.cache-prefix }}|testrun-deps|${{ inputs.arch }}|macos|${{ inputs.nox-session }}|${{ inputs.gh-actions-python-version }}|${{ inputs.nox-archive-hash }} - # If we get a cache miss here it means the dependencies step failed to save the cache - fail-on-cache-miss: true + name: nox-macos-${{ inputs.arch }}-${{ inputs.nox-session }} - name: Set up Python ${{ inputs.gh-actions-python-version }} uses: actions/setup-python@v5 diff --git a/.github/workflows/test-action-windows.yml b/.github/workflows/test-action-windows.yml index b6346d50ca0..68bbda63a33 100644 --- a/.github/workflows/test-action-windows.yml +++ b/.github/workflows/test-action-windows.yml @@ -36,10 +36,6 @@ on: required: true type: string description: The nox version to install - nox-archive-hash: - required: true - type: string - description: Nox Tarball Cache Hash gh-actions-python-version: required: false type: string @@ -151,13 +147,10 @@ jobs: cd artifacts tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-${{ inputs.platform }}-${{ inputs.arch }}.tar.xz - - name: Download cached nox.windows.${{ inputs.arch }}.tar.* for session ${{ inputs.nox-session }} - uses: actions/cache@v3.3.1 + - name: Download nox.windows.${{ inputs.arch }}.tar.* artifact for session ${{ inputs.nox-session }} + uses: actions/download-artifact@v4 with: - path: nox.windows.${{ inputs.arch }}.tar.* - key: ${{ inputs.cache-prefix }}|testrun-deps|${{ inputs.arch }}|windows|${{ inputs.nox-session }}|${{ inputs.gh-actions-python-version }}|${{ inputs.nox-archive-hash }} - # If we get a cache miss here it means the dependencies step failed to save the cache - fail-on-cache-miss: true + name: nox-windows-${{ inputs.arch }}-${{ inputs.nox-session }} - name: PyPi Proxy run: | diff --git a/.github/workflows/test-package-downloads-action.yml b/.github/workflows/test-package-downloads-action.yml index 21093ca3a51..debf5097128 100644 --- a/.github/workflows/test-package-downloads-action.yml +++ b/.github/workflows/test-package-downloads-action.yml @@ -23,10 +23,6 @@ on: required: true type: string description: The nox version to install - nox-archive-hash: - required: true - type: string - description: Nox Tarball Cache Hash python-version: required: false type: string @@ -243,13 +239,10 @@ jobs: cd artifacts tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-linux-${{ matrix.arch }}.tar.xz - - name: Download cached nox.linux.${{ matrix.arch }}.tar.* for session ${{ inputs.nox-session }} - uses: actions/cache@v3.3.1 + - name: Download nox.linux.${{ matrix.arch }}.tar.* artifact for session ${{ inputs.nox-session }} + uses: actions/download-artifact@v4 with: - path: nox.linux.${{ matrix.arch }}.tar.* - key: ${{ inputs.cache-prefix }}|testrun-deps|${{ matrix.arch }}|linux|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ inputs.nox-archive-hash }} - # If we get a cache miss here it means the dependencies step failed to save the cache - fail-on-cache-miss: true + name: nox-linux-${{ matrix.arch }}-${{ inputs.nox-session }} - name: Setup Python Tools Scripts uses: ./.github/actions/setup-python-tools-scripts @@ -487,13 +480,10 @@ jobs: run: | python3 -m pip install 'nox==${{ inputs.nox-version }}' - - name: Download cached nox.macos.${{ matrix.arch }}.tar.* for session ${{ inputs.nox-session }} - uses: actions/cache@v3.3.1 + - name: Download nox.macos.${{ matrix.arch }}.tar.* artifact for session ${{ inputs.nox-session }} + uses: actions/download-artifact@v4 with: - path: nox.macos.${{ matrix.arch }}.tar.* - key: ${{ inputs.cache-prefix }}|testrun-deps|${{ matrix.arch }}|macos|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ inputs.nox-archive-hash }} - # If we get a cache miss here it means the dependencies step failed to save the cache - fail-on-cache-miss: true + name: nox-macos-${{ matrix.arch }}-${{ inputs.nox-session }} - name: Decompress .nox Directory run: | @@ -683,13 +673,10 @@ jobs: cd artifacts tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-windows-${{ matrix.arch }}.tar.xz - - name: Download cached nox.windows.${{ matrix.arch }}.tar.* for session ${{ inputs.nox-session }} - uses: actions/cache@v3.3.1 + - name: Download nox.windows.${{ matrix.arch }}.tar.* artifact for session ${{ inputs.nox-session }} + uses: actions/download-artifact@v4 with: - path: nox.windows.${{ matrix.arch }}.tar.* - key: ${{ inputs.cache-prefix }}|testrun-deps|${{ matrix.arch }}|windows|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ inputs.nox-archive-hash }} - # If we get a cache miss here it means the dependencies step failed to save the cache - fail-on-cache-miss: true + name: nox-windows-${{ matrix.arch }}-${{ inputs.nox-session }} - name: Setup Python Tools Scripts uses: ./.github/actions/setup-python-tools-scripts diff --git a/.github/workflows/test-packages-action-linux.yml b/.github/workflows/test-packages-action-linux.yml index 042f790c072..1757296f8ec 100644 --- a/.github/workflows/test-packages-action-linux.yml +++ b/.github/workflows/test-packages-action-linux.yml @@ -35,10 +35,6 @@ on: required: true type: string description: The nox version to install - nox-archive-hash: - required: true - type: string - description: Nox Tarball Cache Hash python-version: required: false type: string @@ -153,13 +149,10 @@ jobs: run: | tree artifacts/pkg/ - - name: Download cached nox.linux.${{ inputs.arch }}.tar.* for session ${{ inputs.nox-session }} - uses: actions/cache@v3.3.1 + - name: Download nox.linux.${{ inputs.arch }}.tar.* artifact for session ${{ inputs.nox-session }} + uses: actions/download-artifact@v4 with: - path: nox.linux.${{ inputs.arch }}.tar.* - key: ${{ inputs.cache-prefix }}|testrun-deps|${{ inputs.arch }}|linux|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ inputs.nox-archive-hash }} - # If we get a cache miss here it means the dependencies step failed to save the cache - fail-on-cache-miss: true + name: nox-linux-${{ inputs.arch }}-${{ inputs.nox-session }} - name: Setup Python Tools Scripts uses: ./.github/actions/setup-python-tools-scripts diff --git a/.github/workflows/test-packages-action-macos.yml b/.github/workflows/test-packages-action-macos.yml index 95da028d3e3..59abc8f4b10 100644 --- a/.github/workflows/test-packages-action-macos.yml +++ b/.github/workflows/test-packages-action-macos.yml @@ -35,10 +35,6 @@ on: required: true type: string description: The nox version to install - nox-archive-hash: - required: true - type: string - description: Nox Tarball Cache Hash python-version: required: false type: string @@ -155,13 +151,10 @@ jobs: run: | python3 -m pip install 'nox==${{ inputs.nox-version }}' - - name: Download cached nox.macos.${{ inputs.arch }}.tar.* for session ${{ inputs.nox-session }} - uses: actions/cache@v3.3.1 + - name: Download nox.macos.${{ inputs.arch }}.tar.* artifact for session ${{ inputs.nox-session }} + uses: actions/download-artifact@v4 with: - path: nox.macos.${{ inputs.arch }}.tar.* - key: ${{ inputs.cache-prefix }}|testrun-deps|${{ inputs.arch }}|macos|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ inputs.nox-archive-hash }} - # If we get a cache miss here it means the dependencies step failed to save the cache - fail-on-cache-miss: true + name: nox-macos-${{ inputs.arch }}-${{ inputs.nox-session }} - name: Decompress .nox Directory run: | diff --git a/.github/workflows/test-packages-action-windows.yml b/.github/workflows/test-packages-action-windows.yml index dc8c290c9fb..135ca98649b 100644 --- a/.github/workflows/test-packages-action-windows.yml +++ b/.github/workflows/test-packages-action-windows.yml @@ -35,10 +35,6 @@ on: required: true type: string description: The nox version to install - nox-archive-hash: - required: true - type: string - description: Nox Tarball Cache Hash python-version: required: false type: string @@ -153,13 +149,10 @@ jobs: run: | tree artifacts/pkg/ - - name: Download cached nox.windows.${{ inputs.arch }}.tar.* for session ${{ inputs.nox-session }} - uses: actions/cache@v3.3.1 + - name: Download nox.windows.${{ inputs.arch }}.tar.* artifact for session ${{ inputs.nox-session }} + uses: actions/download-artifact@v4 with: - path: nox.windows.${{ inputs.arch }}.tar.* - key: ${{ inputs.cache-prefix }}|testrun-deps|${{ inputs.arch }}|windows|${{ inputs.nox-session }}|${{ inputs.python-version }}|${{ inputs.nox-archive-hash }} - # If we get a cache miss here it means the dependencies step failed to save the cache - fail-on-cache-miss: true + name: nox-windows-${{ inputs.arch }}-${{ inputs.nox-session }} - name: Setup Python Tools Scripts uses: ./.github/actions/setup-python-tools-scripts From f7ebfbc9460f60e82095e96a8296aa85f58e20b6 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Wed, 17 Jan 2024 16:28:59 +0000 Subject: [PATCH 090/146] Switch to `actions/upload-artifact@v4` and `actions/download-artifact@v4` There are breaking changes with this new version. See https://github.blog/changelog/2023-12-14-github-actions-artifacts-v4-is-now-generally-available/ Signed-off-by: Pedro Algarvio --- .github/actions/build-onedir-salt/action.yml | 6 +-- .../actions/build-source-tarball/action.yml | 4 +- .github/actions/download-artifact/action.yml | 2 +- .github/actions/upload-artifact/action.yml | 2 +- .github/workflows/build-deps-ci-action.yml | 6 +-- .github/workflows/build-docs.yml | 4 +- .github/workflows/build-packages.yml | 22 ++++---- .github/workflows/ci.yml | 12 ++--- .github/workflows/nightly.yml | 50 ++++++++--------- .github/workflows/release.yml | 6 +-- .github/workflows/scheduled.yml | 12 ++--- .github/workflows/staging.yml | 54 +++++++++---------- .../templates/build-deb-repo.yml.jinja | 2 +- .../templates/build-deps-ci-action.yml.jinja | 6 +-- .../templates/build-macos-repo.yml.jinja | 4 +- .../templates/build-onedir-repo.yml.jinja | 16 +++--- .../templates/build-rpm-repo.yml.jinja | 2 +- .../templates/build-src-repo.yml.jinja | 4 +- .../templates/build-windows-repo.yml.jinja | 8 +-- .github/workflows/templates/ci.yml.jinja | 10 ++-- .github/workflows/templates/layout.yml.jinja | 2 +- .github/workflows/templates/nightly.yml.jinja | 2 +- .github/workflows/templates/release.yml.jinja | 6 +-- .github/workflows/templates/staging.yml.jinja | 14 ++--- .../test-package-downloads-action.yml.jinja | 12 ++--- .github/workflows/test-action-linux.yml | 14 ++--- .github/workflows/test-action-macos.yml | 14 ++--- .github/workflows/test-action-windows.yml | 14 ++--- .../test-package-downloads-action.yml | 12 ++--- .../workflows/test-packages-action-linux.yml | 8 +-- .../workflows/test-packages-action-macos.yml | 8 +-- .../test-packages-action-windows.yml | 8 +-- .github/workflows/triage.yml | 2 +- 33 files changed, 174 insertions(+), 174 deletions(-) diff --git a/.github/actions/build-onedir-salt/action.yml b/.github/actions/build-onedir-salt/action.yml index 50969bb8aae..6952ccf98e4 100644 --- a/.github/actions/build-onedir-salt/action.yml +++ b/.github/actions/build-onedir-salt/action.yml @@ -58,7 +58,7 @@ runs: }} - name: Download Source Tarball - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ inputs.salt-version }}.tar.gz @@ -91,7 +91,7 @@ runs: tools pkg generate-hashes artifacts/${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-${{ inputs.platform }}-${{ inputs.arch }}.* - name: Upload Onedir Tarball as an Artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-${{ inputs.platform }}-${{ inputs.arch }}.tar.xz path: artifacts/${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-${{ inputs.platform }}-${{ inputs.arch }}.tar.xz* @@ -100,7 +100,7 @@ runs: - name: Upload Onedir Zipfile as an Artifact if: ${{ inputs.platform == 'windows' }} - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-${{ inputs.platform }}-${{ inputs.arch }}.zip path: artifacts/${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-${{ inputs.platform }}-${{ inputs.arch }}.zip* diff --git a/.github/actions/build-source-tarball/action.yml b/.github/actions/build-source-tarball/action.yml index f755951fc60..8c662d8ee8b 100644 --- a/.github/actions/build-source-tarball/action.yml +++ b/.github/actions/build-source-tarball/action.yml @@ -26,7 +26,7 @@ runs: - name: Download Release Patch if: ${{ startsWith(github.event.ref, 'refs/tags') == false }} - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ inputs.salt-version }}.patch @@ -53,7 +53,7 @@ runs: tools pkg generate-hashes dist/salt-${{ inputs.salt-version }}.tar.gz - name: Upload Source Tarball as an Artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: salt-${{ inputs.salt-version }}.tar.gz path: dist/salt-*.tar.gz* diff --git a/.github/actions/download-artifact/action.yml b/.github/actions/download-artifact/action.yml index 5646eb933e2..fd476d5a8fd 100644 --- a/.github/actions/download-artifact/action.yml +++ b/.github/actions/download-artifact/action.yml @@ -23,7 +23,7 @@ inputs: runs: using: composite steps: - - uses: actions/download-artifact@v3 + - uses: actions/download-artifact@v4 with: name: ${{ inputs.name }} path: ${{ inputs.path }} diff --git a/.github/actions/upload-artifact/action.yml b/.github/actions/upload-artifact/action.yml index 4afd8b3ee9b..d1371d134f2 100644 --- a/.github/actions/upload-artifact/action.yml +++ b/.github/actions/upload-artifact/action.yml @@ -45,7 +45,7 @@ runs: shopt -s globstar || echo "'globstar' not available" tar -cavf ${{ inputs.archive-name || inputs.name || 'archive' }}.tar.gz ${{ inputs.path }} - - uses: actions/upload-artifact@v3 + - uses: actions/upload-artifact@v4 with: name: ${{ inputs.name }} path: ${{ inputs.archive-name || inputs.name || 'archive' }}.tar.gz diff --git a/.github/workflows/build-deps-ci-action.yml b/.github/workflows/build-deps-ci-action.yml index e64f6ffff5e..a46dd79f4c5 100644 --- a/.github/workflows/build-deps-ci-action.yml +++ b/.github/workflows/build-deps-ci-action.yml @@ -79,7 +79,7 @@ jobs: - name: Download Onedir Tarball as an Artifact if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-linux-${{ matrix.arch }}.tar.xz path: artifacts/ @@ -188,7 +188,7 @@ jobs: - name: Download Onedir Tarball as an Artifact if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-macos-${{ matrix.arch }}.tar.xz path: artifacts/ @@ -277,7 +277,7 @@ jobs: - name: Download Onedir Tarball as an Artifact if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-windows-${{ matrix.arch }}.tar.xz path: artifacts/ diff --git a/.github/workflows/build-docs.yml b/.github/workflows/build-docs.yml index a2692d7ac1f..365c0bd6aa1 100644 --- a/.github/workflows/build-docs.yml +++ b/.github/workflows/build-docs.yml @@ -40,7 +40,7 @@ jobs: - name: Download Release Patch if: ${{ startsWith(github.event.ref, 'refs/tags') == false }} - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ inputs.salt-version }}.patch @@ -94,7 +94,7 @@ jobs: - name: Upload Built Documentation Artifact(${{ matrix.docs-output }}) if: ${{ steps.build-docs.outputs.has-artifacts == 'true' }} - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ steps.build-docs.outputs.artifact-name }} path: ${{ steps.build-docs.outputs.artifact-path }} diff --git a/.github/workflows/build-packages.yml b/.github/workflows/build-packages.yml index 5cd7d949e6e..65162a3abd6 100644 --- a/.github/workflows/build-packages.yml +++ b/.github/workflows/build-packages.yml @@ -100,7 +100,7 @@ jobs: salt-version: "${{ inputs.salt-version }}" - name: Download Onedir Tarball as an Artifact - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ inputs.salt-version }}-onedir-macos-${{ matrix.arch }}.tar.xz path: artifacts/ @@ -154,7 +154,7 @@ jobs: fi - name: Upload ${{ matrix.arch }} Package - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ steps.set-artifact-name.outputs.artifact-name }} path: pkg/macos/salt-${{ inputs.salt-version }}-py3-*.pkg @@ -191,14 +191,14 @@ jobs: pkgs/checkout/ - name: Download Onedir Tarball as an Artifact - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ inputs.salt-version }}-onedir-linux-${{ matrix.arch }}.tar.xz path: pkgs/checkout/artifacts/ - name: Download Release Patch if: ${{ startsWith(github.event.ref, 'refs/tags') == false }} - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ inputs.salt-version }}.patch path: pkgs/checkout/ @@ -252,7 +252,7 @@ jobs: fi - name: Upload DEBs - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ steps.set-artifact-name.outputs.artifact-name }} path: ${{ github.workspace }}/pkgs/* @@ -281,14 +281,14 @@ jobs: - uses: actions/checkout@v4 - name: Download Onedir Tarball as an Artifact - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ inputs.salt-version }}-onedir-linux-${{ matrix.arch }}.tar.xz path: artifacts/ - name: Download Release Patch if: ${{ startsWith(github.event.ref, 'refs/tags') == false }} - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ inputs.salt-version }}.patch @@ -332,7 +332,7 @@ jobs: fi - name: Upload RPMs - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ steps.set-artifact-name.outputs.artifact-name }} path: ~/rpmbuild/RPMS/${{ matrix.arch == 'arm64' && 'aarch64' || matrix.arch }}/*.rpm @@ -403,7 +403,7 @@ jobs: salt-version: "${{ inputs.salt-version }}" - name: Download Onedir Tarball as an Artifact - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ inputs.salt-version }}-onedir-windows-${{ matrix.arch }}.zip path: artifacts/ @@ -445,7 +445,7 @@ jobs: fi - name: Upload ${{ matrix.arch }} NSIS Packages - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ steps.set-artifact-name.outputs.artifact-name-nsis }} path: pkg/windows/build/Salt-*.exe @@ -453,7 +453,7 @@ jobs: if-no-files-found: error - name: Upload ${{ matrix.arch }} MSI Package - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ steps.set-artifact-name.outputs.artifact-name-msi }} path: pkg/windows/build/Salt-*.msi diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1b722778b1e..f60875f8137 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -237,7 +237,7 @@ jobs: - name: Upload testrun-changed-files.txt if: ${{ fromJSON(steps.define-testrun.outputs.testrun)['type'] != 'full' }} - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: testrun-changed-files.txt path: testrun-changed-files.txt @@ -363,7 +363,7 @@ jobs: git format-patch --keep-subject --binary --stdout HEAD^ > salt-${{ needs.prepare-workflow.outputs.salt-version }}.patch - name: Upload Changes Diff Artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 if: ${{ startsWith(github.event.ref, 'refs/tags') == false }} with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}.patch @@ -1942,7 +1942,7 @@ jobs: - name: Get coverage reports id: get-coverage-reports - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: all-testrun-coverage-artifacts path: artifacts/coverage/ @@ -1990,7 +1990,7 @@ jobs: nox --force-color -e create-html-coverage-report -- salt - name: Upload Salt Code Coverage HTML Report - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: code-coverage-salt-html-report path: artifacts/coverage/html/salt @@ -2006,7 +2006,7 @@ jobs: nox --force-color -e create-json-coverage-reports - name: Upload Combined Code Coverage JSON Report - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: code-coverage-full-json-report path: artifacts/coverage/coverage.json @@ -2018,7 +2018,7 @@ jobs: nox --force-color -e create-html-coverage-report - name: Upload Combined Code Coverage HTML Report - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: code-coverage-full-html-report path: artifacts/coverage/html/full diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index e30e34da6b9..9dc7107a34d 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -281,7 +281,7 @@ jobs: - name: Upload testrun-changed-files.txt if: ${{ fromJSON(steps.define-testrun.outputs.testrun)['type'] != 'full' }} - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: testrun-changed-files.txt path: testrun-changed-files.txt @@ -412,7 +412,7 @@ jobs: git format-patch --keep-subject --binary --stdout HEAD^ > salt-${{ needs.prepare-workflow.outputs.salt-version }}.patch - name: Upload Changes Diff Artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 if: ${{ startsWith(github.event.ref, 'refs/tags') == false }} with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}.patch @@ -1999,7 +1999,7 @@ jobs: - name: Get coverage reports id: get-coverage-reports - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: all-testrun-coverage-artifacts path: artifacts/coverage/ @@ -2047,7 +2047,7 @@ jobs: nox --force-color -e create-html-coverage-report -- salt - name: Upload Salt Code Coverage HTML Report - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: code-coverage-salt-html-report path: artifacts/coverage/html/salt @@ -2063,7 +2063,7 @@ jobs: nox --force-color -e create-json-coverage-reports - name: Upload Combined Code Coverage JSON Report - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: code-coverage-full-json-report path: artifacts/coverage/coverage.json @@ -2075,7 +2075,7 @@ jobs: nox --force-color -e create-html-coverage-report - name: Upload Combined Code Coverage HTML Report - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: code-coverage-full-html-report path: artifacts/coverage/html/full @@ -2113,7 +2113,7 @@ jobs: echo "SPB_ENVIRONMENT=$SPB_ENVIRONMENT" >> "$GITHUB_ENV" - name: Download Source Tarball - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}.tar.gz path: artifacts/pkgs/incoming @@ -2163,7 +2163,7 @@ jobs: find artifacts/pkgs/repo -type f -print -exec cp {} artifacts/src \; - name: Upload Standalone Repository As An Artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-nightly-src-repo path: | @@ -2257,7 +2257,7 @@ jobs: echo "SPB_ENVIRONMENT=$SPB_ENVIRONMENT" >> "$GITHUB_ENV" - name: Download DEB Packages - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-${{ matrix.arch }}-deb path: artifacts/pkgs/incoming @@ -2478,7 +2478,7 @@ jobs: echo "SPB_ENVIRONMENT=$SPB_ENVIRONMENT" >> "$GITHUB_ENV" - name: Download RPM Packages - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-${{ matrix.arch == 'aarch64' && 'arm64' || matrix.arch }}-rpm path: artifacts/pkgs/incoming @@ -2566,25 +2566,25 @@ jobs: echo "SPB_ENVIRONMENT=$SPB_ENVIRONMENT" >> "$GITHUB_ENV" - name: Download Windows NSIS x86 Packages - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-x86-NSIS path: artifacts/pkgs/incoming - name: Download Windows MSI x86 Packages - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-x86-MSI path: artifacts/pkgs/incoming - name: Download Windows NSIS amd64 Packages - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-amd64-NSIS path: artifacts/pkgs/incoming - name: Download Windows MSI amd64 Packages - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-amd64-MSI path: artifacts/pkgs/incoming @@ -2668,13 +2668,13 @@ jobs: echo "SPB_ENVIRONMENT=$SPB_ENVIRONMENT" >> "$GITHUB_ENV" - name: Download macOS x86_64 Packages - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-x86_64-macos path: artifacts/pkgs/incoming - name: Download macOS Arch64 Packages - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-arm64-macos path: artifacts/pkgs/incoming @@ -2758,49 +2758,49 @@ jobs: echo "SPB_ENVIRONMENT=$SPB_ENVIRONMENT" >> "$GITHUB_ENV" - name: Download Linux x86_64 Onedir Archive - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-onedir-linux-x86_64.tar.xz path: artifacts/pkgs/incoming - name: Download Linux arm64 Onedir Archive - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-onedir-linux-arm64.tar.xz path: artifacts/pkgs/incoming - name: Download macOS x86_64 Onedir Archive - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-onedir-macos-x86_64.tar.xz path: artifacts/pkgs/incoming - name: Download macOS arm64 Onedir Archive - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-onedir-macos-arm64.tar.xz path: artifacts/pkgs/incoming - name: Download Windows amd64 Onedir Archive - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-onedir-windows-amd64.tar.xz path: artifacts/pkgs/incoming - name: Download Windows amd64 Onedir Archive(zip) - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-onedir-windows-amd64.zip path: artifacts/pkgs/incoming - name: Download Windows x86 Onedir Archive - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-onedir-windows-x86.tar.xz path: artifacts/pkgs/incoming - name: Download Windows amd64 Onedir Archive(zip) - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-onedir-windows-x86.zip path: artifacts/pkgs/incoming @@ -2920,7 +2920,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }} - name: Download Repository Artifact - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-nightly-repo path: repo/ diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 0f46f541cad..51598e653d2 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -161,7 +161,7 @@ jobs: tools release download-onedir-artifact --platform=${{ matrix.platform }} --arch=${{ matrix.arch }} ${{ inputs.salt-version }} - name: Upload Onedir Tarball as an Artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: salt-${{ inputs.salt-version }}-onedir-${{ matrix.platform }}-${{ matrix.arch }}.tar.xz path: artifacts/salt-${{ inputs.salt-version }}-onedir-${{ matrix.platform }}-${{ matrix.arch }}.tar.xz* @@ -367,7 +367,7 @@ jobs: tag: v${{ needs.prepare-workflow.outputs.salt-version }} - name: Upload PyPi Artifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: pypi-artifacts path: | @@ -420,7 +420,7 @@ jobs: echo "twine-password=$TWINE_PASSWORD" >> "${GITHUB_OUTPUT}" - name: Download PyPi Artifacts - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: pypi-artifacts path: artifacts/release diff --git a/.github/workflows/scheduled.yml b/.github/workflows/scheduled.yml index ebc9ff59aea..0ba44094811 100644 --- a/.github/workflows/scheduled.yml +++ b/.github/workflows/scheduled.yml @@ -271,7 +271,7 @@ jobs: - name: Upload testrun-changed-files.txt if: ${{ fromJSON(steps.define-testrun.outputs.testrun)['type'] != 'full' }} - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: testrun-changed-files.txt path: testrun-changed-files.txt @@ -397,7 +397,7 @@ jobs: git format-patch --keep-subject --binary --stdout HEAD^ > salt-${{ needs.prepare-workflow.outputs.salt-version }}.patch - name: Upload Changes Diff Artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 if: ${{ startsWith(github.event.ref, 'refs/tags') == false }} with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}.patch @@ -1976,7 +1976,7 @@ jobs: - name: Get coverage reports id: get-coverage-reports - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: all-testrun-coverage-artifacts path: artifacts/coverage/ @@ -2024,7 +2024,7 @@ jobs: nox --force-color -e create-html-coverage-report -- salt - name: Upload Salt Code Coverage HTML Report - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: code-coverage-salt-html-report path: artifacts/coverage/html/salt @@ -2040,7 +2040,7 @@ jobs: nox --force-color -e create-json-coverage-reports - name: Upload Combined Code Coverage JSON Report - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: code-coverage-full-json-report path: artifacts/coverage/coverage.json @@ -2052,7 +2052,7 @@ jobs: nox --force-color -e create-html-coverage-report - name: Upload Combined Code Coverage HTML Report - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: code-coverage-full-html-report path: artifacts/coverage/html/full diff --git a/.github/workflows/staging.yml b/.github/workflows/staging.yml index 046366d3f0f..7430118d396 100644 --- a/.github/workflows/staging.yml +++ b/.github/workflows/staging.yml @@ -276,7 +276,7 @@ jobs: - name: Upload testrun-changed-files.txt if: ${{ fromJSON(steps.define-testrun.outputs.testrun)['type'] != 'full' }} - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: testrun-changed-files.txt path: testrun-changed-files.txt @@ -402,7 +402,7 @@ jobs: git format-patch --keep-subject --binary --stdout HEAD^ > salt-${{ needs.prepare-workflow.outputs.salt-version }}.patch - name: Upload Changes Diff Artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 if: ${{ startsWith(github.event.ref, 'refs/tags') == false }} with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}.patch @@ -1957,7 +1957,7 @@ jobs: echo "SPB_ENVIRONMENT=$SPB_ENVIRONMENT" >> "$GITHUB_ENV" - name: Download Source Tarball - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}.tar.gz path: artifacts/pkgs/incoming @@ -2007,7 +2007,7 @@ jobs: find artifacts/pkgs/repo -type f -print -exec cp {} artifacts/src \; - name: Upload Standalone Repository As An Artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-staging-src-repo path: | @@ -2101,7 +2101,7 @@ jobs: echo "SPB_ENVIRONMENT=$SPB_ENVIRONMENT" >> "$GITHUB_ENV" - name: Download DEB Packages - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-${{ matrix.arch }}-deb path: artifacts/pkgs/incoming @@ -2322,7 +2322,7 @@ jobs: echo "SPB_ENVIRONMENT=$SPB_ENVIRONMENT" >> "$GITHUB_ENV" - name: Download RPM Packages - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-${{ matrix.arch == 'aarch64' && 'arm64' || matrix.arch }}-rpm path: artifacts/pkgs/incoming @@ -2412,25 +2412,25 @@ jobs: echo "SPB_ENVIRONMENT=$SPB_ENVIRONMENT" >> "$GITHUB_ENV" - name: Download Windows NSIS x86 Packages - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-x86-NSIS path: artifacts/pkgs/incoming - name: Download Windows MSI x86 Packages - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-x86-MSI path: artifacts/pkgs/incoming - name: Download Windows NSIS amd64 Packages - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-amd64-NSIS path: artifacts/pkgs/incoming - name: Download Windows MSI amd64 Packages - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-amd64-MSI path: artifacts/pkgs/incoming @@ -2514,13 +2514,13 @@ jobs: echo "SPB_ENVIRONMENT=$SPB_ENVIRONMENT" >> "$GITHUB_ENV" - name: Download macOS x86_64 Packages - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-x86_64-macos path: artifacts/pkgs/incoming - name: Download macOS Arch64 Packages - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-arm64-macos path: artifacts/pkgs/incoming @@ -2604,49 +2604,49 @@ jobs: echo "SPB_ENVIRONMENT=$SPB_ENVIRONMENT" >> "$GITHUB_ENV" - name: Download Linux x86_64 Onedir Archive - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-onedir-linux-x86_64.tar.xz path: artifacts/pkgs/incoming - name: Download Linux arm64 Onedir Archive - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-onedir-linux-arm64.tar.xz path: artifacts/pkgs/incoming - name: Download macOS x86_64 Onedir Archive - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-onedir-macos-x86_64.tar.xz path: artifacts/pkgs/incoming - name: Download macOS arm64 Onedir Archive - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-onedir-macos-arm64.tar.xz path: artifacts/pkgs/incoming - name: Download Windows amd64 Onedir Archive - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-onedir-windows-amd64.tar.xz path: artifacts/pkgs/incoming - name: Download Windows amd64 Onedir Archive(zip) - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-onedir-windows-amd64.zip path: artifacts/pkgs/incoming - name: Download Windows x86 Onedir Archive - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-onedir-windows-x86.tar.xz path: artifacts/pkgs/incoming - name: Download Windows amd64 Onedir Archive(zip) - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-onedir-windows-x86.zip path: artifacts/pkgs/incoming @@ -2731,7 +2731,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }} - name: Download Repository Artifact - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-staging-repo path: repo/ @@ -2778,25 +2778,25 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }} - name: Download Release Patch - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}.patch path: artifacts/release - name: Download Source Repository - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-staging-src-repo path: artifacts/release - name: Download Release Documentation (HTML) - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-docs-html.tar.xz path: artifacts/release - name: Download Release Documentation (ePub) - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: Salt-${{ needs.prepare-workflow.outputs.salt-version }}.epub path: artifacts/release @@ -2810,7 +2810,7 @@ jobs: tools release upload-artifacts ${{ needs.prepare-workflow.outputs.salt-version }} artifacts/release - name: Upload PyPi Artifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: pypi-artifacts path: | @@ -2951,7 +2951,7 @@ jobs: echo "twine-password=$TWINE_PASSWORD" >> "${GITHUB_OUTPUT}" - name: Download PyPi Artifacts - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: pypi-artifacts path: artifacts/release diff --git a/.github/workflows/templates/build-deb-repo.yml.jinja b/.github/workflows/templates/build-deb-repo.yml.jinja index 4b8edb516b2..73a5e47883c 100644 --- a/.github/workflows/templates/build-deb-repo.yml.jinja +++ b/.github/workflows/templates/build-deb-repo.yml.jinja @@ -30,7 +30,7 @@ echo "SPB_ENVIRONMENT=$SPB_ENVIRONMENT" >> "$GITHUB_ENV" - name: Download DEB Packages - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-${{ matrix.arch }}-deb path: artifacts/pkgs/incoming diff --git a/.github/workflows/templates/build-deps-ci-action.yml.jinja b/.github/workflows/templates/build-deps-ci-action.yml.jinja index c8c98d11300..24817d7cb7b 100644 --- a/.github/workflows/templates/build-deps-ci-action.yml.jinja +++ b/.github/workflows/templates/build-deps-ci-action.yml.jinja @@ -79,7 +79,7 @@ jobs: - name: Download Onedir Tarball as an Artifact if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-linux-${{ matrix.arch }}.tar.xz path: artifacts/ @@ -188,7 +188,7 @@ jobs: - name: Download Onedir Tarball as an Artifact if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-macos-${{ matrix.arch }}.tar.xz path: artifacts/ @@ -279,7 +279,7 @@ jobs: - name: Download Onedir Tarball as an Artifact if: steps.nox-dependencies-cache.outputs.cache-hit != 'true' - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-windows-${{ matrix.arch }}.tar.xz path: artifacts/ diff --git a/.github/workflows/templates/build-macos-repo.yml.jinja b/.github/workflows/templates/build-macos-repo.yml.jinja index 4e62d84e953..e64297f5aad 100644 --- a/.github/workflows/templates/build-macos-repo.yml.jinja +++ b/.github/workflows/templates/build-macos-repo.yml.jinja @@ -20,13 +20,13 @@ echo "SPB_ENVIRONMENT=$SPB_ENVIRONMENT" >> "$GITHUB_ENV" - name: Download macOS x86_64 Packages - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-x86_64-macos path: artifacts/pkgs/incoming - name: Download macOS Arch64 Packages - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-arm64-macos path: artifacts/pkgs/incoming diff --git a/.github/workflows/templates/build-onedir-repo.yml.jinja b/.github/workflows/templates/build-onedir-repo.yml.jinja index ac0e64e203a..8dada6d2ffc 100644 --- a/.github/workflows/templates/build-onedir-repo.yml.jinja +++ b/.github/workflows/templates/build-onedir-repo.yml.jinja @@ -20,49 +20,49 @@ echo "SPB_ENVIRONMENT=$SPB_ENVIRONMENT" >> "$GITHUB_ENV" - name: Download Linux x86_64 Onedir Archive - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-onedir-linux-x86_64.tar.xz path: artifacts/pkgs/incoming - name: Download Linux arm64 Onedir Archive - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-onedir-linux-arm64.tar.xz path: artifacts/pkgs/incoming - name: Download macOS x86_64 Onedir Archive - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-onedir-macos-x86_64.tar.xz path: artifacts/pkgs/incoming - name: Download macOS arm64 Onedir Archive - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-onedir-macos-arm64.tar.xz path: artifacts/pkgs/incoming - name: Download Windows amd64 Onedir Archive - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-onedir-windows-amd64.tar.xz path: artifacts/pkgs/incoming - name: Download Windows amd64 Onedir Archive(zip) - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-onedir-windows-amd64.zip path: artifacts/pkgs/incoming - name: Download Windows x86 Onedir Archive - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-onedir-windows-x86.tar.xz path: artifacts/pkgs/incoming - name: Download Windows amd64 Onedir Archive(zip) - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-onedir-windows-x86.zip path: artifacts/pkgs/incoming diff --git a/.github/workflows/templates/build-rpm-repo.yml.jinja b/.github/workflows/templates/build-rpm-repo.yml.jinja index 9f8ca8668be..f65755c33d8 100644 --- a/.github/workflows/templates/build-rpm-repo.yml.jinja +++ b/.github/workflows/templates/build-rpm-repo.yml.jinja @@ -30,7 +30,7 @@ echo "SPB_ENVIRONMENT=$SPB_ENVIRONMENT" >> "$GITHUB_ENV" - name: Download RPM Packages - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-${{ matrix.arch == 'aarch64' && 'arm64' || matrix.arch }}-rpm path: artifacts/pkgs/incoming diff --git a/.github/workflows/templates/build-src-repo.yml.jinja b/.github/workflows/templates/build-src-repo.yml.jinja index 437da330888..071430a24f6 100644 --- a/.github/workflows/templates/build-src-repo.yml.jinja +++ b/.github/workflows/templates/build-src-repo.yml.jinja @@ -20,7 +20,7 @@ echo "SPB_ENVIRONMENT=$SPB_ENVIRONMENT" >> "$GITHUB_ENV" - name: Download Source Tarball - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}.tar.gz path: artifacts/pkgs/incoming @@ -70,7 +70,7 @@ find artifacts/pkgs/repo -type f -print -exec cp {} artifacts/src \; - name: Upload Standalone Repository As An Artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-<{ gh_environment }>-src-repo path: | diff --git a/.github/workflows/templates/build-windows-repo.yml.jinja b/.github/workflows/templates/build-windows-repo.yml.jinja index a86daf7f58b..dfa281b18ff 100644 --- a/.github/workflows/templates/build-windows-repo.yml.jinja +++ b/.github/workflows/templates/build-windows-repo.yml.jinja @@ -20,25 +20,25 @@ echo "SPB_ENVIRONMENT=$SPB_ENVIRONMENT" >> "$GITHUB_ENV" - name: Download Windows NSIS x86 Packages - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-x86-NSIS path: artifacts/pkgs/incoming - name: Download Windows MSI x86 Packages - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-x86-MSI path: artifacts/pkgs/incoming - name: Download Windows NSIS amd64 Packages - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-amd64-NSIS path: artifacts/pkgs/incoming - name: Download Windows MSI amd64 Packages - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-amd64-MSI path: artifacts/pkgs/incoming diff --git a/.github/workflows/templates/ci.yml.jinja b/.github/workflows/templates/ci.yml.jinja index d7e61e79050..5ccd8f61135 100644 --- a/.github/workflows/templates/ci.yml.jinja +++ b/.github/workflows/templates/ci.yml.jinja @@ -167,7 +167,7 @@ git format-patch --keep-subject --binary --stdout HEAD^ > salt-${{ needs.prepare-workflow.outputs.salt-version }}.patch - name: Upload Changes Diff Artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 if: ${{ startsWith(github.event.ref, 'refs/tags') == false }} with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}.patch @@ -342,7 +342,7 @@ - name: Get coverage reports id: get-coverage-reports - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: all-testrun-coverage-artifacts path: artifacts/coverage/ @@ -390,7 +390,7 @@ nox --force-color -e create-html-coverage-report -- salt - name: Upload Salt Code Coverage HTML Report - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: code-coverage-salt-html-report path: artifacts/coverage/html/salt @@ -406,7 +406,7 @@ nox --force-color -e create-json-coverage-reports - name: Upload Combined Code Coverage JSON Report - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: code-coverage-full-json-report path: artifacts/coverage/coverage.json @@ -418,7 +418,7 @@ nox --force-color -e create-html-coverage-report - name: Upload Combined Code Coverage HTML Report - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: code-coverage-full-html-report path: artifacts/coverage/html/full diff --git a/.github/workflows/templates/layout.yml.jinja b/.github/workflows/templates/layout.yml.jinja index dd0d97c427d..daabe43dbc3 100644 --- a/.github/workflows/templates/layout.yml.jinja +++ b/.github/workflows/templates/layout.yml.jinja @@ -301,7 +301,7 @@ jobs: - name: Upload testrun-changed-files.txt if: ${{ fromJSON(steps.define-testrun.outputs.testrun)['type'] != 'full' }} - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: testrun-changed-files.txt path: testrun-changed-files.txt diff --git a/.github/workflows/templates/nightly.yml.jinja b/.github/workflows/templates/nightly.yml.jinja index 2b1208021f1..1487ab8ba26 100644 --- a/.github/workflows/templates/nightly.yml.jinja +++ b/.github/workflows/templates/nightly.yml.jinja @@ -170,7 +170,7 @@ concurrency: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }} - name: Download Repository Artifact - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-<{ gh_environment }>-repo path: repo/ diff --git a/.github/workflows/templates/release.yml.jinja b/.github/workflows/templates/release.yml.jinja index 7be119e57c8..3fedd45cad8 100644 --- a/.github/workflows/templates/release.yml.jinja +++ b/.github/workflows/templates/release.yml.jinja @@ -195,7 +195,7 @@ permissions: tools release download-onedir-artifact --platform=${{ matrix.platform }} --arch=${{ matrix.arch }} ${{ inputs.salt-version }} - name: Upload Onedir Tarball as an Artifact - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: salt-${{ inputs.salt-version }}-onedir-${{ matrix.platform }}-${{ matrix.arch }}.tar.xz path: artifacts/salt-${{ inputs.salt-version }}-onedir-${{ matrix.platform }}-${{ matrix.arch }}.tar.xz* @@ -378,7 +378,7 @@ permissions: tag: v${{ needs.prepare-workflow.outputs.salt-version }} - name: Upload PyPi Artifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: pypi-artifacts path: | @@ -470,7 +470,7 @@ permissions: echo "twine-password=$TWINE_PASSWORD" >> "${GITHUB_OUTPUT}" - name: Download PyPi Artifacts - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: pypi-artifacts path: artifacts/release diff --git a/.github/workflows/templates/staging.yml.jinja b/.github/workflows/templates/staging.yml.jinja index 544015c5b85..ae096e51e35 100644 --- a/.github/workflows/templates/staging.yml.jinja +++ b/.github/workflows/templates/staging.yml.jinja @@ -107,25 +107,25 @@ concurrency: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }} - name: Download Release Patch - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}.patch path: artifacts/release - name: Download Source Repository - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-<{ gh_environment }>-src-repo path: artifacts/release - name: Download Release Documentation (HTML) - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-docs-html.tar.xz path: artifacts/release - name: Download Release Documentation (ePub) - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: Salt-${{ needs.prepare-workflow.outputs.salt-version }}.epub path: artifacts/release @@ -137,7 +137,7 @@ concurrency: {#- - name: Download Release Documentation (PDF) - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: Salt-${{ needs.prepare-workflow.outputs.salt-version }}.pdf path: artifacts/release @@ -149,7 +149,7 @@ concurrency: tools release upload-artifacts ${{ needs.prepare-workflow.outputs.salt-version }} artifacts/release - name: Upload PyPi Artifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: pypi-artifacts path: | @@ -216,7 +216,7 @@ concurrency: echo "twine-password=$TWINE_PASSWORD" >> "${GITHUB_OUTPUT}" - name: Download PyPi Artifacts - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: pypi-artifacts path: artifacts/release diff --git a/.github/workflows/templates/test-package-downloads-action.yml.jinja b/.github/workflows/templates/test-package-downloads-action.yml.jinja index cdaf37cbfc4..864a238250a 100644 --- a/.github/workflows/templates/test-package-downloads-action.yml.jinja +++ b/.github/workflows/templates/test-package-downloads-action.yml.jinja @@ -82,7 +82,7 @@ jobs: uses: actions/checkout@v4 - name: Download Onedir Tarball as an Artifact - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-linux-${{ matrix.arch }}.tar.xz path: artifacts/ @@ -267,7 +267,7 @@ jobs: - name: Upload Test Run Artifacts if: always() && steps.download-artifacts-from-vm.outcome == 'success' - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: pkg-testrun-artifacts-${{ matrix.distro-slug }}-${{ matrix.arch }} path: | @@ -302,7 +302,7 @@ jobs: uses: actions/checkout@v4 - name: Download Onedir Tarball as an Artifact - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-macos-${{ matrix.arch }}.tar.xz path: artifacts/ @@ -473,7 +473,7 @@ jobs: - name: Upload Test Run Artifacts if: always() - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: pkg-testrun-artifacts-${{ matrix.distro-slug }}-${{ matrix.arch }} path: | @@ -505,7 +505,7 @@ jobs: uses: actions/checkout@v4 - name: Download Onedir Tarball as an Artifact - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-windows-${{ matrix.arch }}.tar.xz path: artifacts/ @@ -690,7 +690,7 @@ jobs: - name: Upload Test Run Artifacts if: always() && steps.download-artifacts-from-vm.outcome == 'success' - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: pkg-testrun-artifacts-${{ matrix.distro-slug }}-${{ matrix.arch }} path: | diff --git a/.github/workflows/test-action-linux.yml b/.github/workflows/test-action-linux.yml index 94216969667..f753254ad35 100644 --- a/.github/workflows/test-action-linux.yml +++ b/.github/workflows/test-action-linux.yml @@ -135,7 +135,7 @@ jobs: echo "${{ inputs.salt-version }}" > salt/_version.txt - name: Download Onedir Tarball as an Artifact - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-${{ inputs.platform }}-${{ inputs.arch }}.tar.xz path: artifacts/ @@ -163,7 +163,7 @@ jobs: - name: Download testrun-changed-files.txt if: ${{ fromJSON(inputs.testrun)['type'] != 'full' }} - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: testrun-changed-files.txt @@ -273,7 +273,7 @@ jobs: - name: Upload Code Coverage Test Run Artifacts if: always() && inputs.skip-code-coverage == false && steps.download-artifacts-from-vm.outcome == 'success' && job.status != 'cancelled' - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: testrun-coverage-artifacts-${{ inputs.distro-slug }}-${{ inputs.nox-session }} path: | @@ -281,7 +281,7 @@ jobs: - name: Upload JUnit XML Test Run Artifacts if: always() && steps.download-artifacts-from-vm.outcome == 'success' - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: testrun-junit-artifacts-${{ inputs.distro-slug }}-${{ inputs.nox-session }}-${{ matrix.transport }} path: | @@ -289,7 +289,7 @@ jobs: - name: Upload Test Run Log Artifacts if: always() && steps.download-artifacts-from-vm.outcome == 'success' - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: testrun-log-artifacts-${{ inputs.distro-slug }}-${{ inputs.nox-session }}-${{ matrix.transport }} path: | @@ -307,7 +307,7 @@ jobs: uses: actions/checkout@v4 - name: Download Code Coverage Test Run Artifacts - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 if: ${{ inputs.skip-code-coverage == false }} id: download-coverage-artifacts with: @@ -349,7 +349,7 @@ jobs: - name: Upload Code Coverage DB if: always() && inputs.skip-code-coverage == false && steps.download-coverage-artifacts.outcome == 'success' - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: all-testrun-coverage-artifacts path: artifacts/coverage diff --git a/.github/workflows/test-action-macos.yml b/.github/workflows/test-action-macos.yml index f2576d9099d..7dba2701783 100644 --- a/.github/workflows/test-action-macos.yml +++ b/.github/workflows/test-action-macos.yml @@ -124,7 +124,7 @@ jobs: echo "${{ inputs.salt-version }}" > salt/_version.txt - name: Download Onedir Tarball as an Artifact - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-${{ inputs.platform }}-${{ inputs.arch }}.tar.xz path: artifacts/ @@ -160,7 +160,7 @@ jobs: - name: Download testrun-changed-files.txt if: ${{ fromJSON(inputs.testrun)['type'] != 'full' }} - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: testrun-changed-files.txt @@ -302,7 +302,7 @@ jobs: - name: Upload Code Coverage Test Run Artifacts if: always() && inputs.skip-code-coverage == false && steps.download-artifacts-from-vm.outcome == 'success' && job.status != 'cancelled' - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: testrun-coverage-artifacts-${{ inputs.distro-slug }}-${{ inputs.nox-session }} path: | @@ -310,7 +310,7 @@ jobs: - name: Upload JUnit XML Test Run Artifacts if: always() && steps.download-artifacts-from-vm.outcome == 'success' - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: testrun-junit-artifacts-${{ inputs.distro-slug }}-${{ inputs.nox-session }}-${{ matrix.transport }} path: | @@ -318,7 +318,7 @@ jobs: - name: Upload Test Run Log Artifacts if: always() && steps.download-artifacts-from-vm.outcome == 'success' - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: testrun-log-artifacts-${{ inputs.distro-slug }}-${{ inputs.nox-session }}-${{ matrix.transport }} path: | @@ -336,7 +336,7 @@ jobs: uses: actions/checkout@v4 - name: Download Code Coverage Test Run Artifacts - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 if: ${{ inputs.skip-code-coverage == false }} id: download-coverage-artifacts with: @@ -383,7 +383,7 @@ jobs: - name: Upload Code Coverage DB if: always() && inputs.skip-code-coverage == false && steps.download-coverage-artifacts.outcome == 'success' - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: all-testrun-coverage-artifacts path: artifacts/coverage diff --git a/.github/workflows/test-action-windows.yml b/.github/workflows/test-action-windows.yml index 68bbda63a33..72976ead35a 100644 --- a/.github/workflows/test-action-windows.yml +++ b/.github/workflows/test-action-windows.yml @@ -135,7 +135,7 @@ jobs: echo "${{ inputs.salt-version }}" > salt/_version.txt - name: Download Onedir Tarball as an Artifact - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-${{ inputs.platform }}-${{ inputs.arch }}.tar.xz path: artifacts/ @@ -163,7 +163,7 @@ jobs: - name: Download testrun-changed-files.txt if: ${{ fromJSON(inputs.testrun)['type'] != 'full' }} - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: testrun-changed-files.txt @@ -273,7 +273,7 @@ jobs: - name: Upload Code Coverage Test Run Artifacts if: always() && inputs.skip-code-coverage == false && steps.download-artifacts-from-vm.outcome == 'success' && job.status != 'cancelled' - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: testrun-coverage-artifacts-${{ inputs.distro-slug }}-${{ inputs.nox-session }} path: | @@ -281,7 +281,7 @@ jobs: - name: Upload JUnit XML Test Run Artifacts if: always() && steps.download-artifacts-from-vm.outcome == 'success' - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: testrun-junit-artifacts-${{ inputs.distro-slug }}-${{ inputs.nox-session }}-${{ matrix.transport }} path: | @@ -289,7 +289,7 @@ jobs: - name: Upload Test Run Log Artifacts if: always() && steps.download-artifacts-from-vm.outcome == 'success' - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: testrun-log-artifacts-${{ inputs.distro-slug }}-${{ inputs.nox-session }}-${{ matrix.transport }} path: | @@ -308,7 +308,7 @@ jobs: uses: actions/checkout@v4 - name: Download Code Coverage Test Run Artifacts - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 if: ${{ inputs.skip-code-coverage == false }} id: download-coverage-artifacts with: @@ -350,7 +350,7 @@ jobs: - name: Upload Code Coverage DB if: always() && inputs.skip-code-coverage == false && steps.download-coverage-artifacts.outcome == 'success' - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: all-testrun-coverage-artifacts path: artifacts/coverage diff --git a/.github/workflows/test-package-downloads-action.yml b/.github/workflows/test-package-downloads-action.yml index debf5097128..06ce6855e6b 100644 --- a/.github/workflows/test-package-downloads-action.yml +++ b/.github/workflows/test-package-downloads-action.yml @@ -227,7 +227,7 @@ jobs: uses: actions/checkout@v4 - name: Download Onedir Tarball as an Artifact - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-linux-${{ matrix.arch }}.tar.xz path: artifacts/ @@ -412,7 +412,7 @@ jobs: - name: Upload Test Run Artifacts if: always() && steps.download-artifacts-from-vm.outcome == 'success' - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: pkg-testrun-artifacts-${{ matrix.distro-slug }}-${{ matrix.arch }} path: | @@ -454,7 +454,7 @@ jobs: uses: actions/checkout@v4 - name: Download Onedir Tarball as an Artifact - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-macos-${{ matrix.arch }}.tar.xz path: artifacts/ @@ -625,7 +625,7 @@ jobs: - name: Upload Test Run Artifacts if: always() - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: pkg-testrun-artifacts-${{ matrix.distro-slug }}-${{ matrix.arch }} path: | @@ -661,7 +661,7 @@ jobs: uses: actions/checkout@v4 - name: Download Onedir Tarball as an Artifact - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-windows-${{ matrix.arch }}.tar.xz path: artifacts/ @@ -846,7 +846,7 @@ jobs: - name: Upload Test Run Artifacts if: always() && steps.download-artifacts-from-vm.outcome == 'success' - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: pkg-testrun-artifacts-${{ matrix.distro-slug }}-${{ matrix.arch }} path: | diff --git a/.github/workflows/test-packages-action-linux.yml b/.github/workflows/test-packages-action-linux.yml index 1757296f8ec..fa67102309e 100644 --- a/.github/workflows/test-packages-action-linux.yml +++ b/.github/workflows/test-packages-action-linux.yml @@ -127,13 +127,13 @@ jobs: uses: actions/checkout@v4 - name: Download Packages - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-${{ inputs.arch }}-${{ inputs.pkg-type }} path: artifacts/pkg/ - name: Download Onedir Tarball as an Artifact - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-${{ inputs.platform }}-${{ inputs.arch }}.tar.xz path: artifacts/ @@ -217,7 +217,7 @@ jobs: - name: Upload Test Run Artifacts if: always() && steps.download-artifacts-from-vm.outcome == 'success' - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: pkg-testrun-artifacts-${{ inputs.distro-slug }}-${{ matrix.tests-chunk }} path: | @@ -244,7 +244,7 @@ jobs: - name: Download Test Run Artifacts id: download-test-run-artifacts - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: pkg-testrun-artifacts-${{ inputs.distro-slug }}-${{ matrix.tests-chunk }} path: artifacts diff --git a/.github/workflows/test-packages-action-macos.yml b/.github/workflows/test-packages-action-macos.yml index 59abc8f4b10..c7a7eaa9d17 100644 --- a/.github/workflows/test-packages-action-macos.yml +++ b/.github/workflows/test-packages-action-macos.yml @@ -116,7 +116,7 @@ jobs: uses: actions/checkout@v4 - name: Download Packages - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: salt-${{ inputs.salt-version }}-${{ inputs.arch }}-${{ inputs.pkg-type }} path: artifacts/pkg/ @@ -130,7 +130,7 @@ jobs: tree artifacts/pkg/ - name: Download Onedir Tarball as an Artifact - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-${{ inputs.platform }}-${{ inputs.arch }}.tar.xz path: artifacts/ @@ -201,7 +201,7 @@ jobs: - name: Upload Test Run Artifacts if: always() - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: pkg-testrun-artifacts-${{ inputs.distro-slug }}-${{ matrix.tests-chunk }} path: | @@ -228,7 +228,7 @@ jobs: - name: Download Test Run Artifacts id: download-test-run-artifacts - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: pkg-testrun-artifacts-${{ inputs.distro-slug }}-${{ matrix.tests-chunk }} path: artifacts diff --git a/.github/workflows/test-packages-action-windows.yml b/.github/workflows/test-packages-action-windows.yml index 135ca98649b..4312ba34589 100644 --- a/.github/workflows/test-packages-action-windows.yml +++ b/.github/workflows/test-packages-action-windows.yml @@ -127,13 +127,13 @@ jobs: uses: actions/checkout@v4 - name: Download Packages - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-${{ inputs.arch }}-${{ inputs.pkg-type }} path: artifacts/pkg/ - name: Download Onedir Tarball as an Artifact - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-${{ inputs.platform }}-${{ inputs.arch }}.tar.xz path: artifacts/ @@ -217,7 +217,7 @@ jobs: - name: Upload Test Run Artifacts if: always() && steps.download-artifacts-from-vm.outcome == 'success' - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: pkg-testrun-artifacts-${{ inputs.distro-slug }}-${{ matrix.tests-chunk }} path: | @@ -244,7 +244,7 @@ jobs: - name: Download Test Run Artifacts id: download-test-run-artifacts - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: pkg-testrun-artifacts-${{ inputs.distro-slug }}-${{ matrix.tests-chunk }} path: artifacts diff --git a/.github/workflows/triage.yml b/.github/workflows/triage.yml index 612460f6b56..64d20a0528f 100644 --- a/.github/workflows/triage.yml +++ b/.github/workflows/triage.yml @@ -57,7 +57,7 @@ jobs: --issue ${{ github.event.issue.number }} - name: Upload last assignment cache - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: last-assignment path: .cache From 2ff09f5e8d1ba1877be8a65710fc5907a6f8341a Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Wed, 17 Jan 2024 20:20:15 +0000 Subject: [PATCH 091/146] Some steps need to be kept at `actions/upload-artifact@v3` This is because we upload multiple artifacts under the same name something that ``actions/upload-artifact@v4`` does not do. There are breaking changes with this new version. See https://github.blog/changelog/2023-12-14-github-actions-artifacts-v4-is-now-generally-available/ Signed-off-by: Pedro Algarvio --- .github/workflows/ci.yml | 4 +++- .github/workflows/nightly.yml | 4 +++- .github/workflows/scheduled.yml | 4 +++- .github/workflows/templates/ci.yml.jinja | 4 +++- .../test-package-downloads-action.yml.jinja | 12 +++++++--- .github/workflows/test-action-linux.yml | 22 ++++++++++++++----- .github/workflows/test-action-macos.yml | 20 ++++++++++++----- .github/workflows/test-action-windows.yml | 20 ++++++++++++----- .../test-package-downloads-action.yml | 12 +++++++--- .../workflows/test-packages-action-linux.yml | 8 +++++-- .../workflows/test-packages-action-macos.yml | 8 +++++-- .../test-packages-action-windows.yml | 8 +++++-- 12 files changed, 94 insertions(+), 32 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f60875f8137..b04c1482d14 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1942,7 +1942,9 @@ jobs: - name: Get coverage reports id: get-coverage-reports - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v3 + # This needs to be actions/download-artifact@v3 because we upload multiple artifacts + # under the same name something that actions/upload-artifact@v4 does not do. with: name: all-testrun-coverage-artifacts path: artifacts/coverage/ diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 9dc7107a34d..b0c5e3d52f6 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -1999,7 +1999,9 @@ jobs: - name: Get coverage reports id: get-coverage-reports - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v3 + # This needs to be actions/download-artifact@v3 because we upload multiple artifacts + # under the same name something that actions/upload-artifact@v4 does not do. with: name: all-testrun-coverage-artifacts path: artifacts/coverage/ diff --git a/.github/workflows/scheduled.yml b/.github/workflows/scheduled.yml index 0ba44094811..19030609da5 100644 --- a/.github/workflows/scheduled.yml +++ b/.github/workflows/scheduled.yml @@ -1976,7 +1976,9 @@ jobs: - name: Get coverage reports id: get-coverage-reports - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v3 + # This needs to be actions/download-artifact@v3 because we upload multiple artifacts + # under the same name something that actions/upload-artifact@v4 does not do. with: name: all-testrun-coverage-artifacts path: artifacts/coverage/ diff --git a/.github/workflows/templates/ci.yml.jinja b/.github/workflows/templates/ci.yml.jinja index 5ccd8f61135..ec15f70ca74 100644 --- a/.github/workflows/templates/ci.yml.jinja +++ b/.github/workflows/templates/ci.yml.jinja @@ -342,7 +342,9 @@ - name: Get coverage reports id: get-coverage-reports - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v3 + # This needs to be actions/download-artifact@v3 because we upload multiple artifacts + # under the same name something that actions/upload-artifact@v4 does not do. with: name: all-testrun-coverage-artifacts path: artifacts/coverage/ diff --git a/.github/workflows/templates/test-package-downloads-action.yml.jinja b/.github/workflows/templates/test-package-downloads-action.yml.jinja index 864a238250a..a653fbd0143 100644 --- a/.github/workflows/templates/test-package-downloads-action.yml.jinja +++ b/.github/workflows/templates/test-package-downloads-action.yml.jinja @@ -267,7 +267,9 @@ jobs: - name: Upload Test Run Artifacts if: always() && steps.download-artifacts-from-vm.outcome == 'success' - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v3 + # This needs to be actions/upload-artifact@v3 because we upload multiple artifacts + # under the same name something that actions/upload-artifact@v4 does not do. with: name: pkg-testrun-artifacts-${{ matrix.distro-slug }}-${{ matrix.arch }} path: | @@ -473,7 +475,9 @@ jobs: - name: Upload Test Run Artifacts if: always() - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v3 + # This needs to be actions/upload-artifact@v3 because we upload multiple artifacts + # under the same name something that actions/upload-artifact@v4 does not do. with: name: pkg-testrun-artifacts-${{ matrix.distro-slug }}-${{ matrix.arch }} path: | @@ -690,7 +694,9 @@ jobs: - name: Upload Test Run Artifacts if: always() && steps.download-artifacts-from-vm.outcome == 'success' - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v3 + # This needs to be actions/upload-artifact@v3 because we upload multiple artifacts + # under the same name something that actions/upload-artifact@v4 does not do. with: name: pkg-testrun-artifacts-${{ matrix.distro-slug }}-${{ matrix.arch }} path: | diff --git a/.github/workflows/test-action-linux.yml b/.github/workflows/test-action-linux.yml index f753254ad35..227bc51d868 100644 --- a/.github/workflows/test-action-linux.yml +++ b/.github/workflows/test-action-linux.yml @@ -148,7 +148,7 @@ jobs: tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-${{ inputs.platform }}-${{ inputs.arch }}.tar.xz - name: Download nox.linux.${{ inputs.arch }}.tar.* artifact for session ${{ inputs.nox-session }} - uses: actions/upload-artifact@v4 + uses: actions/download-artifact@v4 with: name: nox-linux-${{ inputs.arch }}-${{ inputs.nox-session }} @@ -273,7 +273,9 @@ jobs: - name: Upload Code Coverage Test Run Artifacts if: always() && inputs.skip-code-coverage == false && steps.download-artifacts-from-vm.outcome == 'success' && job.status != 'cancelled' - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v3 + # This needs to be actions/upload-artifact@v3 because we upload multiple artifacts + # under the same name something that actions/upload-artifact@v4 does not do. with: name: testrun-coverage-artifacts-${{ inputs.distro-slug }}-${{ inputs.nox-session }} path: | @@ -281,7 +283,9 @@ jobs: - name: Upload JUnit XML Test Run Artifacts if: always() && steps.download-artifacts-from-vm.outcome == 'success' - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v3 + # This needs to be actions/upload-artifact@v3 because we upload multiple artifacts + # under the same name something that actions/upload-artifact@v4 does not do. with: name: testrun-junit-artifacts-${{ inputs.distro-slug }}-${{ inputs.nox-session }}-${{ matrix.transport }} path: | @@ -289,7 +293,9 @@ jobs: - name: Upload Test Run Log Artifacts if: always() && steps.download-artifacts-from-vm.outcome == 'success' - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v3 + # This needs to be actions/upload-artifact@v3 because we upload multiple artifacts + # under the same name something that actions/upload-artifact@v4 does not do. with: name: testrun-log-artifacts-${{ inputs.distro-slug }}-${{ inputs.nox-session }}-${{ matrix.transport }} path: | @@ -307,7 +313,9 @@ jobs: uses: actions/checkout@v4 - name: Download Code Coverage Test Run Artifacts - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v3 + # This needs to be actions/download-artifact@v3 because we upload multiple artifacts + # under the same name something that actions/upload-artifact@v4 does not do. if: ${{ inputs.skip-code-coverage == false }} id: download-coverage-artifacts with: @@ -349,7 +357,9 @@ jobs: - name: Upload Code Coverage DB if: always() && inputs.skip-code-coverage == false && steps.download-coverage-artifacts.outcome == 'success' - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v3 + # This needs to be actions/upload-artifact@v3 because we upload multiple artifacts + # under the same name something that actions/upload-artifact@v4 does not do. with: name: all-testrun-coverage-artifacts path: artifacts/coverage diff --git a/.github/workflows/test-action-macos.yml b/.github/workflows/test-action-macos.yml index 7dba2701783..4d407be4ee8 100644 --- a/.github/workflows/test-action-macos.yml +++ b/.github/workflows/test-action-macos.yml @@ -302,7 +302,9 @@ jobs: - name: Upload Code Coverage Test Run Artifacts if: always() && inputs.skip-code-coverage == false && steps.download-artifacts-from-vm.outcome == 'success' && job.status != 'cancelled' - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v3 + # This needs to be actions/upload-artifact@v3 because we upload multiple artifacts + # under the same name something that actions/upload-artifact@v4 does not do. with: name: testrun-coverage-artifacts-${{ inputs.distro-slug }}-${{ inputs.nox-session }} path: | @@ -310,7 +312,9 @@ jobs: - name: Upload JUnit XML Test Run Artifacts if: always() && steps.download-artifacts-from-vm.outcome == 'success' - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v3 + # This needs to be actions/upload-artifact@v3 because we upload multiple artifacts + # under the same name something that actions/upload-artifact@v4 does not do. with: name: testrun-junit-artifacts-${{ inputs.distro-slug }}-${{ inputs.nox-session }}-${{ matrix.transport }} path: | @@ -318,7 +322,9 @@ jobs: - name: Upload Test Run Log Artifacts if: always() && steps.download-artifacts-from-vm.outcome == 'success' - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v3 + # This needs to be actions/upload-artifact@v3 because we upload multiple artifacts + # under the same name something that actions/upload-artifact@v4 does not do. with: name: testrun-log-artifacts-${{ inputs.distro-slug }}-${{ inputs.nox-session }}-${{ matrix.transport }} path: | @@ -336,7 +342,9 @@ jobs: uses: actions/checkout@v4 - name: Download Code Coverage Test Run Artifacts - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v3 + # This needs to be actions/download-artifact@v3 because we upload multiple artifacts + # under the same name something that actions/upload-artifact@v4 does not do. if: ${{ inputs.skip-code-coverage == false }} id: download-coverage-artifacts with: @@ -383,7 +391,9 @@ jobs: - name: Upload Code Coverage DB if: always() && inputs.skip-code-coverage == false && steps.download-coverage-artifacts.outcome == 'success' - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v3 + # This needs to be actions/upload-artifact@v3 because we upload multiple artifacts + # under the same name something that actions/upload-artifact@v4 does not do. with: name: all-testrun-coverage-artifacts path: artifacts/coverage diff --git a/.github/workflows/test-action-windows.yml b/.github/workflows/test-action-windows.yml index 72976ead35a..b1452c89782 100644 --- a/.github/workflows/test-action-windows.yml +++ b/.github/workflows/test-action-windows.yml @@ -273,7 +273,9 @@ jobs: - name: Upload Code Coverage Test Run Artifacts if: always() && inputs.skip-code-coverage == false && steps.download-artifacts-from-vm.outcome == 'success' && job.status != 'cancelled' - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v3 + # This needs to be actions/upload-artifact@v3 because we upload multiple artifacts + # under the same name something that actions/upload-artifact@v4 does not do. with: name: testrun-coverage-artifacts-${{ inputs.distro-slug }}-${{ inputs.nox-session }} path: | @@ -281,7 +283,9 @@ jobs: - name: Upload JUnit XML Test Run Artifacts if: always() && steps.download-artifacts-from-vm.outcome == 'success' - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v3 + # This needs to be actions/upload-artifact@v3 because we upload multiple artifacts + # under the same name something that actions/upload-artifact@v4 does not do. with: name: testrun-junit-artifacts-${{ inputs.distro-slug }}-${{ inputs.nox-session }}-${{ matrix.transport }} path: | @@ -289,7 +293,9 @@ jobs: - name: Upload Test Run Log Artifacts if: always() && steps.download-artifacts-from-vm.outcome == 'success' - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v3 + # This needs to be actions/upload-artifact@v3 because we upload multiple artifacts + # under the same name something that actions/upload-artifact@v4 does not do. with: name: testrun-log-artifacts-${{ inputs.distro-slug }}-${{ inputs.nox-session }}-${{ matrix.transport }} path: | @@ -308,7 +314,9 @@ jobs: uses: actions/checkout@v4 - name: Download Code Coverage Test Run Artifacts - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v3 + # This needs to be actions/download-artifact@v3 because we upload multiple artifacts + # under the same name something that actions/upload-artifact@v4 does not do. if: ${{ inputs.skip-code-coverage == false }} id: download-coverage-artifacts with: @@ -350,7 +358,9 @@ jobs: - name: Upload Code Coverage DB if: always() && inputs.skip-code-coverage == false && steps.download-coverage-artifacts.outcome == 'success' - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v3 + # This needs to be actions/upload-artifact@v3 because we upload multiple artifacts + # under the same name something that actions/upload-artifact@v4 does not do. with: name: all-testrun-coverage-artifacts path: artifacts/coverage diff --git a/.github/workflows/test-package-downloads-action.yml b/.github/workflows/test-package-downloads-action.yml index 06ce6855e6b..077538258f1 100644 --- a/.github/workflows/test-package-downloads-action.yml +++ b/.github/workflows/test-package-downloads-action.yml @@ -412,7 +412,9 @@ jobs: - name: Upload Test Run Artifacts if: always() && steps.download-artifacts-from-vm.outcome == 'success' - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v3 + # This needs to be actions/upload-artifact@v3 because we upload multiple artifacts + # under the same name something that actions/upload-artifact@v4 does not do. with: name: pkg-testrun-artifacts-${{ matrix.distro-slug }}-${{ matrix.arch }} path: | @@ -625,7 +627,9 @@ jobs: - name: Upload Test Run Artifacts if: always() - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v3 + # This needs to be actions/upload-artifact@v3 because we upload multiple artifacts + # under the same name something that actions/upload-artifact@v4 does not do. with: name: pkg-testrun-artifacts-${{ matrix.distro-slug }}-${{ matrix.arch }} path: | @@ -846,7 +850,9 @@ jobs: - name: Upload Test Run Artifacts if: always() && steps.download-artifacts-from-vm.outcome == 'success' - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v3 + # This needs to be actions/upload-artifact@v3 because we upload multiple artifacts + # under the same name something that actions/upload-artifact@v4 does not do. with: name: pkg-testrun-artifacts-${{ matrix.distro-slug }}-${{ matrix.arch }} path: | diff --git a/.github/workflows/test-packages-action-linux.yml b/.github/workflows/test-packages-action-linux.yml index fa67102309e..ce7461f2a77 100644 --- a/.github/workflows/test-packages-action-linux.yml +++ b/.github/workflows/test-packages-action-linux.yml @@ -217,7 +217,9 @@ jobs: - name: Upload Test Run Artifacts if: always() && steps.download-artifacts-from-vm.outcome == 'success' - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v3 + # This needs to be actions/upload-artifact@v3 because we upload multiple artifacts + # under the same name something that actions/upload-artifact@v4 does not do. with: name: pkg-testrun-artifacts-${{ inputs.distro-slug }}-${{ matrix.tests-chunk }} path: | @@ -244,7 +246,9 @@ jobs: - name: Download Test Run Artifacts id: download-test-run-artifacts - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v3 + # This needs to be actions/download-artifact@v3 because we upload multiple artifacts + # under the same name something that actions/upload-artifact@v4 does not do. with: name: pkg-testrun-artifacts-${{ inputs.distro-slug }}-${{ matrix.tests-chunk }} path: artifacts diff --git a/.github/workflows/test-packages-action-macos.yml b/.github/workflows/test-packages-action-macos.yml index c7a7eaa9d17..8f4c9ac6058 100644 --- a/.github/workflows/test-packages-action-macos.yml +++ b/.github/workflows/test-packages-action-macos.yml @@ -201,7 +201,9 @@ jobs: - name: Upload Test Run Artifacts if: always() - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v3 + # This needs to be actions/upload-artifact@v3 because we upload multiple artifacts + # under the same name something that actions/upload-artifact@v4 does not do. with: name: pkg-testrun-artifacts-${{ inputs.distro-slug }}-${{ matrix.tests-chunk }} path: | @@ -228,7 +230,9 @@ jobs: - name: Download Test Run Artifacts id: download-test-run-artifacts - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v3 + # This needs to be actions/download-artifact@v3 because we upload multiple artifacts + # under the same name something that actions/upload-artifact@v4 does not do. with: name: pkg-testrun-artifacts-${{ inputs.distro-slug }}-${{ matrix.tests-chunk }} path: artifacts diff --git a/.github/workflows/test-packages-action-windows.yml b/.github/workflows/test-packages-action-windows.yml index 4312ba34589..18e7371a097 100644 --- a/.github/workflows/test-packages-action-windows.yml +++ b/.github/workflows/test-packages-action-windows.yml @@ -217,7 +217,9 @@ jobs: - name: Upload Test Run Artifacts if: always() && steps.download-artifacts-from-vm.outcome == 'success' - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v3 + # This needs to be actions/upload-artifact@v3 because we upload multiple artifacts + # under the same name something that actions/upload-artifact@v4 does not do. with: name: pkg-testrun-artifacts-${{ inputs.distro-slug }}-${{ matrix.tests-chunk }} path: | @@ -244,7 +246,9 @@ jobs: - name: Download Test Run Artifacts id: download-test-run-artifacts - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v3 + # This needs to be actions/download-artifact@v3 because we upload multiple artifacts + # under the same name something that actions/upload-artifact@v4 does not do. with: name: pkg-testrun-artifacts-${{ inputs.distro-slug }}-${{ matrix.tests-chunk }} path: artifacts From d8facee4de9fda5ed26c6622acfad603a904bd90 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Thu, 18 Jan 2024 16:46:41 +0000 Subject: [PATCH 092/146] Fix and `AttributeError` on Windows ``` AttributeError: module 'signal' has no attribute 'SIGALRM'. Did you mean: 'SIGABRT'? ``` Signed-off-by: Pedro Algarvio --- .pylintrc | 3 ++- tests/pytests/unit/utils/test_aws.py | 7 ++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/.pylintrc b/.pylintrc index 3991b5df08e..04fa981c375 100644 --- a/.pylintrc +++ b/.pylintrc @@ -699,7 +699,8 @@ allowed-3rd-party-modules=msgpack, packaging, looseversion, pytestskipmarkers, - cryptography + cryptography, + pytest_timeout [EXCEPTIONS] diff --git a/tests/pytests/unit/utils/test_aws.py b/tests/pytests/unit/utils/test_aws.py index a73c12f537e..c4e32e369a9 100644 --- a/tests/pytests/unit/utils/test_aws.py +++ b/tests/pytests/unit/utils/test_aws.py @@ -11,16 +11,17 @@ from datetime import datetime, timedelta import pytest import requests +from pytest_timeout import DEFAULT_METHOD import salt.utils.aws as aws from tests.support.helpers import patched_environ from tests.support.mock import MagicMock, patch pytestmark = [ - # Skip testing on windows since it does not support signals - # which is what the timeout marker is using. + # Skip testing on windows since it does not support signal.SIGALRM + # which is what the timeout marker is using by default. pytest.mark.skip_on_windows, - pytest.mark.timeout(60, method="signal"), + pytest.mark.timeout(60, method=DEFAULT_METHOD), ] From e66e036ba817af0ac6454cff127f773ff7a90b3a Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Sat, 20 Jan 2024 18:20:05 +0000 Subject: [PATCH 093/146] Fix some more places where we need to use ``actions/{upload,download}-artifact@v3`` Signed-off-by: Pedro Algarvio --- .github/actions/download-artifact/action.yml | 4 +++- .github/actions/upload-artifact/action.yml | 4 +++- .github/workflows/nightly.yml | 4 +++- .github/workflows/staging.yml | 4 +++- .github/workflows/templates/nightly.yml.jinja | 4 +++- 5 files changed, 15 insertions(+), 5 deletions(-) diff --git a/.github/actions/download-artifact/action.yml b/.github/actions/download-artifact/action.yml index fd476d5a8fd..12a097f517f 100644 --- a/.github/actions/download-artifact/action.yml +++ b/.github/actions/download-artifact/action.yml @@ -23,7 +23,9 @@ inputs: runs: using: composite steps: - - uses: actions/download-artifact@v4 + - uses: actions/download-artifact@v3 + # This needs to be actions/download-artifact@v3 because we upload multiple artifacts + # under the same name something that actions/upload-artifact@v4 does not do. with: name: ${{ inputs.name }} path: ${{ inputs.path }} diff --git a/.github/actions/upload-artifact/action.yml b/.github/actions/upload-artifact/action.yml index d1371d134f2..6c9e940a3b3 100644 --- a/.github/actions/upload-artifact/action.yml +++ b/.github/actions/upload-artifact/action.yml @@ -45,7 +45,9 @@ runs: shopt -s globstar || echo "'globstar' not available" tar -cavf ${{ inputs.archive-name || inputs.name || 'archive' }}.tar.gz ${{ inputs.path }} - - uses: actions/upload-artifact@v4 + - uses: actions/upload-artifact@v3 + # This needs to be actions/upload-artifact@v3 because we upload multiple artifacts + # under the same name something that actions/upload-artifact@v4 does not do. with: name: ${{ inputs.name }} path: ${{ inputs.archive-name || inputs.name || 'archive' }}.tar.gz diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index b0c5e3d52f6..7b79e84ddbb 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -2922,7 +2922,9 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }} - name: Download Repository Artifact - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v3 + # This needs to be actions/download-artifact@v3 because we upload multiple artifacts + # under the same name something that actions/upload-artifact@v4 does not do. with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-nightly-repo path: repo/ diff --git a/.github/workflows/staging.yml b/.github/workflows/staging.yml index 7430118d396..4bc8f46adda 100644 --- a/.github/workflows/staging.yml +++ b/.github/workflows/staging.yml @@ -2731,7 +2731,9 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }} - name: Download Repository Artifact - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v3 + # This needs to be actions/download-artifact@v3 because we upload multiple artifacts + # under the same name something that actions/upload-artifact@v4 does not do. with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-staging-repo path: repo/ diff --git a/.github/workflows/templates/nightly.yml.jinja b/.github/workflows/templates/nightly.yml.jinja index 1487ab8ba26..097ccc7d2bb 100644 --- a/.github/workflows/templates/nightly.yml.jinja +++ b/.github/workflows/templates/nightly.yml.jinja @@ -170,7 +170,9 @@ concurrency: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }} - name: Download Repository Artifact - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v3 + # This needs to be actions/download-artifact@v3 because we upload multiple artifacts + # under the same name something that actions/upload-artifact@v4 does not do. with: name: salt-${{ needs.prepare-workflow.outputs.salt-version }}-<{ gh_environment }>-repo path: repo/ From ee3681fe7ba3b2bf8b37e6927335b4099091660b Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Wed, 17 Jan 2024 06:25:34 +0000 Subject: [PATCH 094/146] Set `PIP_DISABLE_PIP_VERSION_CHECK=1` on CI workflows Signed-off-by: Pedro Algarvio --- .github/workflows/build-deps-ci-action.yml | 1 + .github/workflows/build-deps-onedir.yml | 1 + .github/workflows/build-docs.yml | 1 + .github/workflows/build-packages.yml | 1 + .github/workflows/build-salt-onedir.yml | 1 + .github/workflows/ci.yml | 1 + .github/workflows/lint-action.yml | 1 + .github/workflows/nightly.yml | 1 + .github/workflows/release.yml | 1 + .github/workflows/scheduled.yml | 1 + .github/workflows/staging.yml | 1 + .github/workflows/templates/build-deps-ci-action.yml.jinja | 1 + .github/workflows/templates/layout.yml.jinja | 1 + .../workflows/templates/test-package-downloads-action.yml.jinja | 1 + .github/workflows/test-action-linux.yml | 1 + .github/workflows/test-action-macos.yml | 1 + .github/workflows/test-action-windows.yml | 1 + .github/workflows/test-package-downloads-action.yml | 1 + .github/workflows/test-packages-action-linux.yml | 1 + .github/workflows/test-packages-action-macos.yml | 1 + .github/workflows/test-packages-action-windows.yml | 1 + 21 files changed, 21 insertions(+) diff --git a/.github/workflows/build-deps-ci-action.yml b/.github/workflows/build-deps-ci-action.yml index a46dd79f4c5..65f0263743f 100644 --- a/.github/workflows/build-deps-ci-action.yml +++ b/.github/workflows/build-deps-ci-action.yml @@ -42,6 +42,7 @@ env: AWS_RETRY_MODE: "adaptive" PIP_INDEX_URL: https://pypi-proxy.saltstack.net/root/local/+simple/ PIP_EXTRA_INDEX_URL: https://pypi.org/simple + PIP_DISABLE_PIP_VERSION_CHECK: "1" jobs: diff --git a/.github/workflows/build-deps-onedir.yml b/.github/workflows/build-deps-onedir.yml index d99fc0e2461..41d6f0260fe 100644 --- a/.github/workflows/build-deps-onedir.yml +++ b/.github/workflows/build-deps-onedir.yml @@ -34,6 +34,7 @@ env: AWS_RETRY_MODE: "adaptive" PIP_INDEX_URL: https://pypi-proxy.saltstack.net/root/local/+simple/ PIP_EXTRA_INDEX_URL: https://pypi.org/simple + PIP_DISABLE_PIP_VERSION_CHECK: "1" jobs: diff --git a/.github/workflows/build-docs.yml b/.github/workflows/build-docs.yml index 365c0bd6aa1..e99c84ef303 100644 --- a/.github/workflows/build-docs.yml +++ b/.github/workflows/build-docs.yml @@ -19,6 +19,7 @@ env: AWS_RETRY_MODE: "adaptive" PIP_INDEX_URL: https://pypi-proxy.saltstack.net/root/local/+simple/ PIP_EXTRA_INDEX_URL: https://pypi.org/simple + PIP_DISABLE_PIP_VERSION_CHECK: "1" jobs: build: diff --git a/.github/workflows/build-packages.yml b/.github/workflows/build-packages.yml index 65162a3abd6..58b181eab1c 100644 --- a/.github/workflows/build-packages.yml +++ b/.github/workflows/build-packages.yml @@ -41,6 +41,7 @@ env: COLUMNS: 190 PIP_INDEX_URL: https://pypi-proxy.saltstack.net/root/local/+simple/ PIP_EXTRA_INDEX_URL: https://pypi.org/simple + PIP_DISABLE_PIP_VERSION_CHECK: "1" jobs: diff --git a/.github/workflows/build-salt-onedir.yml b/.github/workflows/build-salt-onedir.yml index eb807bd7fed..7e3a6dc2807 100644 --- a/.github/workflows/build-salt-onedir.yml +++ b/.github/workflows/build-salt-onedir.yml @@ -34,6 +34,7 @@ env: AWS_RETRY_MODE: "adaptive" PIP_INDEX_URL: https://pypi-proxy.saltstack.net/root/local/+simple/ PIP_EXTRA_INDEX_URL: https://pypi.org/simple + PIP_DISABLE_PIP_VERSION_CHECK: "1" jobs: diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b04c1482d14..d56d060d703 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,6 +18,7 @@ env: COLUMNS: 190 CACHE_SEED: SEED-7 # Bump the number to invalidate all caches RELENV_DATA: "${{ github.workspace }}/.relenv" + PIP_DISABLE_PIP_VERSION_CHECK: "1" permissions: contents: read # for dorny/paths-filter to fetch a list of changed files diff --git a/.github/workflows/lint-action.yml b/.github/workflows/lint-action.yml index fb414dd9610..6f177667129 100644 --- a/.github/workflows/lint-action.yml +++ b/.github/workflows/lint-action.yml @@ -13,6 +13,7 @@ on: env: PIP_INDEX_URL: https://pypi-proxy.saltstack.net/root/local/+simple/ PIP_EXTRA_INDEX_URL: https://pypi.org/simple + PIP_DISABLE_PIP_VERSION_CHECK: "1" jobs: diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 7b79e84ddbb..c69e747253f 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -24,6 +24,7 @@ env: COLUMNS: 190 CACHE_SEED: SEED-7 # Bump the number to invalidate all caches RELENV_DATA: "${{ github.workspace }}/.relenv" + PIP_DISABLE_PIP_VERSION_CHECK: "1" permissions: contents: read # for dorny/paths-filter to fetch a list of changed files diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 51598e653d2..661a84340f5 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -23,6 +23,7 @@ env: COLUMNS: 190 CACHE_SEED: SEED-7 # Bump the number to invalidate all caches RELENV_DATA: "${{ github.workspace }}/.relenv" + PIP_DISABLE_PIP_VERSION_CHECK: "1" permissions: contents: write # To be able to publish the release diff --git a/.github/workflows/scheduled.yml b/.github/workflows/scheduled.yml index 19030609da5..2561ac3e80e 100644 --- a/.github/workflows/scheduled.yml +++ b/.github/workflows/scheduled.yml @@ -14,6 +14,7 @@ env: COLUMNS: 190 CACHE_SEED: SEED-7 # Bump the number to invalidate all caches RELENV_DATA: "${{ github.workspace }}/.relenv" + PIP_DISABLE_PIP_VERSION_CHECK: "1" permissions: contents: read # for dorny/paths-filter to fetch a list of changed files diff --git a/.github/workflows/staging.yml b/.github/workflows/staging.yml index 4bc8f46adda..00b58b8ad6e 100644 --- a/.github/workflows/staging.yml +++ b/.github/workflows/staging.yml @@ -39,6 +39,7 @@ env: COLUMNS: 190 CACHE_SEED: SEED-7 # Bump the number to invalidate all caches RELENV_DATA: "${{ github.workspace }}/.relenv" + PIP_DISABLE_PIP_VERSION_CHECK: "1" permissions: contents: read # for dorny/paths-filter to fetch a list of changed files diff --git a/.github/workflows/templates/build-deps-ci-action.yml.jinja b/.github/workflows/templates/build-deps-ci-action.yml.jinja index 24817d7cb7b..1d3504f6720 100644 --- a/.github/workflows/templates/build-deps-ci-action.yml.jinja +++ b/.github/workflows/templates/build-deps-ci-action.yml.jinja @@ -42,6 +42,7 @@ env: AWS_RETRY_MODE: "adaptive" PIP_INDEX_URL: https://pypi-proxy.saltstack.net/root/local/+simple/ PIP_EXTRA_INDEX_URL: https://pypi.org/simple + PIP_DISABLE_PIP_VERSION_CHECK: "1" jobs: diff --git a/.github/workflows/templates/layout.yml.jinja b/.github/workflows/templates/layout.yml.jinja index daabe43dbc3..08f71095a8b 100644 --- a/.github/workflows/templates/layout.yml.jinja +++ b/.github/workflows/templates/layout.yml.jinja @@ -36,6 +36,7 @@ env: COLUMNS: 190 CACHE_SEED: SEED-7 # Bump the number to invalidate all caches RELENV_DATA: "${{ github.workspace }}/.relenv" + PIP_DISABLE_PIP_VERSION_CHECK: "1" <%- endblock env %> diff --git a/.github/workflows/templates/test-package-downloads-action.yml.jinja b/.github/workflows/templates/test-package-downloads-action.yml.jinja index a653fbd0143..8752263bbcb 100644 --- a/.github/workflows/templates/test-package-downloads-action.yml.jinja +++ b/.github/workflows/templates/test-package-downloads-action.yml.jinja @@ -50,6 +50,7 @@ env: AWS_RETRY_MODE: "adaptive" PIP_INDEX_URL: https://pypi-proxy.saltstack.net/root/local/+simple/ PIP_EXTRA_INDEX_URL: https://pypi.org/simple + PIP_DISABLE_PIP_VERSION_CHECK: "1" jobs: diff --git a/.github/workflows/test-action-linux.yml b/.github/workflows/test-action-linux.yml index 227bc51d868..d7d1ae0b599 100644 --- a/.github/workflows/test-action-linux.yml +++ b/.github/workflows/test-action-linux.yml @@ -73,6 +73,7 @@ env: AWS_RETRY_MODE: "adaptive" PIP_INDEX_URL: https://pypi-proxy.saltstack.net/root/local/+simple/ PIP_EXTRA_INDEX_URL: https://pypi.org/simple + PIP_DISABLE_PIP_VERSION_CHECK: "1" jobs: diff --git a/.github/workflows/test-action-macos.yml b/.github/workflows/test-action-macos.yml index 4d407be4ee8..d9edaff242e 100644 --- a/.github/workflows/test-action-macos.yml +++ b/.github/workflows/test-action-macos.yml @@ -66,6 +66,7 @@ env: COLUMNS: 190 PIP_INDEX_URL: "https://pypi-proxy.saltstack.net/root/local/+simple/" PIP_EXTRA_INDEX_URL: "https://pypi.org/simple" + PIP_DISABLE_PIP_VERSION_CHECK: "1" jobs: diff --git a/.github/workflows/test-action-windows.yml b/.github/workflows/test-action-windows.yml index b1452c89782..50cdcd4c8b4 100644 --- a/.github/workflows/test-action-windows.yml +++ b/.github/workflows/test-action-windows.yml @@ -73,6 +73,7 @@ env: AWS_RETRY_MODE: "adaptive" PIP_INDEX_URL: https://pypi-proxy.saltstack.net/root/local/+simple/ PIP_EXTRA_INDEX_URL: https://pypi.org/simple + PIP_DISABLE_PIP_VERSION_CHECK: "1" jobs: diff --git a/.github/workflows/test-package-downloads-action.yml b/.github/workflows/test-package-downloads-action.yml index 077538258f1..f746834120a 100644 --- a/.github/workflows/test-package-downloads-action.yml +++ b/.github/workflows/test-package-downloads-action.yml @@ -50,6 +50,7 @@ env: AWS_RETRY_MODE: "adaptive" PIP_INDEX_URL: https://pypi-proxy.saltstack.net/root/local/+simple/ PIP_EXTRA_INDEX_URL: https://pypi.org/simple + PIP_DISABLE_PIP_VERSION_CHECK: "1" jobs: diff --git a/.github/workflows/test-packages-action-linux.yml b/.github/workflows/test-packages-action-linux.yml index ce7461f2a77..355d9967b19 100644 --- a/.github/workflows/test-packages-action-linux.yml +++ b/.github/workflows/test-packages-action-linux.yml @@ -67,6 +67,7 @@ env: AWS_RETRY_MODE: "adaptive" PIP_INDEX_URL: https://pypi-proxy.saltstack.net/root/local/+simple/ PIP_EXTRA_INDEX_URL: https://pypi.org/simple + PIP_DISABLE_PIP_VERSION_CHECK: "1" jobs: diff --git a/.github/workflows/test-packages-action-macos.yml b/.github/workflows/test-packages-action-macos.yml index 8f4c9ac6058..5d5b58dfc6e 100644 --- a/.github/workflows/test-packages-action-macos.yml +++ b/.github/workflows/test-packages-action-macos.yml @@ -60,6 +60,7 @@ env: COLUMNS: 190 PIP_INDEX_URL: https://pypi-proxy.saltstack.net/root/local/+simple/ PIP_EXTRA_INDEX_URL: https://pypi.org/simple + PIP_DISABLE_PIP_VERSION_CHECK: "1" jobs: diff --git a/.github/workflows/test-packages-action-windows.yml b/.github/workflows/test-packages-action-windows.yml index 18e7371a097..d0619857e05 100644 --- a/.github/workflows/test-packages-action-windows.yml +++ b/.github/workflows/test-packages-action-windows.yml @@ -67,6 +67,7 @@ env: AWS_RETRY_MODE: "adaptive" PIP_INDEX_URL: https://pypi-proxy.saltstack.net/root/local/+simple/ PIP_EXTRA_INDEX_URL: https://pypi.org/simple + PIP_DISABLE_PIP_VERSION_CHECK: "1" jobs: From de08988edd9566a611f54a793b425ac63f883fe9 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Tue, 23 Jan 2024 18:44:04 +0000 Subject: [PATCH 095/146] Stop time bombing with `RuntimeError`'s Signed-off-by: Pedro Algarvio --- changelog/665924.changed.md | 1 + salt/utils/versions.py | 23 ++++++++++++++++++----- 2 files changed, 19 insertions(+), 5 deletions(-) create mode 100644 changelog/665924.changed.md diff --git a/changelog/665924.changed.md b/changelog/665924.changed.md new file mode 100644 index 00000000000..fb06f9125c4 --- /dev/null +++ b/changelog/665924.changed.md @@ -0,0 +1 @@ +Salt no longer time bombs user installations on code using `salt.utils.versions.warn_until_date` diff --git a/salt/utils/versions.py b/salt/utils/versions.py index 2f11766b223..9a97fee1bd7 100644 --- a/salt/utils/versions.py +++ b/salt/utils/versions.py @@ -6,12 +6,11 @@ which works under python 3 because on python 3 you can no longer compare strings against integers. """ - - import datetime import inspect import logging import numbers +import os import sys import warnings @@ -171,7 +170,7 @@ def warn_until( if _version_ >= version: caller = inspect.getframeinfo(sys._getframe(stacklevel - 1)) - raise RuntimeError( + deprecated_message = ( "The warning triggered on filename '{filename}', line number " "{lineno}, is supposed to be shown until version " "{until_version} is released. Current version is now " @@ -180,8 +179,15 @@ def warn_until( lineno=caller.lineno, until_version=version.formatted_version, salt_version=_version_.formatted_version, - ), + ) ) + if os.environ.get("RAISE_DEPRECATIONS_RUNTIME_ERRORS", "0") == "1": + # We don't raise RuntimeError by default since that can break + # users systems. We do however want to raise them in a CI context. + raise RuntimeError(deprecated_message) + # Otherwise, print the deprecated message to STDERR + sys.stderr.write(f"\n{deprecated_message}\n") + sys.stderr.flush() if _dont_call_warnings is False: warnings.warn( @@ -239,7 +245,7 @@ def warn_until_date( today = _current_date or datetime.datetime.utcnow().date() if today >= date: caller = inspect.getframeinfo(sys._getframe(stacklevel - 1)) - raise RuntimeError( + deprecated_message = ( "{message} This warning(now exception) triggered on " "filename '{filename}', line number {lineno}, is " "supposed to be shown until {date}. Today is {today}. " @@ -251,6 +257,13 @@ def warn_until_date( today=today.isoformat(), ), ) + if os.environ.get("RAISE_DEPRECATIONS_RUNTIME_ERRORS", "0") == "1": + # We don't raise RuntimeError by default since that can break + # users systems. We do however want to raise them in a CI context. + raise RuntimeError(deprecated_message) + # Otherwise, print the deprecated message to STDERR + sys.stderr.write(f"\n{deprecated_message}\n") + sys.stderr.flush() if _dont_call_warnings is False: warnings.warn( From f89ef9204fe91b2dafbab2f6a15516302b9fec53 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Tue, 23 Jan 2024 18:53:17 +0000 Subject: [PATCH 096/146] Be sure to raise the `RuntimeError`'s in the CI context Signed-off-by: Pedro Algarvio --- .github/workflows/build-deps-ci-action.yml | 1 + .github/workflows/ci.yml | 1 + .github/workflows/nightly.yml | 1 + .github/workflows/release.yml | 1 + .github/workflows/scheduled.yml | 1 + .github/workflows/staging.yml | 1 + .github/workflows/templates/build-deps-ci-action.yml.jinja | 1 + .github/workflows/templates/layout.yml.jinja | 1 + .../workflows/templates/test-package-downloads-action.yml.jinja | 1 + .github/workflows/test-action-linux.yml | 1 + .github/workflows/test-action-macos.yml | 1 + .github/workflows/test-action-windows.yml | 1 + .github/workflows/test-package-downloads-action.yml | 1 + .github/workflows/test-packages-action-linux.yml | 1 + .github/workflows/test-packages-action-macos.yml | 1 + .github/workflows/test-packages-action-windows.yml | 1 + tools/vm.py | 1 + 17 files changed, 17 insertions(+) diff --git a/.github/workflows/build-deps-ci-action.yml b/.github/workflows/build-deps-ci-action.yml index 65f0263743f..82389dbb448 100644 --- a/.github/workflows/build-deps-ci-action.yml +++ b/.github/workflows/build-deps-ci-action.yml @@ -43,6 +43,7 @@ env: PIP_INDEX_URL: https://pypi-proxy.saltstack.net/root/local/+simple/ PIP_EXTRA_INDEX_URL: https://pypi.org/simple PIP_DISABLE_PIP_VERSION_CHECK: "1" + RAISE_DEPRECATIONS_RUNTIME_ERRORS: "1" jobs: diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d56d060d703..1891a75a39d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,6 +19,7 @@ env: CACHE_SEED: SEED-7 # Bump the number to invalidate all caches RELENV_DATA: "${{ github.workspace }}/.relenv" PIP_DISABLE_PIP_VERSION_CHECK: "1" + RAISE_DEPRECATIONS_RUNTIME_ERRORS: "1" permissions: contents: read # for dorny/paths-filter to fetch a list of changed files diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index c69e747253f..4f3e2263dff 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -25,6 +25,7 @@ env: CACHE_SEED: SEED-7 # Bump the number to invalidate all caches RELENV_DATA: "${{ github.workspace }}/.relenv" PIP_DISABLE_PIP_VERSION_CHECK: "1" + RAISE_DEPRECATIONS_RUNTIME_ERRORS: "1" permissions: contents: read # for dorny/paths-filter to fetch a list of changed files diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 661a84340f5..87362595f48 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -24,6 +24,7 @@ env: CACHE_SEED: SEED-7 # Bump the number to invalidate all caches RELENV_DATA: "${{ github.workspace }}/.relenv" PIP_DISABLE_PIP_VERSION_CHECK: "1" + RAISE_DEPRECATIONS_RUNTIME_ERRORS: "1" permissions: contents: write # To be able to publish the release diff --git a/.github/workflows/scheduled.yml b/.github/workflows/scheduled.yml index 2561ac3e80e..c7394e06e71 100644 --- a/.github/workflows/scheduled.yml +++ b/.github/workflows/scheduled.yml @@ -15,6 +15,7 @@ env: CACHE_SEED: SEED-7 # Bump the number to invalidate all caches RELENV_DATA: "${{ github.workspace }}/.relenv" PIP_DISABLE_PIP_VERSION_CHECK: "1" + RAISE_DEPRECATIONS_RUNTIME_ERRORS: "1" permissions: contents: read # for dorny/paths-filter to fetch a list of changed files diff --git a/.github/workflows/staging.yml b/.github/workflows/staging.yml index 00b58b8ad6e..8618905eaa5 100644 --- a/.github/workflows/staging.yml +++ b/.github/workflows/staging.yml @@ -40,6 +40,7 @@ env: CACHE_SEED: SEED-7 # Bump the number to invalidate all caches RELENV_DATA: "${{ github.workspace }}/.relenv" PIP_DISABLE_PIP_VERSION_CHECK: "1" + RAISE_DEPRECATIONS_RUNTIME_ERRORS: "1" permissions: contents: read # for dorny/paths-filter to fetch a list of changed files diff --git a/.github/workflows/templates/build-deps-ci-action.yml.jinja b/.github/workflows/templates/build-deps-ci-action.yml.jinja index 1d3504f6720..a43f7b43d01 100644 --- a/.github/workflows/templates/build-deps-ci-action.yml.jinja +++ b/.github/workflows/templates/build-deps-ci-action.yml.jinja @@ -43,6 +43,7 @@ env: PIP_INDEX_URL: https://pypi-proxy.saltstack.net/root/local/+simple/ PIP_EXTRA_INDEX_URL: https://pypi.org/simple PIP_DISABLE_PIP_VERSION_CHECK: "1" + RAISE_DEPRECATIONS_RUNTIME_ERRORS: "1" jobs: diff --git a/.github/workflows/templates/layout.yml.jinja b/.github/workflows/templates/layout.yml.jinja index 08f71095a8b..4b146ff3a5f 100644 --- a/.github/workflows/templates/layout.yml.jinja +++ b/.github/workflows/templates/layout.yml.jinja @@ -37,6 +37,7 @@ env: CACHE_SEED: SEED-7 # Bump the number to invalidate all caches RELENV_DATA: "${{ github.workspace }}/.relenv" PIP_DISABLE_PIP_VERSION_CHECK: "1" + RAISE_DEPRECATIONS_RUNTIME_ERRORS: "1" <%- endblock env %> diff --git a/.github/workflows/templates/test-package-downloads-action.yml.jinja b/.github/workflows/templates/test-package-downloads-action.yml.jinja index 8752263bbcb..6fb293cf971 100644 --- a/.github/workflows/templates/test-package-downloads-action.yml.jinja +++ b/.github/workflows/templates/test-package-downloads-action.yml.jinja @@ -51,6 +51,7 @@ env: PIP_INDEX_URL: https://pypi-proxy.saltstack.net/root/local/+simple/ PIP_EXTRA_INDEX_URL: https://pypi.org/simple PIP_DISABLE_PIP_VERSION_CHECK: "1" + RAISE_DEPRECATIONS_RUNTIME_ERRORS: "1" jobs: diff --git a/.github/workflows/test-action-linux.yml b/.github/workflows/test-action-linux.yml index d7d1ae0b599..cca9cc029fe 100644 --- a/.github/workflows/test-action-linux.yml +++ b/.github/workflows/test-action-linux.yml @@ -74,6 +74,7 @@ env: PIP_INDEX_URL: https://pypi-proxy.saltstack.net/root/local/+simple/ PIP_EXTRA_INDEX_URL: https://pypi.org/simple PIP_DISABLE_PIP_VERSION_CHECK: "1" + RAISE_DEPRECATIONS_RUNTIME_ERRORS: "1" jobs: diff --git a/.github/workflows/test-action-macos.yml b/.github/workflows/test-action-macos.yml index d9edaff242e..19cd30f2f3f 100644 --- a/.github/workflows/test-action-macos.yml +++ b/.github/workflows/test-action-macos.yml @@ -67,6 +67,7 @@ env: PIP_INDEX_URL: "https://pypi-proxy.saltstack.net/root/local/+simple/" PIP_EXTRA_INDEX_URL: "https://pypi.org/simple" PIP_DISABLE_PIP_VERSION_CHECK: "1" + RAISE_DEPRECATIONS_RUNTIME_ERRORS: "1" jobs: diff --git a/.github/workflows/test-action-windows.yml b/.github/workflows/test-action-windows.yml index 50cdcd4c8b4..4a7d496042c 100644 --- a/.github/workflows/test-action-windows.yml +++ b/.github/workflows/test-action-windows.yml @@ -74,6 +74,7 @@ env: PIP_INDEX_URL: https://pypi-proxy.saltstack.net/root/local/+simple/ PIP_EXTRA_INDEX_URL: https://pypi.org/simple PIP_DISABLE_PIP_VERSION_CHECK: "1" + RAISE_DEPRECATIONS_RUNTIME_ERRORS: "1" jobs: diff --git a/.github/workflows/test-package-downloads-action.yml b/.github/workflows/test-package-downloads-action.yml index f746834120a..8f0f977a26c 100644 --- a/.github/workflows/test-package-downloads-action.yml +++ b/.github/workflows/test-package-downloads-action.yml @@ -51,6 +51,7 @@ env: PIP_INDEX_URL: https://pypi-proxy.saltstack.net/root/local/+simple/ PIP_EXTRA_INDEX_URL: https://pypi.org/simple PIP_DISABLE_PIP_VERSION_CHECK: "1" + RAISE_DEPRECATIONS_RUNTIME_ERRORS: "1" jobs: diff --git a/.github/workflows/test-packages-action-linux.yml b/.github/workflows/test-packages-action-linux.yml index 355d9967b19..db8fe9b5efb 100644 --- a/.github/workflows/test-packages-action-linux.yml +++ b/.github/workflows/test-packages-action-linux.yml @@ -68,6 +68,7 @@ env: PIP_INDEX_URL: https://pypi-proxy.saltstack.net/root/local/+simple/ PIP_EXTRA_INDEX_URL: https://pypi.org/simple PIP_DISABLE_PIP_VERSION_CHECK: "1" + RAISE_DEPRECATIONS_RUNTIME_ERRORS: "1" jobs: diff --git a/.github/workflows/test-packages-action-macos.yml b/.github/workflows/test-packages-action-macos.yml index 5d5b58dfc6e..0db11075663 100644 --- a/.github/workflows/test-packages-action-macos.yml +++ b/.github/workflows/test-packages-action-macos.yml @@ -61,6 +61,7 @@ env: PIP_INDEX_URL: https://pypi-proxy.saltstack.net/root/local/+simple/ PIP_EXTRA_INDEX_URL: https://pypi.org/simple PIP_DISABLE_PIP_VERSION_CHECK: "1" + RAISE_DEPRECATIONS_RUNTIME_ERRORS: "1" jobs: diff --git a/.github/workflows/test-packages-action-windows.yml b/.github/workflows/test-packages-action-windows.yml index d0619857e05..bca0b852592 100644 --- a/.github/workflows/test-packages-action-windows.yml +++ b/.github/workflows/test-packages-action-windows.yml @@ -68,6 +68,7 @@ env: PIP_INDEX_URL: https://pypi-proxy.saltstack.net/root/local/+simple/ PIP_EXTRA_INDEX_URL: https://pypi.org/simple PIP_DISABLE_PIP_VERSION_CHECK: "1" + RAISE_DEPRECATIONS_RUNTIME_ERRORS: "1" jobs: diff --git a/tools/vm.py b/tools/vm.py index 83493c3b04d..6a65c189f63 100644 --- a/tools/vm.py +++ b/tools/vm.py @@ -1438,6 +1438,7 @@ class VM: env["PYTHONUTF8"] = "1" env["OUTPUT_COLUMNS"] = str(self.ctx.console.width) env["GITHUB_ACTIONS_PIPELINE"] = "1" + env["RAISE_DEPRECATIONS_RUNTIME_ERRORS"] = "1" self.write_and_upload_dot_env(env) if self.is_windows is False and self.config.ssh_username != "root": sudo = True From 01752fcf1d645fece62c157e98ba6e3bf485b68b Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Tue, 23 Jan 2024 18:44:04 +0000 Subject: [PATCH 097/146] Stop time bombing with `RuntimeError`'s Signed-off-by: Pedro Algarvio --- salt/utils/versions.py | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/salt/utils/versions.py b/salt/utils/versions.py index 6df888178f4..495470b2fe1 100644 --- a/salt/utils/versions.py +++ b/salt/utils/versions.py @@ -9,12 +9,11 @@ Version parsing based on distutils.version which works under python 3 because on python 3 you can no longer compare strings against integers. """ - - import datetime import inspect import logging import numbers +import os import sys import warnings @@ -141,7 +140,7 @@ def warn_until( if _version_ >= version: caller = inspect.getframeinfo(sys._getframe(stacklevel - 1)) - raise RuntimeError( + deprecated_message = ( "The warning triggered on filename '{filename}', line number " "{lineno}, is supposed to be shown until version " "{until_version} is released. Current version is now " @@ -150,8 +149,15 @@ def warn_until( lineno=caller.lineno, until_version=version.formatted_version, salt_version=_version_.formatted_version, - ), + ) ) + if os.environ.get("RAISE_DEPRECATIONS_RUNTIME_ERRORS", "0") == "1": + # We don't raise RuntimeError by default since that can break + # users systems. We do however want to raise them in a CI context. + raise RuntimeError(deprecated_message) + # Otherwise, print the deprecated message to STDERR + sys.stderr.write(f"\n{deprecated_message}\n") + sys.stderr.flush() if _dont_call_warnings is False: warnings.warn( @@ -209,7 +215,7 @@ def warn_until_date( today = _current_date or datetime.datetime.utcnow().date() if today >= date: caller = inspect.getframeinfo(sys._getframe(stacklevel - 1)) - raise RuntimeError( + deprecated_message = ( "{message} This warning(now exception) triggered on " "filename '{filename}', line number {lineno}, is " "supposed to be shown until {date}. Today is {today}. " @@ -221,6 +227,13 @@ def warn_until_date( today=today.isoformat(), ), ) + if os.environ.get("RAISE_DEPRECATIONS_RUNTIME_ERRORS", "0") == "1": + # We don't raise RuntimeError by default since that can break + # users systems. We do however want to raise them in a CI context. + raise RuntimeError(deprecated_message) + # Otherwise, print the deprecated message to STDERR + sys.stderr.write(f"\n{deprecated_message}\n") + sys.stderr.flush() if _dont_call_warnings is False: warnings.warn( From e0cdb80b55123f4a024759ffcf2b3f0e0788e7ab Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Mon, 8 Jan 2024 14:25:11 -0700 Subject: [PATCH 098/146] CVE fix --- salt/fileserver/__init__.py | 9 +- salt/fileserver/roots.py | 26 ++++ salt/master.py | 13 +- tests/pytests/unit/fileserver/test_roots.py | 45 ++++++- tests/pytests/unit/test_fileserver.py | 127 ++++++++++++++++++++ tests/pytests/unit/test_master.py | 33 +++++ tests/unit/test_fileserver.py | 79 ------------ 7 files changed, 241 insertions(+), 91 deletions(-) create mode 100644 tests/pytests/unit/test_fileserver.py delete mode 100644 tests/unit/test_fileserver.py diff --git a/salt/fileserver/__init__.py b/salt/fileserver/__init__.py index 99f12387f91..4eca98d14a4 100644 --- a/salt/fileserver/__init__.py +++ b/salt/fileserver/__init__.py @@ -568,11 +568,6 @@ class Fileserver: saltenv = salt.utils.stringutils.to_unicode(saltenv) back = self.backends(back) kwargs = {} - fnd = {"path": "", "rel": ""} - if os.path.isabs(path): - return fnd - if "../" in path: - return fnd if salt.utils.url.is_escaped(path): # don't attempt to find URL query arguments in the path path = salt.utils.url.unescape(path) @@ -588,6 +583,10 @@ class Fileserver: args = comp.split("=", 1) kwargs[args[0]] = args[1] + fnd = {"path": "", "rel": ""} + if os.path.isabs(path) or "../" in path: + return fnd + if "env" in kwargs: # "env" is not supported; Use "saltenv". kwargs.pop("env") diff --git a/salt/fileserver/roots.py b/salt/fileserver/roots.py index 4880cbab9b4..4ffdb6df6ff 100644 --- a/salt/fileserver/roots.py +++ b/salt/fileserver/roots.py @@ -27,6 +27,7 @@ import salt.utils.hashutils import salt.utils.path import salt.utils.platform import salt.utils.stringutils +import salt.utils.verify import salt.utils.versions log = logging.getLogger(__name__) @@ -98,6 +99,11 @@ def find_file(path, saltenv="base", **kwargs): if saltenv == "__env__": root = root.replace("__env__", actual_saltenv) full = os.path.join(root, path) + + # Refuse to serve file that is not under the root. + if not salt.utils.verify.clean_path(root, full, subdir=True): + continue + if os.path.isfile(full) and not salt.fileserver.is_file_ignored(__opts__, full): fnd["path"] = full fnd["rel"] = path @@ -128,6 +134,26 @@ def serve_file(load, fnd): ret["dest"] = fnd["rel"] gzip = load.get("gzip", None) fpath = os.path.normpath(fnd["path"]) + + actual_saltenv = saltenv = load["saltenv"] + if saltenv not in __opts__["file_roots"]: + if "__env__" in __opts__["file_roots"]: + log.debug( + "salt environment '%s' maps to __env__ file_roots directory", saltenv + ) + saltenv = "__env__" + else: + return fnd + file_in_root = False + for root in __opts__["file_roots"][saltenv]: + if saltenv == "__env__": + root = root.replace("__env__", actual_saltenv) + # Refuse to serve file that is not under the root. + if salt.utils.verify.clean_path(root, fpath, subdir=True): + file_in_root = True + if not file_in_root: + return ret + with salt.utils.files.fopen(fpath, "rb") as fp_: fp_.seek(load["loc"]) data = fp_.read(__opts__["file_buffer_size"]) diff --git a/salt/master.py b/salt/master.py index 5a317bf93b7..20af1785ad7 100644 --- a/salt/master.py +++ b/salt/master.py @@ -1036,7 +1036,10 @@ class MWorker(salt.utils.process.SignalHandlingProcess): """ key = payload["enc"] load = payload["load"] - ret = {"aes": self._handle_aes, "clear": self._handle_clear}[key](load) + if key == "aes": + ret = self.handle_aes(load) + else: + ret = self.handle_clear(load) raise salt.ext.tornado.gen.Return(ret) def _post_stats(self, start, cmd): @@ -1738,10 +1741,16 @@ class AESFuncs(TransportMethods): self.mminion.returners[fstr](load["jid"], load["load"]) # Register the syndic + + # We are creating a path using user suplied input. Use the + # clean_path to prevent a directory traversal. + root = os.path.join(self.opts["cachedir"], "syndics") syndic_cache_path = os.path.join( self.opts["cachedir"], "syndics", load["id"] ) - if not os.path.exists(syndic_cache_path): + if salt.utils.verify.clean_path( + root, syndic_cache_path + ) and not os.path.exists(syndic_cache_path): path_name = os.path.split(syndic_cache_path)[0] if not os.path.exists(path_name): os.makedirs(path_name) diff --git a/tests/pytests/unit/fileserver/test_roots.py b/tests/pytests/unit/fileserver/test_roots.py index a8a80eea176..5188f04b670 100644 --- a/tests/pytests/unit/fileserver/test_roots.py +++ b/tests/pytests/unit/fileserver/test_roots.py @@ -53,6 +53,11 @@ def tmp_state_tree(tmp_path, testfile, unicode_filename, unicode_dirname): return dirname +@pytest.fixture(autouse=True) +def testfilepath(tmp_state_tree, testfile): + return tmp_state_tree / testfile.name + + @pytest.fixture def configure_loader_modules(tmp_state_tree, temp_salt_master): opts = temp_salt_master.config.copy() @@ -75,17 +80,17 @@ def test_find_file(tmp_state_tree): assert full_path_to_file == ret["path"] -def test_serve_file(testfile): +def test_serve_file(testfilepath): with patch.dict(roots.__opts__, {"file_buffer_size": 262144}): load = { "saltenv": "base", - "path": str(testfile), + "path": str(testfilepath), "loc": 0, } - fnd = {"path": str(testfile), "rel": "testfile"} + fnd = {"path": str(testfilepath), "rel": "testfile"} ret = roots.serve_file(load, fnd) - with salt.utils.files.fopen(str(testfile), "rb") as fp_: + with salt.utils.files.fopen(str(testfilepath), "rb") as fp_: data = fp_.read() assert ret == {"data": data, "dest": "testfile"} @@ -236,7 +241,7 @@ def test_update_mtime_map(): # between Python releases. lines_written = sorted(mtime_map_mock.write_calls()) expected = sorted( - salt.utils.stringutils.to_bytes("{key}:{val}\n".format(key=key, val=val)) + salt.utils.stringutils.to_bytes(f"{key}:{val}\n") for key, val in new_mtime_map.items() ) assert lines_written == expected, lines_written @@ -277,3 +282,33 @@ def test_update_mtime_map_unicode_error(tmp_path): }, "backend": "roots", } + + +def test_find_file_not_in_root(tmp_state_tree): + """ + Fileroots should never 'find' a file that is outside of it's root. + """ + badfile = pathlib.Path(tmp_state_tree).parent / "bar" + badfile.write_text("Bad file") + badpath = f"../bar" + ret = roots.find_file(badpath) + assert ret == {"path": "", "rel": ""} + badpath = f"{tmp_state_tree / '..' / 'bar'}" + ret = roots.find_file(badpath) + assert ret == {"path": "", "rel": ""} + + +def test_serve_file_not_in_root(tmp_state_tree): + """ + Fileroots should never 'serve' a file that is outside of it's root. + """ + badfile = pathlib.Path(tmp_state_tree).parent / "bar" + badfile.write_text("Bad file") + badpath = f"../bar" + load = {"path": "salt://|..\\bar", "saltenv": "base", "loc": 0} + fnd = { + "path": f"{tmp_state_tree / '..' / 'bar'}", + "rel": f"{pathlib.Path('..') / 'bar'}", + } + ret = roots.serve_file(load, fnd) + assert ret == {"data": "", "dest": "../bar"} diff --git a/tests/pytests/unit/test_fileserver.py b/tests/pytests/unit/test_fileserver.py new file mode 100644 index 00000000000..f2b2bb480f9 --- /dev/null +++ b/tests/pytests/unit/test_fileserver.py @@ -0,0 +1,127 @@ +""" +""" + + +import datetime +import os +import time + +import salt.fileserver +import salt.utils.files + + +def test_diff_with_diffent_keys(): + """ + Test that different maps are indeed reported different + """ + map1 = {"file1": 1234} + map2 = {"file2": 1234} + assert salt.fileserver.diff_mtime_map(map1, map2) is True + + +def test_diff_with_diffent_values(): + """ + Test that different maps are indeed reported different + """ + map1 = {"file1": 12345} + map2 = {"file1": 1234} + assert salt.fileserver.diff_mtime_map(map1, map2) is True + + +def test_whitelist(): + opts = { + "fileserver_backend": ["roots", "git", "s3fs", "hgfs", "svn"], + "extension_modules": "", + } + fs = salt.fileserver.Fileserver(opts) + assert sorted(fs.servers.whitelist) == sorted( + ["git", "gitfs", "hg", "hgfs", "svn", "svnfs", "roots", "s3fs"] + ), fs.servers.whitelist + + +def test_future_file_list_cache_file_ignored(tmp_path): + opts = { + "fileserver_backend": ["roots"], + "cachedir": tmp_path, + "extension_modules": "", + } + + back_cachedir = os.path.join(tmp_path, "file_lists/roots") + os.makedirs(os.path.join(back_cachedir)) + + # Touch a couple files + for filename in ("base.p", "foo.txt"): + with salt.utils.files.fopen(os.path.join(back_cachedir, filename), "wb") as _f: + if filename == "base.p": + _f.write(b"\x80") + + # Set modification time to file list cache file to 1 year in the future + now = datetime.datetime.utcnow() + future = now + datetime.timedelta(days=365) + mod_time = time.mktime(future.timetuple()) + os.utime(os.path.join(back_cachedir, "base.p"), (mod_time, mod_time)) + + list_cache = os.path.join(back_cachedir, "base.p") + w_lock = os.path.join(back_cachedir, ".base.w") + ret = salt.fileserver.check_file_list_cache(opts, "files", list_cache, w_lock) + assert ( + ret[1] is True + ), "Cache file list cache file is not refreshed when future modification time" + + +def test_file_server_url_escape(tmp_path): + (tmp_path / "srv").mkdir() + (tmp_path / "srv" / "salt").mkdir() + (tmp_path / "foo").mkdir() + (tmp_path / "foo" / "bar").write_text("Bad file") + fileroot = str(tmp_path / "srv" / "salt") + badfile = str(tmp_path / "foo" / "bar") + opts = { + "fileserver_backend": ["roots"], + "extension_modules": "", + "optimization_order": [ + 0, + ], + "file_roots": { + "base": [fileroot], + }, + "file_ignore_regex": "", + "file_ignore_glob": "", + } + fs = salt.fileserver.Fileserver(opts) + ret = fs.find_file( + "salt://|..\\..\\..\\foo/bar", + "base", + ) + assert ret == {"path": "", "rel": ""} + + +def test_file_server_serve_url_escape(tmp_path): + (tmp_path / "srv").mkdir() + (tmp_path / "srv" / "salt").mkdir() + (tmp_path / "foo").mkdir() + (tmp_path / "foo" / "bar").write_text("Bad file") + fileroot = str(tmp_path / "srv" / "salt") + badfile = str(tmp_path / "foo" / "bar") + opts = { + "fileserver_backend": ["roots"], + "extension_modules": "", + "optimization_order": [ + 0, + ], + "file_roots": { + "base": [fileroot], + }, + "file_ignore_regex": "", + "file_ignore_glob": "", + "file_buffer_size": 2048, + } + fs = salt.fileserver.Fileserver(opts) + ret = fs.serve_file( + { + "path": "salt://|..\\..\\..\\foo/bar", + "saltenv": "base", + "loc": 0, + } + ) + assert ret == {"data": "", "dest": ""} diff --git a/tests/pytests/unit/test_master.py b/tests/pytests/unit/test_master.py index 502767d3e34..80c496c2323 100644 --- a/tests/pytests/unit/test_master.py +++ b/tests/pytests/unit/test_master.py @@ -1,3 +1,4 @@ +import pathlib import time import pytest @@ -160,3 +161,35 @@ def test_when_syndic_return_processes_load_then_correct_values_should_be_returne with patch.object(encrypted_requests, "_return", autospec=True) as fake_return: encrypted_requests._syndic_return(payload) fake_return.assert_called_with(expected_return) + + +def test_syndic_return_cache_dir_creation(encrypted_requests): + """master's cachedir for a syndic will be created by AESFuncs._syndic_return method""" + cachedir = pathlib.Path(encrypted_requests.opts["cachedir"]) + assert not (cachedir / "syndics").exists() + encrypted_requests._syndic_return( + { + "id": "mamajama", + "jid": "", + "return": {}, + } + ) + assert (cachedir / "syndics").exists() + assert (cachedir / "syndics" / "mamajama").exists() + + +def test_syndic_return_cache_dir_creation_traversal(encrypted_requests): + """ + master's AESFuncs._syndic_return method cachdir creation is not vulnerable to a directory traversal + """ + cachedir = pathlib.Path(encrypted_requests.opts["cachedir"]) + assert not (cachedir / "syndics").exists() + encrypted_requests._syndic_return( + { + "id": "../mamajama", + "jid": "", + "return": {}, + } + ) + assert not (cachedir / "syndics").exists() + assert not (cachedir / "mamajama").exists() diff --git a/tests/unit/test_fileserver.py b/tests/unit/test_fileserver.py deleted file mode 100644 index c290b16b7e4..00000000000 --- a/tests/unit/test_fileserver.py +++ /dev/null @@ -1,79 +0,0 @@ -""" - :codeauthor: Joao Mesquita -""" - - -import datetime -import os -import time - -import salt.utils.files -from salt import fileserver -from tests.support.helpers import with_tempdir -from tests.support.mixins import LoaderModuleMockMixin -from tests.support.unit import TestCase - - -class MapDiffTestCase(TestCase): - def test_diff_with_diffent_keys(self): - """ - Test that different maps are indeed reported different - """ - map1 = {"file1": 1234} - map2 = {"file2": 1234} - assert fileserver.diff_mtime_map(map1, map2) is True - - def test_diff_with_diffent_values(self): - """ - Test that different maps are indeed reported different - """ - map1 = {"file1": 12345} - map2 = {"file1": 1234} - assert fileserver.diff_mtime_map(map1, map2) is True - - -class VCSBackendWhitelistCase(TestCase, LoaderModuleMockMixin): - def setup_loader_modules(self): - return {fileserver: {}} - - def test_whitelist(self): - opts = { - "fileserver_backend": ["roots", "git", "s3fs", "hgfs", "svn"], - "extension_modules": "", - } - fs = fileserver.Fileserver(opts) - assert sorted(fs.servers.whitelist) == sorted( - ["git", "gitfs", "hg", "hgfs", "svn", "svnfs", "roots", "s3fs"] - ), fs.servers.whitelist - - @with_tempdir() - def test_future_file_list_cache_file_ignored(self, cachedir): - opts = { - "fileserver_backend": ["roots"], - "cachedir": cachedir, - "extension_modules": "", - } - - back_cachedir = os.path.join(cachedir, "file_lists/roots") - os.makedirs(os.path.join(back_cachedir)) - - # Touch a couple files - for filename in ("base.p", "foo.txt"): - with salt.utils.files.fopen( - os.path.join(back_cachedir, filename), "wb" - ) as _f: - if filename == "base.p": - _f.write(b"\x80") - - # Set modification time to file list cache file to 1 year in the future - now = datetime.datetime.utcnow() - future = now + datetime.timedelta(days=365) - mod_time = time.mktime(future.timetuple()) - os.utime(os.path.join(back_cachedir, "base.p"), (mod_time, mod_time)) - - list_cache = os.path.join(back_cachedir, "base.p") - w_lock = os.path.join(back_cachedir, ".base.w") - ret = fileserver.check_file_list_cache(opts, "files", list_cache, w_lock) - assert ( - ret[1] is True - ), "Cache file list cache file is not refreshed when future modification time" From c10c8a7a2008c963289f41f2c4b233e26508d36a Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Mon, 8 Jan 2024 14:01:23 -0700 Subject: [PATCH 099/146] Fix linter issue --- tests/pytests/unit/test_fileserver.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/tests/pytests/unit/test_fileserver.py b/tests/pytests/unit/test_fileserver.py index f2b2bb480f9..8dd3ea0a27d 100644 --- a/tests/pytests/unit/test_fileserver.py +++ b/tests/pytests/unit/test_fileserver.py @@ -1,7 +1,3 @@ -""" -""" - - import datetime import os import time From 1109ee516f9592768ec95d26a73db6af6fd08067 Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Wed, 10 Jan 2024 15:37:07 -0700 Subject: [PATCH 100/146] Clean up test fixtures --- tests/pytests/unit/fileserver/test_roots.py | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/tests/pytests/unit/fileserver/test_roots.py b/tests/pytests/unit/fileserver/test_roots.py index 5188f04b670..d5dc2639fdc 100644 --- a/tests/pytests/unit/fileserver/test_roots.py +++ b/tests/pytests/unit/fileserver/test_roots.py @@ -28,14 +28,14 @@ def unicode_dirname(): return "соль" -@pytest.fixture(autouse=True) +@pytest.fixture def testfile(tmp_path): fp = tmp_path / "testfile" fp.write_text("This is a testfile") return fp -@pytest.fixture(autouse=True) +@pytest.fixture def tmp_state_tree(tmp_path, testfile, unicode_filename, unicode_dirname): dirname = tmp_path / "roots_tmp_state_tree" dirname.mkdir(parents=True, exist_ok=True) @@ -53,17 +53,16 @@ def tmp_state_tree(tmp_path, testfile, unicode_filename, unicode_dirname): return dirname -@pytest.fixture(autouse=True) +@pytest.fixture def testfilepath(tmp_state_tree, testfile): return tmp_state_tree / testfile.name @pytest.fixture -def configure_loader_modules(tmp_state_tree, temp_salt_master): - opts = temp_salt_master.config.copy() +def configure_loader_modules(tmp_state_tree, master_config): overrides = {"file_roots": {"base": [str(tmp_state_tree)]}} - opts.update(overrides) - return {roots: {"__opts__": opts}} + master_config.update(overrides) + return {roots: {"__opts__": master_config}} def test_file_list(unicode_filename): From 4844ea8b4db87fa066baccb0c833a5851b51be93 Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Wed, 10 Jan 2024 15:42:53 -0700 Subject: [PATCH 101/146] Add changelogs for CVE-2024-22231 and CVE-2024-22232 --- changelog/565.security | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 changelog/565.security diff --git a/changelog/565.security b/changelog/565.security new file mode 100644 index 00000000000..b477f87ad8f --- /dev/null +++ b/changelog/565.security @@ -0,0 +1,2 @@ +CVE-2024-22231 Prevent directory traversal when creating syndic cache directory on the master +CVE-2024-22232 Prevent diretory traversal attacks in the master's serve_file method. From 42bc822bbcc806feca19fcd30fddda3b8be8913e Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Wed, 17 Jan 2024 14:44:23 -0700 Subject: [PATCH 102/146] Add credit --- changelog/565.security | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/changelog/565.security b/changelog/565.security index b477f87ad8f..5d7ec8202ba 100644 --- a/changelog/565.security +++ b/changelog/565.security @@ -1,2 +1,4 @@ CVE-2024-22231 Prevent directory traversal when creating syndic cache directory on the master -CVE-2024-22232 Prevent diretory traversal attacks in the master's serve_file method. +CVE-2024-22232 Prevent directory traversal attacks in the master's serve_file method. +These vulerablities were discovered and reported by: +Yudi Zhao(Huawei Nebula Security Lab),Chenwei Jiang(Huawei Nebula Security Lab) From 4ef0ca4f7274a9866ad47626baf63dbf1a7a059f Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Sat, 20 Jan 2024 19:06:09 -0700 Subject: [PATCH 103/146] Fix test on windows --- tests/pytests/unit/fileserver/test_roots.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tests/pytests/unit/fileserver/test_roots.py b/tests/pytests/unit/fileserver/test_roots.py index d5dc2639fdc..44b18dba9d5 100644 --- a/tests/pytests/unit/fileserver/test_roots.py +++ b/tests/pytests/unit/fileserver/test_roots.py @@ -5,6 +5,7 @@ import copy import pathlib import shutil +import sys import textwrap import pytest @@ -310,4 +311,7 @@ def test_serve_file_not_in_root(tmp_state_tree): "rel": f"{pathlib.Path('..') / 'bar'}", } ret = roots.serve_file(load, fnd) - assert ret == {"data": "", "dest": "../bar"} + if "win" in sys.platform: + assert ret == {"data": "", "dest": "..\\bar"} + else: + assert ret == {"data": "", "dest": "../bar"} From cda26967f9dec16a69906aebeec007564e649f4c Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Sun, 21 Jan 2024 14:49:29 -0700 Subject: [PATCH 104/146] Update changelog file name --- changelog/{565.security => 565.security.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename changelog/{565.security => 565.security.md} (100%) diff --git a/changelog/565.security b/changelog/565.security.md similarity index 100% rename from changelog/565.security rename to changelog/565.security.md From a003271bf5d7f3fe6e19684e7f97694ae1b61efc Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Sun, 21 Jan 2024 14:54:02 -0700 Subject: [PATCH 105/146] Fix fileroots tests --- tests/pytests/unit/fileserver/test_roots.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/pytests/unit/fileserver/test_roots.py b/tests/pytests/unit/fileserver/test_roots.py index 44b18dba9d5..c1660280bc5 100644 --- a/tests/pytests/unit/fileserver/test_roots.py +++ b/tests/pytests/unit/fileserver/test_roots.py @@ -60,10 +60,10 @@ def testfilepath(tmp_state_tree, testfile): @pytest.fixture -def configure_loader_modules(tmp_state_tree, master_config): +def configure_loader_modules(tmp_state_tree, master_opts): overrides = {"file_roots": {"base": [str(tmp_state_tree)]}} - master_config.update(overrides) - return {roots: {"__opts__": master_config}} + master_opts.update(overrides) + return {roots: {"__opts__": master_opts}} def test_file_list(unicode_filename): From f7530f68d3c60566b5ee87d701f341f3d036ee6e Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Sun, 21 Jan 2024 15:18:10 -0700 Subject: [PATCH 106/146] Fix wart in patch --- salt/master.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/salt/master.py b/salt/master.py index 20af1785ad7..e91ab24e2bb 100644 --- a/salt/master.py +++ b/salt/master.py @@ -1037,9 +1037,9 @@ class MWorker(salt.utils.process.SignalHandlingProcess): key = payload["enc"] load = payload["load"] if key == "aes": - ret = self.handle_aes(load) + ret = self._handle_aes(load) else: - ret = self.handle_clear(load) + ret = self._handle_clear(load) raise salt.ext.tornado.gen.Return(ret) def _post_stats(self, start, cmd): From ac52f60ee31af3117686d185cb4df883468c197d Mon Sep 17 00:00:00 2001 From: Alyssa Rock Date: Sat, 20 Jan 2024 12:14:41 -0700 Subject: [PATCH 107/146] Create 3006.5 release notes and update 3005 changelog --- CHANGELOG.md | 12 ++++++++++++ changelog/565.security | 4 ---- doc/topics/releases/3005.5.rst | 15 +++++++++++++++ 3 files changed, 27 insertions(+), 4 deletions(-) delete mode 100644 changelog/565.security create mode 100644 doc/topics/releases/3005.5.rst diff --git a/CHANGELOG.md b/CHANGELOG.md index 221549c4168..9f784ae29e0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,18 @@ Versions are `MAJOR.PATCH`. # Changelog +Salt 3005.5 (2024-01-19) +======================== + +Security +-------- + +- CVE-2024-22231 Prevent directory traversal when creating syndic cache directory on the master + CVE-2024-22232 Prevent directory traversal attacks in the master's serve_file method. + These vulnerablities were discovered and reported by: + Yudi Zhao(Huawei Nebula Security Lab),Chenwei Jiang(Huawei Nebula Security Lab) (#565) + + Salt v3005.4 (2023-10-16) ========================= diff --git a/changelog/565.security b/changelog/565.security deleted file mode 100644 index 5d7ec8202ba..00000000000 --- a/changelog/565.security +++ /dev/null @@ -1,4 +0,0 @@ -CVE-2024-22231 Prevent directory traversal when creating syndic cache directory on the master -CVE-2024-22232 Prevent directory traversal attacks in the master's serve_file method. -These vulerablities were discovered and reported by: -Yudi Zhao(Huawei Nebula Security Lab),Chenwei Jiang(Huawei Nebula Security Lab) diff --git a/doc/topics/releases/3005.5.rst b/doc/topics/releases/3005.5.rst new file mode 100644 index 00000000000..4bea66f7061 --- /dev/null +++ b/doc/topics/releases/3005.5.rst @@ -0,0 +1,15 @@ +.. _release-3005-5: + +========================= +Salt 3005.5 Release Notes +========================= + +Version 3005.5 is a CVE security fix release for :ref:`3005 `. + +Security +-------- + +- Fix CVE-2024-22231 by preventing directory traversal when creating syndic cache directory on the master + CVE-2024-22232 Prevent directory traversal attacks in the master's serve_file method. + These vulnerablities were discovered and reported by: + Yudi Zhao(Huawei Nebula Security Lab),Chenwei Jiang(Huawei Nebula Security Lab) (#565) \ No newline at end of file From 20aff06da50aed192aa863f4c9d2e504a5f356e4 Mon Sep 17 00:00:00 2001 From: Alyssa Rock Date: Mon, 22 Jan 2024 10:17:23 -0700 Subject: [PATCH 108/146] Add minor revisions requested by Shane --- CHANGELOG.md | 7 ++++--- doc/topics/releases/3005.5.rst | 7 ++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9f784ae29e0..bc0bed2beb6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,9 +14,10 @@ Security -------- - CVE-2024-22231 Prevent directory traversal when creating syndic cache directory on the master - CVE-2024-22232 Prevent directory traversal attacks in the master's serve_file method. - These vulnerablities were discovered and reported by: - Yudi Zhao(Huawei Nebula Security Lab),Chenwei Jiang(Huawei Nebula Security Lab) (#565) +- CVE-2024-22232 Prevent directory traversal attacks in the master's serve_file method. + +These vulnerablities were discovered and reported by: +Yudi Zhao(Huawei Nebula Security Lab),Chenwei Jiang(Huawei Nebula Security Lab) (#565) Salt v3005.4 (2023-10-16) diff --git a/doc/topics/releases/3005.5.rst b/doc/topics/releases/3005.5.rst index 4bea66f7061..c459ade53ba 100644 --- a/doc/topics/releases/3005.5.rst +++ b/doc/topics/releases/3005.5.rst @@ -10,6 +10,7 @@ Security -------- - Fix CVE-2024-22231 by preventing directory traversal when creating syndic cache directory on the master - CVE-2024-22232 Prevent directory traversal attacks in the master's serve_file method. - These vulnerablities were discovered and reported by: - Yudi Zhao(Huawei Nebula Security Lab),Chenwei Jiang(Huawei Nebula Security Lab) (#565) \ No newline at end of file +- Fix CVE-2024-22232 Prevent directory traversal attacks in the master's serve_file method. + +These vulnerablities were discovered and reported by: +Yudi Zhao(Huawei Nebula Security Lab),Chenwei Jiang(Huawei Nebula Security Lab) (#565) \ No newline at end of file From 066ab8fd5ad78074f8b41f774f89caa66f2eeed5 Mon Sep 17 00:00:00 2001 From: Alyssa Rock Date: Mon, 22 Jan 2024 10:19:35 -0700 Subject: [PATCH 109/146] More revisions --- CHANGELOG.md | 4 ++-- doc/topics/releases/3005.5.rst | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bc0bed2beb6..5e182b22bdb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,8 +13,8 @@ Salt 3005.5 (2024-01-19) Security -------- -- CVE-2024-22231 Prevent directory traversal when creating syndic cache directory on the master -- CVE-2024-22232 Prevent directory traversal attacks in the master's serve_file method. +- Fix CVE-2024-22231 Prevent directory traversal when creating syndic cache directory on the master. +- Fix CVE-2024-22232 Prevent directory traversal attacks in the master's serve_file method. These vulnerablities were discovered and reported by: Yudi Zhao(Huawei Nebula Security Lab),Chenwei Jiang(Huawei Nebula Security Lab) (#565) diff --git a/doc/topics/releases/3005.5.rst b/doc/topics/releases/3005.5.rst index c459ade53ba..21fbcabd801 100644 --- a/doc/topics/releases/3005.5.rst +++ b/doc/topics/releases/3005.5.rst @@ -9,7 +9,7 @@ Version 3005.5 is a CVE security fix release for :ref:`3005 `. Security -------- -- Fix CVE-2024-22231 by preventing directory traversal when creating syndic cache directory on the master +- Fix CVE-2024-22231 by preventing directory traversal when creating syndic cache directory on the master. - Fix CVE-2024-22232 Prevent directory traversal attacks in the master's serve_file method. These vulnerablities were discovered and reported by: From e39b65aa4be1675b9bb156aba1c2deeababa0420 Mon Sep 17 00:00:00 2001 From: Alyssa Rock Date: Wed, 24 Jan 2024 14:07:56 -0700 Subject: [PATCH 110/146] Add man pages --- doc/man/salt-api.1 | 2 +- doc/man/salt-call.1 | 2 +- doc/man/salt-cloud.1 | 2 +- doc/man/salt-cp.1 | 2 +- doc/man/salt-key.1 | 2 +- doc/man/salt-master.1 | 2 +- doc/man/salt-minion.1 | 2 +- doc/man/salt-proxy.1 | 2 +- doc/man/salt-run.1 | 2 +- doc/man/salt-ssh.1 | 2 +- doc/man/salt-syndic.1 | 2 +- doc/man/salt.1 | 2 +- doc/man/salt.7 | 54 ++++++++++++++++++++++++++++++++----------- doc/man/spm.1 | 2 +- 14 files changed, 54 insertions(+), 26 deletions(-) diff --git a/doc/man/salt-api.1 b/doc/man/salt-api.1 index f93a4808031..460c89ebcae 100644 --- a/doc/man/salt-api.1 +++ b/doc/man/salt-api.1 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "SALT-API" "1" "Oct 16, 2023" "3005" "Salt" +.TH "SALT-API" "1" "Jan 24, 2024" "3005" "Salt" .SH NAME salt-api \- salt-api Command . diff --git a/doc/man/salt-call.1 b/doc/man/salt-call.1 index 2a1ec1051c5..db8d2ce9043 100644 --- a/doc/man/salt-call.1 +++ b/doc/man/salt-call.1 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "SALT-CALL" "1" "Oct 16, 2023" "3005" "Salt" +.TH "SALT-CALL" "1" "Jan 24, 2024" "3005" "Salt" .SH NAME salt-call \- salt-call Documentation . diff --git a/doc/man/salt-cloud.1 b/doc/man/salt-cloud.1 index d2906e9ad33..3b328768e4b 100644 --- a/doc/man/salt-cloud.1 +++ b/doc/man/salt-cloud.1 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "SALT-CLOUD" "1" "Oct 16, 2023" "3005" "Salt" +.TH "SALT-CLOUD" "1" "Jan 24, 2024" "3005" "Salt" .SH NAME salt-cloud \- Salt Cloud Command . diff --git a/doc/man/salt-cp.1 b/doc/man/salt-cp.1 index 1c342aa60c0..0a28d3628df 100644 --- a/doc/man/salt-cp.1 +++ b/doc/man/salt-cp.1 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "SALT-CP" "1" "Oct 16, 2023" "3005" "Salt" +.TH "SALT-CP" "1" "Jan 24, 2024" "3005" "Salt" .SH NAME salt-cp \- salt-cp Documentation . diff --git a/doc/man/salt-key.1 b/doc/man/salt-key.1 index 978fa8f106a..ba2f6bbf160 100644 --- a/doc/man/salt-key.1 +++ b/doc/man/salt-key.1 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "SALT-KEY" "1" "Oct 16, 2023" "3005" "Salt" +.TH "SALT-KEY" "1" "Jan 24, 2024" "3005" "Salt" .SH NAME salt-key \- salt-key Documentation . diff --git a/doc/man/salt-master.1 b/doc/man/salt-master.1 index e22e558d2ef..4e04b00a73d 100644 --- a/doc/man/salt-master.1 +++ b/doc/man/salt-master.1 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "SALT-MASTER" "1" "Oct 16, 2023" "3005" "Salt" +.TH "SALT-MASTER" "1" "Jan 24, 2024" "3005" "Salt" .SH NAME salt-master \- salt-master Documentation . diff --git a/doc/man/salt-minion.1 b/doc/man/salt-minion.1 index 8cccf72a077..1e35245aab3 100644 --- a/doc/man/salt-minion.1 +++ b/doc/man/salt-minion.1 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "SALT-MINION" "1" "Oct 16, 2023" "3005" "Salt" +.TH "SALT-MINION" "1" "Jan 24, 2024" "3005" "Salt" .SH NAME salt-minion \- salt-minion Documentation . diff --git a/doc/man/salt-proxy.1 b/doc/man/salt-proxy.1 index cefa2152540..9a42395e9ac 100644 --- a/doc/man/salt-proxy.1 +++ b/doc/man/salt-proxy.1 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "SALT-PROXY" "1" "Oct 16, 2023" "3005" "Salt" +.TH "SALT-PROXY" "1" "Jan 24, 2024" "3005" "Salt" .SH NAME salt-proxy \- salt-proxy Documentation . diff --git a/doc/man/salt-run.1 b/doc/man/salt-run.1 index f710a86474d..b03bea69239 100644 --- a/doc/man/salt-run.1 +++ b/doc/man/salt-run.1 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "SALT-RUN" "1" "Oct 16, 2023" "3005" "Salt" +.TH "SALT-RUN" "1" "Jan 24, 2024" "3005" "Salt" .SH NAME salt-run \- salt-run Documentation . diff --git a/doc/man/salt-ssh.1 b/doc/man/salt-ssh.1 index f4c26cb5d55..69285bf33e5 100644 --- a/doc/man/salt-ssh.1 +++ b/doc/man/salt-ssh.1 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "SALT-SSH" "1" "Oct 16, 2023" "3005" "Salt" +.TH "SALT-SSH" "1" "Jan 24, 2024" "3005" "Salt" .SH NAME salt-ssh \- salt-ssh Documentation . diff --git a/doc/man/salt-syndic.1 b/doc/man/salt-syndic.1 index 7c981e737a9..cbc2d8edd0b 100644 --- a/doc/man/salt-syndic.1 +++ b/doc/man/salt-syndic.1 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "SALT-SYNDIC" "1" "Oct 16, 2023" "3005" "Salt" +.TH "SALT-SYNDIC" "1" "Jan 24, 2024" "3005" "Salt" .SH NAME salt-syndic \- salt-syndic Documentation . diff --git a/doc/man/salt.1 b/doc/man/salt.1 index 5ee91d6afc9..26f79eec158 100644 --- a/doc/man/salt.1 +++ b/doc/man/salt.1 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "SALT" "1" "Oct 16, 2023" "3005" "Salt" +.TH "SALT" "1" "Jan 24, 2024" "3005" "Salt" .SH NAME salt \- salt . diff --git a/doc/man/salt.7 b/doc/man/salt.7 index 2718ffd2bfd..a8f1cd196c9 100644 --- a/doc/man/salt.7 +++ b/doc/man/salt.7 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "SALT" "7" "Oct 16, 2023" "3005" "Salt" +.TH "SALT" "7" "Jan 24, 2024" "3005" "Salt" .SH NAME salt \- Salt Documentation . @@ -151127,7 +151127,7 @@ salt \(aq*\(aq cmd.powershell_all "dir mydirectory" force_list=True .UNINDENT .INDENT 0.0 .TP -.B salt.modules.cmdmod.retcode(cmd, cwd=None, stdin=None, runas=None, group=None, shell=\(aq/bin/zsh\(aq, python_shell=None, env=None, clean_env=False, template=None, umask=None, output_encoding=None, output_loglevel=\(aqdebug\(aq, log_callback=None, timeout=None, reset_system_locale=True, ignore_retcode=False, saltenv=None, use_vt=False, password=None, success_retcodes=None, success_stdout=None, success_stderr=None, **kwargs) +.B salt.modules.cmdmod.retcode(cmd, cwd=None, stdin=None, runas=None, group=None, shell=\(aq/bin/bash\(aq, python_shell=None, env=None, clean_env=False, template=None, umask=None, output_encoding=None, output_loglevel=\(aqdebug\(aq, log_callback=None, timeout=None, reset_system_locale=True, ignore_retcode=False, saltenv=None, use_vt=False, password=None, success_retcodes=None, success_stdout=None, success_stderr=None, **kwargs) Execute a shell command and return the command\(aqs return code. .INDENT 7.0 .TP @@ -151386,7 +151386,7 @@ salt \(aq*\(aq cmd.retcode "grep f" stdin=\(aqone\entwo\enthree\enfour\enfive\en .UNINDENT .INDENT 0.0 .TP -.B salt.modules.cmdmod.run(cmd, cwd=None, stdin=None, runas=None, group=None, shell=\(aq/bin/zsh\(aq, python_shell=None, env=None, clean_env=False, template=None, rstrip=True, umask=None, output_encoding=None, output_loglevel=\(aqdebug\(aq, log_callback=None, hide_output=False, timeout=None, reset_system_locale=True, ignore_retcode=False, saltenv=None, use_vt=False, bg=False, password=None, encoded_cmd=False, raise_err=False, prepend_path=None, success_retcodes=None, success_stdout=None, success_stderr=None, **kwargs) +.B salt.modules.cmdmod.run(cmd, cwd=None, stdin=None, runas=None, group=None, shell=\(aq/bin/bash\(aq, python_shell=None, env=None, clean_env=False, template=None, rstrip=True, umask=None, output_encoding=None, output_loglevel=\(aqdebug\(aq, log_callback=None, hide_output=False, timeout=None, reset_system_locale=True, ignore_retcode=False, saltenv=None, use_vt=False, bg=False, password=None, encoded_cmd=False, raise_err=False, prepend_path=None, success_retcodes=None, success_stdout=None, success_stderr=None, **kwargs) Execute the passed command and return the output as a string .INDENT 7.0 .TP @@ -151767,7 +151767,7 @@ salt \(aq*\(aq cmd.run cmd=\(aqsed \-e s/=/:/g\(aq .UNINDENT .INDENT 0.0 .TP -.B salt.modules.cmdmod.run_all(cmd, cwd=None, stdin=None, runas=None, group=None, shell=\(aq/bin/zsh\(aq, python_shell=None, env=None, clean_env=False, template=None, rstrip=True, umask=None, output_encoding=None, output_loglevel=\(aqdebug\(aq, log_callback=None, hide_output=False, timeout=None, reset_system_locale=True, ignore_retcode=False, saltenv=None, use_vt=False, redirect_stderr=False, password=None, encoded_cmd=False, prepend_path=None, success_retcodes=None, success_stdout=None, success_stderr=None, **kwargs) +.B salt.modules.cmdmod.run_all(cmd, cwd=None, stdin=None, runas=None, group=None, shell=\(aq/bin/bash\(aq, python_shell=None, env=None, clean_env=False, template=None, rstrip=True, umask=None, output_encoding=None, output_loglevel=\(aqdebug\(aq, log_callback=None, hide_output=False, timeout=None, reset_system_locale=True, ignore_retcode=False, saltenv=None, use_vt=False, redirect_stderr=False, password=None, encoded_cmd=False, prepend_path=None, success_retcodes=None, success_stdout=None, success_stderr=None, **kwargs) Execute the passed command and return a dict of return data .INDENT 7.0 .TP @@ -152110,7 +152110,7 @@ salt \(aq*\(aq cmd.run_all "grep f" stdin=\(aqone\entwo\enthree\enfour\enfive\en .UNINDENT .INDENT 0.0 .TP -.B salt.modules.cmdmod.run_bg(cmd, cwd=None, runas=None, group=None, shell=\(aq/bin/zsh\(aq, python_shell=None, env=None, clean_env=False, template=None, umask=None, timeout=None, output_encoding=None, output_loglevel=\(aqdebug\(aq, log_callback=None, reset_system_locale=True, ignore_retcode=False, saltenv=None, password=None, prepend_path=None, success_retcodes=None, success_stdout=None, success_stderr=None, **kwargs) +.B salt.modules.cmdmod.run_bg(cmd, cwd=None, runas=None, group=None, shell=\(aq/bin/bash\(aq, python_shell=None, env=None, clean_env=False, template=None, umask=None, timeout=None, output_encoding=None, output_loglevel=\(aqdebug\(aq, log_callback=None, reset_system_locale=True, ignore_retcode=False, saltenv=None, password=None, prepend_path=None, success_retcodes=None, success_stdout=None, success_stderr=None, **kwargs) New in version 2016.3.0. .sp @@ -152411,7 +152411,7 @@ salt \(aq*\(aq cmd.run_bg cmd=\(aqls \-lR / | sed \-e s/=/:/g > /tmp/dontwait\(a .UNINDENT .INDENT 0.0 .TP -.B salt.modules.cmdmod.run_chroot(root, cmd, cwd=None, stdin=None, runas=None, group=None, shell=\(aq/bin/zsh\(aq, python_shell=True, binds=None, env=None, clean_env=False, template=None, rstrip=True, umask=None, output_encoding=None, output_loglevel=\(aqquiet\(aq, log_callback=None, hide_output=False, timeout=None, reset_system_locale=True, ignore_retcode=False, saltenv=None, use_vt=False, bg=False, success_retcodes=None, success_stdout=None, success_stderr=None, **kwargs) +.B salt.modules.cmdmod.run_chroot(root, cmd, cwd=None, stdin=None, runas=None, group=None, shell=\(aq/bin/bash\(aq, python_shell=True, binds=None, env=None, clean_env=False, template=None, rstrip=True, umask=None, output_encoding=None, output_loglevel=\(aqquiet\(aq, log_callback=None, hide_output=False, timeout=None, reset_system_locale=True, ignore_retcode=False, saltenv=None, use_vt=False, bg=False, success_retcodes=None, success_stdout=None, success_stderr=None, **kwargs) New in version 2014.7.0. .sp @@ -152632,7 +152632,7 @@ salt \(aq*\(aq cmd.run_chroot /var/lib/lxc/container_name/rootfs \(aqsh /tmp/boo .UNINDENT .INDENT 0.0 .TP -.B salt.modules.cmdmod.run_stderr(cmd, cwd=None, stdin=None, runas=None, group=None, shell=\(aq/bin/zsh\(aq, python_shell=None, env=None, clean_env=False, template=None, rstrip=True, umask=None, output_encoding=None, output_loglevel=\(aqdebug\(aq, log_callback=None, hide_output=False, timeout=None, reset_system_locale=True, ignore_retcode=False, saltenv=None, use_vt=False, password=None, prepend_path=None, success_retcodes=None, success_stdout=None, success_stderr=None, **kwargs) +.B salt.modules.cmdmod.run_stderr(cmd, cwd=None, stdin=None, runas=None, group=None, shell=\(aq/bin/bash\(aq, python_shell=None, env=None, clean_env=False, template=None, rstrip=True, umask=None, output_encoding=None, output_loglevel=\(aqdebug\(aq, log_callback=None, hide_output=False, timeout=None, reset_system_locale=True, ignore_retcode=False, saltenv=None, use_vt=False, password=None, prepend_path=None, success_retcodes=None, success_stdout=None, success_stderr=None, **kwargs) Execute a command and only return the standard error .INDENT 7.0 .TP @@ -152909,7 +152909,7 @@ salt \(aq*\(aq cmd.run_stderr "grep f" stdin=\(aqone\entwo\enthree\enfour\enfive .UNINDENT .INDENT 0.0 .TP -.B salt.modules.cmdmod.run_stdout(cmd, cwd=None, stdin=None, runas=None, group=None, shell=\(aq/bin/zsh\(aq, python_shell=None, env=None, clean_env=False, template=None, rstrip=True, umask=None, output_encoding=None, output_loglevel=\(aqdebug\(aq, log_callback=None, hide_output=False, timeout=None, reset_system_locale=True, ignore_retcode=False, saltenv=None, use_vt=False, password=None, prepend_path=None, success_retcodes=None, success_stdout=None, success_stderr=None, **kwargs) +.B salt.modules.cmdmod.run_stdout(cmd, cwd=None, stdin=None, runas=None, group=None, shell=\(aq/bin/bash\(aq, python_shell=None, env=None, clean_env=False, template=None, rstrip=True, umask=None, output_encoding=None, output_loglevel=\(aqdebug\(aq, log_callback=None, hide_output=False, timeout=None, reset_system_locale=True, ignore_retcode=False, saltenv=None, use_vt=False, password=None, prepend_path=None, success_retcodes=None, success_stdout=None, success_stderr=None, **kwargs) Execute a command, and only return the standard out .INDENT 7.0 .TP @@ -153186,7 +153186,7 @@ salt \(aq*\(aq cmd.run_stdout "grep f" stdin=\(aqone\entwo\enthree\enfour\enfive .UNINDENT .INDENT 0.0 .TP -.B salt.modules.cmdmod.script(source, args=None, cwd=None, stdin=None, runas=None, group=None, shell=\(aq/bin/zsh\(aq, python_shell=None, env=None, template=None, umask=None, output_encoding=None, output_loglevel=\(aqdebug\(aq, log_callback=None, hide_output=False, timeout=None, reset_system_locale=True, saltenv=None, use_vt=False, bg=False, password=None, success_retcodes=None, success_stdout=None, success_stderr=None, **kwargs) +.B salt.modules.cmdmod.script(source, args=None, cwd=None, stdin=None, runas=None, group=None, shell=\(aq/bin/bash\(aq, python_shell=None, env=None, template=None, umask=None, output_encoding=None, output_loglevel=\(aqdebug\(aq, log_callback=None, hide_output=False, timeout=None, reset_system_locale=True, saltenv=None, use_vt=False, bg=False, password=None, success_retcodes=None, success_stdout=None, success_stderr=None, **kwargs) Download a script from a remote location and execute the script locally. The script can be located on the salt master file server or on an HTTP/FTP server. @@ -153462,7 +153462,7 @@ salt \(aq*\(aq cmd.script salt://scripts/runme.sh stdin=\(aqone\entwo\enthree\en .UNINDENT .INDENT 0.0 .TP -.B salt.modules.cmdmod.script_retcode(source, args=None, cwd=None, stdin=None, runas=None, group=None, shell=\(aq/bin/zsh\(aq, python_shell=None, env=None, template=\(aqjinja\(aq, umask=None, timeout=None, reset_system_locale=True, saltenv=None, output_encoding=None, output_loglevel=\(aqdebug\(aq, log_callback=None, use_vt=False, password=None, success_retcodes=None, success_stdout=None, success_stderr=None, **kwargs) +.B salt.modules.cmdmod.script_retcode(source, args=None, cwd=None, stdin=None, runas=None, group=None, shell=\(aq/bin/bash\(aq, python_shell=None, env=None, template=\(aqjinja\(aq, umask=None, timeout=None, reset_system_locale=True, saltenv=None, output_encoding=None, output_loglevel=\(aqdebug\(aq, log_callback=None, use_vt=False, password=None, success_retcodes=None, success_stdout=None, success_stderr=None, **kwargs) Download a script from a remote location and execute the script locally. The script can be located on the salt master file server or on an HTTP/FTP server. @@ -153687,7 +153687,7 @@ salt \(aq*\(aq cmd.script_retcode salt://scripts/runme.sh stdin=\(aqone\entwo\en .UNINDENT .INDENT 0.0 .TP -.B salt.modules.cmdmod.shell(cmd, cwd=None, stdin=None, runas=None, group=None, shell=\(aq/bin/zsh\(aq, env=None, clean_env=False, template=None, rstrip=True, umask=None, output_encoding=None, output_loglevel=\(aqdebug\(aq, log_callback=None, hide_output=False, timeout=None, reset_system_locale=True, ignore_retcode=False, saltenv=None, use_vt=False, bg=False, password=None, prepend_path=None, success_retcodes=None, success_stdout=None, success_stderr=None, **kwargs) +.B salt.modules.cmdmod.shell(cmd, cwd=None, stdin=None, runas=None, group=None, shell=\(aq/bin/bash\(aq, env=None, clean_env=False, template=None, rstrip=True, umask=None, output_encoding=None, output_loglevel=\(aqdebug\(aq, log_callback=None, hide_output=False, timeout=None, reset_system_locale=True, ignore_retcode=False, saltenv=None, use_vt=False, bg=False, password=None, prepend_path=None, success_retcodes=None, success_stdout=None, success_stderr=None, **kwargs) Execute the passed command and return the output as a string. .sp New in version 2015.5.0. @@ -192875,7 +192875,7 @@ Passes through all the parameters described in the \fI\%utils.http.query function\fP: .INDENT 7.0 .TP -.B salt.utils.http.query(url, method=\(aqGET\(aq, params=None, data=None, data_file=None, header_dict=None, header_list=None, header_file=None, username=None, password=None, auth=None, decode=False, decode_type=\(aqauto\(aq, status=False, headers=False, text=False, cookies=None, cookie_jar=None, cookie_format=\(aqlwp\(aq, persist_session=False, session_cookie_jar=None, data_render=False, data_renderer=None, header_render=False, header_renderer=None, template_dict=None, test=False, test_url=None, node=\(aqminion\(aq, port=80, opts=None, backend=None, ca_bundle=None, verify_ssl=None, cert=None, text_out=None, headers_out=None, decode_out=None, stream=False, streaming_callback=None, header_callback=None, handle=False, agent=\(aqSalt/3005.3+25.g1184c5ebfa\(aq, hide_fields=None, raise_error=True, formdata=False, formdata_fieldname=None, formdata_filename=None, decode_body=True, **kwargs) +.B salt.utils.http.query(url, method=\(aqGET\(aq, params=None, data=None, data_file=None, header_dict=None, header_list=None, header_file=None, username=None, password=None, auth=None, decode=False, decode_type=\(aqauto\(aq, status=False, headers=False, text=False, cookies=None, cookie_jar=None, cookie_format=\(aqlwp\(aq, persist_session=False, session_cookie_jar=None, data_render=False, data_renderer=None, header_render=False, header_renderer=None, template_dict=None, test=False, test_url=None, node=\(aqminion\(aq, port=80, opts=None, backend=None, ca_bundle=None, verify_ssl=None, cert=None, text_out=None, headers_out=None, decode_out=None, stream=False, streaming_callback=None, header_callback=None, handle=False, agent=\(aqSalt/3005.4+8.ge88ed17326\(aq, hide_fields=None, raise_error=True, formdata=False, formdata_fieldname=None, formdata_filename=None, decode_body=True, **kwargs) Query a resource, and decode the return data .UNINDENT .INDENT 7.0 @@ -448748,7 +448748,7 @@ installed2 .UNINDENT .INDENT 0.0 .TP -.B salt.states.zcbuildout.installed(name, config=\(aqbuildout.cfg\(aq, quiet=False, parts=None, user=None, env=(), buildout_ver=None, test_release=False, distribute=None, new_st=None, offline=False, newest=False, python=\(aq/home/ch3ll/git/salt/.nox/docs\-man\-compress\-false\-update\-true\-clean\-true/bin/python\(aq, debug=False, verbose=False, unless=None, onlyif=None, use_vt=False, loglevel=\(aqdebug\(aq, **kwargs) +.B salt.states.zcbuildout.installed(name, config=\(aqbuildout.cfg\(aq, quiet=False, parts=None, user=None, env=(), buildout_ver=None, test_release=False, distribute=None, new_st=None, offline=False, newest=False, python=\(aq/mnt/c/Users/alyssar/Documents/Git\-Projects/salt\-priv/.nox/docs\-man\-compress\-false\-update\-true\-clean\-true/bin/python\(aq, debug=False, verbose=False, unless=None, onlyif=None, use_vt=False, loglevel=\(aqdebug\(aq, **kwargs) Install buildout in a specific directory .sp It is a thin wrapper to modules.buildout.buildout @@ -468156,6 +468156,34 @@ Fix __env__ and improve cache cleaning see more info at pull #65017. (#65002) .IP \(bu 2 Update to \fIgitpython>=3.1.35\fP due to \fI\%https://github.com/advisories/GHSA\-wfm5\-v35h\-vwf4\fP and \fI\%https://github.com/advisories/GHSA\-cwvm\-v4w8\-q58c\fP (#65167) .UNINDENT +.SS Salt 3005.4 Release Notes +.sp +Version 3005.4 is a CVE security fix release for 3005\&. +.SS Security +.INDENT 0.0 +.IP \(bu 2 +Fix CVE\-2023\-34049 by ensuring we do not use a predictable name for the script and correctly check returncode of scp command. +This only impacts salt\-ssh users using the pre\-flight option. (cve\-2023\-34049) +.IP \(bu 2 +Bump to \fIcryptography==41.0.4\fP due to \fI\%https://github.com/advisories/GHSA\-v8gr\-m533\-ghj9\fP (#65267) +.IP \(bu 2 +Bump to \fIurllib3==1.26.17\fP or \fIurllib3==2.0.6\fP due to \fI\%https://github.com/advisories/GHSA\-v845\-jxx5\-vc9f\fP (#65334) +.IP \(bu 2 +Bump to \fIgitpython==3.1.37\fP due to \fI\%https://github.com/advisories/GHSA\-cwvm\-v4w8\-q58c\fP (#65383) +.UNINDENT +.SS Salt 3005.5 Release Notes +.sp +Version 3005.5 is a CVE security fix release for 3005\&. +.SS Security +.INDENT 0.0 +.IP \(bu 2 +Fix CVE\-2024\-22231 by preventing directory traversal when creating syndic cache directory on the master. +.IP \(bu 2 +Fix CVE\-2024\-22232 Prevent directory traversal attacks in the master\(aqs serve_file method. +.UNINDENT +.sp +These vulnerablities were discovered and reported by: +Yudi Zhao(Huawei Nebula Security Lab),Chenwei Jiang(Huawei Nebula Security Lab) (#565) .SS Salt 3004 Release Notes \- Codename Silicon .SS New Features .SS Transactional System Support (MicroOS) diff --git a/doc/man/spm.1 b/doc/man/spm.1 index a5be93e66a2..96dba9071b5 100644 --- a/doc/man/spm.1 +++ b/doc/man/spm.1 @@ -1,6 +1,6 @@ .\" Man page generated from reStructuredText. . -.TH "SPM" "1" "Oct 16, 2023" "3005" "Salt" +.TH "SPM" "1" "Jan 24, 2024" "3005" "Salt" .SH NAME spm \- Salt Package Manager Command . From 5303d2198a2dbd2aac59d390ed67418df1f58cb9 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Thu, 25 Jan 2024 14:40:15 +0000 Subject: [PATCH 111/146] Fix artifact downloads when testing package downloads Signed-off-by: Pedro Algarvio --- .../templates/test-package-downloads-action.yml.jinja | 8 ++++---- .github/workflows/test-package-downloads-action.yml | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/templates/test-package-downloads-action.yml.jinja b/.github/workflows/templates/test-package-downloads-action.yml.jinja index 6fb293cf971..6eb798fa3f0 100644 --- a/.github/workflows/templates/test-package-downloads-action.yml.jinja +++ b/.github/workflows/templates/test-package-downloads-action.yml.jinja @@ -86,7 +86,7 @@ jobs: - name: Download Onedir Tarball as an Artifact uses: actions/download-artifact@v4 with: - name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-linux-${{ matrix.arch }}.tar.xz + name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-linux-${{ matrix.arch == 'aarch64' && 'arm64' || matrix.arch }}.tar.xz path: artifacts/ - name: Decompress Onedir Tarball @@ -94,12 +94,12 @@ jobs: run: | python3 -c "import os; os.makedirs('artifacts', exist_ok=True)" cd artifacts - tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-linux-${{ matrix.arch }}.tar.xz + tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-linux-${{ matrix.arch == 'aarch64' && 'arm64' || matrix.arch }}.tar.xz - - name: Download nox.linux.${{ matrix.arch }}.tar.* artifact for session ${{ inputs.nox-session }} + - name: Download nox.linux.${{ matrix.arch == 'aarch64' && 'arm64' || matrix.arch }}.tar.* artifact for session ${{ inputs.nox-session }} uses: actions/download-artifact@v4 with: - name: nox-linux-${{ matrix.arch }}-${{ inputs.nox-session }} + name: nox-linux-${{ matrix.arch == 'aarch64' && 'arm64' || matrix.arch }}-${{ inputs.nox-session }} - name: Setup Python Tools Scripts uses: ./.github/actions/setup-python-tools-scripts diff --git a/.github/workflows/test-package-downloads-action.yml b/.github/workflows/test-package-downloads-action.yml index 8f0f977a26c..f59c694eacf 100644 --- a/.github/workflows/test-package-downloads-action.yml +++ b/.github/workflows/test-package-downloads-action.yml @@ -231,7 +231,7 @@ jobs: - name: Download Onedir Tarball as an Artifact uses: actions/download-artifact@v4 with: - name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-linux-${{ matrix.arch }}.tar.xz + name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-linux-${{ matrix.arch == 'aarch64' && 'arm64' || matrix.arch }}.tar.xz path: artifacts/ - name: Decompress Onedir Tarball @@ -239,12 +239,12 @@ jobs: run: | python3 -c "import os; os.makedirs('artifacts', exist_ok=True)" cd artifacts - tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-linux-${{ matrix.arch }}.tar.xz + tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-linux-${{ matrix.arch == 'aarch64' && 'arm64' || matrix.arch }}.tar.xz - - name: Download nox.linux.${{ matrix.arch }}.tar.* artifact for session ${{ inputs.nox-session }} + - name: Download nox.linux.${{ matrix.arch == 'aarch64' && 'arm64' || matrix.arch }}.tar.* artifact for session ${{ inputs.nox-session }} uses: actions/download-artifact@v4 with: - name: nox-linux-${{ matrix.arch }}-${{ inputs.nox-session }} + name: nox-linux-${{ matrix.arch == 'aarch64' && 'arm64' || matrix.arch }}-${{ inputs.nox-session }} - name: Setup Python Tools Scripts uses: ./.github/actions/setup-python-tools-scripts From 225464d3b5b8422b2309042b310c6a8b080f0538 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Thu, 25 Jan 2024 15:00:10 +0000 Subject: [PATCH 112/146] Fix the Mac OS onedir package download tests Signed-off-by: Pedro Algarvio --- tests/pytests/pkg/download/test_pkg_download.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/pytests/pkg/download/test_pkg_download.py b/tests/pytests/pkg/download/test_pkg_download.py index dce3880ed8b..a71d4b038e9 100644 --- a/tests/pytests/pkg/download/test_pkg_download.py +++ b/tests/pytests/pkg/download/test_pkg_download.py @@ -431,7 +431,7 @@ def setup_macos( assert ret.returncode == 0, ret else: # We are testing the onedir download - onedir_name = f"salt-{salt_release}-onedir-darwin-{arch}.tar.xz" + onedir_name = f"salt-{salt_release}-onedir-macos-{arch}.tar.xz" if repo_subpath == "minor": repo_url_base = f"{root_url}/onedir/{repo_subpath}/{salt_release}" else: From 6c39ed458f39861f5c6a7900be3b12bae9274e95 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Thu, 25 Jan 2024 14:40:15 +0000 Subject: [PATCH 113/146] Fix artifact downloads when testing package downloads Signed-off-by: Pedro Algarvio --- .../templates/test-package-downloads-action.yml.jinja | 8 ++++---- .github/workflows/test-package-downloads-action.yml | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/templates/test-package-downloads-action.yml.jinja b/.github/workflows/templates/test-package-downloads-action.yml.jinja index ee7f19c7175..979dba27512 100644 --- a/.github/workflows/templates/test-package-downloads-action.yml.jinja +++ b/.github/workflows/templates/test-package-downloads-action.yml.jinja @@ -86,7 +86,7 @@ jobs: - name: Download Onedir Tarball as an Artifact uses: actions/download-artifact@v4 with: - name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-linux-${{ matrix.arch }}.tar.xz + name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-linux-${{ matrix.arch == 'aarch64' && 'arm64' || matrix.arch }}.tar.xz path: artifacts/ - name: Decompress Onedir Tarball @@ -94,12 +94,12 @@ jobs: run: | python3 -c "import os; os.makedirs('artifacts', exist_ok=True)" cd artifacts - tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-linux-${{ matrix.arch }}.tar.xz + tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-linux-${{ matrix.arch == 'aarch64' && 'arm64' || matrix.arch }}.tar.xz - - name: Download nox.linux.${{ matrix.arch }}.tar.* artifact for session ${{ inputs.nox-session }} + - name: Download nox.linux.${{ matrix.arch == 'aarch64' && 'arm64' || matrix.arch }}.tar.* artifact for session ${{ inputs.nox-session }} uses: actions/download-artifact@v4 with: - name: nox-linux-${{ matrix.arch }}-${{ inputs.nox-session }} + name: nox-linux-${{ matrix.arch == 'aarch64' && 'arm64' || matrix.arch }}-${{ inputs.nox-session }} - name: Setup Python Tools Scripts uses: ./.github/actions/setup-python-tools-scripts diff --git a/.github/workflows/test-package-downloads-action.yml b/.github/workflows/test-package-downloads-action.yml index a031416d943..ec1c2a83d23 100644 --- a/.github/workflows/test-package-downloads-action.yml +++ b/.github/workflows/test-package-downloads-action.yml @@ -231,7 +231,7 @@ jobs: - name: Download Onedir Tarball as an Artifact uses: actions/download-artifact@v4 with: - name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-linux-${{ matrix.arch }}.tar.xz + name: ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-linux-${{ matrix.arch == 'aarch64' && 'arm64' || matrix.arch }}.tar.xz path: artifacts/ - name: Decompress Onedir Tarball @@ -239,12 +239,12 @@ jobs: run: | python3 -c "import os; os.makedirs('artifacts', exist_ok=True)" cd artifacts - tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-linux-${{ matrix.arch }}.tar.xz + tar xvf ${{ inputs.package-name }}-${{ inputs.salt-version }}-onedir-linux-${{ matrix.arch == 'aarch64' && 'arm64' || matrix.arch }}.tar.xz - - name: Download nox.linux.${{ matrix.arch }}.tar.* artifact for session ${{ inputs.nox-session }} + - name: Download nox.linux.${{ matrix.arch == 'aarch64' && 'arm64' || matrix.arch }}.tar.* artifact for session ${{ inputs.nox-session }} uses: actions/download-artifact@v4 with: - name: nox-linux-${{ matrix.arch }}-${{ inputs.nox-session }} + name: nox-linux-${{ matrix.arch == 'aarch64' && 'arm64' || matrix.arch }}-${{ inputs.nox-session }} - name: Setup Python Tools Scripts uses: ./.github/actions/setup-python-tools-scripts From a51d3e00dd9810400398e83f462f35a4e26a3292 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Thu, 25 Jan 2024 15:00:10 +0000 Subject: [PATCH 114/146] Fix the Mac OS onedir package download tests Signed-off-by: Pedro Algarvio --- tests/pytests/pkg/download/test_pkg_download.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/pytests/pkg/download/test_pkg_download.py b/tests/pytests/pkg/download/test_pkg_download.py index dce3880ed8b..a71d4b038e9 100644 --- a/tests/pytests/pkg/download/test_pkg_download.py +++ b/tests/pytests/pkg/download/test_pkg_download.py @@ -431,7 +431,7 @@ def setup_macos( assert ret.returncode == 0, ret else: # We are testing the onedir download - onedir_name = f"salt-{salt_release}-onedir-darwin-{arch}.tar.xz" + onedir_name = f"salt-{salt_release}-onedir-macos-{arch}.tar.xz" if repo_subpath == "minor": repo_url_base = f"{root_url}/onedir/{repo_subpath}/{salt_release}" else: From 02f0daab696d2b7f1466b21e137b559e1aa36d0f Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Thu, 25 Jan 2024 19:14:23 +0000 Subject: [PATCH 115/146] Programmatically discover which OS versions to build repos Signed-off-by: Pedro Algarvio --- .github/workflows/nightly.yml | 92 +++++++++++++++++------------------ .github/workflows/staging.yml | 92 +++++++++++++++++------------------ tools/precommit/workflows.py | 47 ++++++++++++------ 3 files changed, 121 insertions(+), 110 deletions(-) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 4f3e2263dff..2e9ab69c7c1 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -2240,6 +2240,14 @@ jobs: distro: ubuntu version: "22.04" arch: arm64 + - pkg-type: deb + distro: ubuntu + version: "23.04" + arch: x86_64 + - pkg-type: deb + distro: ubuntu + version: "23.04" + arch: arm64 steps: - uses: actions/checkout@v4 @@ -2353,54 +2361,6 @@ jobs: distro: amazon version: "2023" arch: aarch64 - - pkg-type: rpm - distro: redhat - version: "7" - arch: x86_64 - - pkg-type: rpm - distro: redhat - version: "7" - arch: arm64 - - pkg-type: rpm - distro: redhat - version: "7" - arch: aarch64 - - pkg-type: rpm - distro: redhat - version: "8" - arch: x86_64 - - pkg-type: rpm - distro: redhat - version: "8" - arch: arm64 - - pkg-type: rpm - distro: redhat - version: "8" - arch: aarch64 - - pkg-type: rpm - distro: redhat - version: "9" - arch: x86_64 - - pkg-type: rpm - distro: redhat - version: "9" - arch: arm64 - - pkg-type: rpm - distro: redhat - version: "9" - arch: aarch64 - - pkg-type: rpm - distro: fedora - version: "36" - arch: x86_64 - - pkg-type: rpm - distro: fedora - version: "36" - arch: arm64 - - pkg-type: rpm - distro: fedora - version: "36" - arch: aarch64 - pkg-type: rpm distro: fedora version: "37" @@ -2461,6 +2421,42 @@ jobs: distro: photon version: "5" arch: aarch64 + - pkg-type: rpm + distro: redhat + version: "7" + arch: x86_64 + - pkg-type: rpm + distro: redhat + version: "7" + arch: arm64 + - pkg-type: rpm + distro: redhat + version: "7" + arch: aarch64 + - pkg-type: rpm + distro: redhat + version: "8" + arch: x86_64 + - pkg-type: rpm + distro: redhat + version: "8" + arch: arm64 + - pkg-type: rpm + distro: redhat + version: "8" + arch: aarch64 + - pkg-type: rpm + distro: redhat + version: "9" + arch: x86_64 + - pkg-type: rpm + distro: redhat + version: "9" + arch: arm64 + - pkg-type: rpm + distro: redhat + version: "9" + arch: aarch64 steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/staging.yml b/.github/workflows/staging.yml index 8618905eaa5..fa11eb82402 100644 --- a/.github/workflows/staging.yml +++ b/.github/workflows/staging.yml @@ -2082,6 +2082,14 @@ jobs: distro: ubuntu version: "22.04" arch: arm64 + - pkg-type: deb + distro: ubuntu + version: "23.04" + arch: x86_64 + - pkg-type: deb + distro: ubuntu + version: "23.04" + arch: arm64 steps: - uses: actions/checkout@v4 @@ -2195,54 +2203,6 @@ jobs: distro: amazon version: "2023" arch: aarch64 - - pkg-type: rpm - distro: redhat - version: "7" - arch: x86_64 - - pkg-type: rpm - distro: redhat - version: "7" - arch: arm64 - - pkg-type: rpm - distro: redhat - version: "7" - arch: aarch64 - - pkg-type: rpm - distro: redhat - version: "8" - arch: x86_64 - - pkg-type: rpm - distro: redhat - version: "8" - arch: arm64 - - pkg-type: rpm - distro: redhat - version: "8" - arch: aarch64 - - pkg-type: rpm - distro: redhat - version: "9" - arch: x86_64 - - pkg-type: rpm - distro: redhat - version: "9" - arch: arm64 - - pkg-type: rpm - distro: redhat - version: "9" - arch: aarch64 - - pkg-type: rpm - distro: fedora - version: "36" - arch: x86_64 - - pkg-type: rpm - distro: fedora - version: "36" - arch: arm64 - - pkg-type: rpm - distro: fedora - version: "36" - arch: aarch64 - pkg-type: rpm distro: fedora version: "37" @@ -2303,6 +2263,42 @@ jobs: distro: photon version: "5" arch: aarch64 + - pkg-type: rpm + distro: redhat + version: "7" + arch: x86_64 + - pkg-type: rpm + distro: redhat + version: "7" + arch: arm64 + - pkg-type: rpm + distro: redhat + version: "7" + arch: aarch64 + - pkg-type: rpm + distro: redhat + version: "8" + arch: x86_64 + - pkg-type: rpm + distro: redhat + version: "8" + arch: arm64 + - pkg-type: rpm + distro: redhat + version: "8" + arch: aarch64 + - pkg-type: rpm + distro: redhat + version: "9" + arch: x86_64 + - pkg-type: rpm + distro: redhat + version: "9" + arch: arm64 + - pkg-type: rpm + distro: redhat + version: "9" + arch: aarch64 steps: - uses: actions/checkout@v4 diff --git a/tools/precommit/workflows.py b/tools/precommit/workflows.py index e76b77564b3..1f8f8755656 100644 --- a/tools/precommit/workflows.py +++ b/tools/precommit/workflows.py @@ -253,24 +253,43 @@ def generate_workflows(ctx: Context): test_salt_pkg_downloads_needs_slugs.add("build-ci-deps") build_rpms_listing = [] - for distro, releases in ( - ("amazon", ("2", "2023")), - ("redhat", ("7", "8", "9")), - ("fedora", ("36", "37", "38")), - ("photon", ("3", "4", "5")), - ): - for release in releases: + rpm_os_versions: dict[str, list[str]] = { + "amazon": [], + "fedora": [], + "photon": [], + "redhat": [], + } + for slug in sorted(AMIS): + if slug.endswith("-arm64"): + continue + if not slug.startswith( + ("amazonlinux", "almalinux", "centos", "fedora", "photonos") + ): + continue + os_name, os_version = slug.split("-") + if os_name == "amazonlinux": + rpm_os_versions["amazon"].append(os_version) + elif os_name == "photonos": + rpm_os_versions["photon"].append(os_version) + elif os_name == "fedora": + rpm_os_versions["fedora"].append(os_version) + else: + rpm_os_versions["redhat"].append(os_version) + + for distro, releases in sorted(rpm_os_versions.items()): + for release in sorted(set(releases)): for arch in ("x86_64", "arm64", "aarch64"): build_rpms_listing.append((distro, release, arch)) build_debs_listing = [] - for distro, releases in ( - ("debian", ("10", "11", "12")), - ("ubuntu", ("20.04", "22.04")), - ): - for release in releases: - for arch in ("x86_64", "arm64"): - build_debs_listing.append((distro, release, arch)) + for slug in sorted(AMIS): + if not slug.startswith(("debian-", "ubuntu-")): + continue + if slug.endswith("-arm64"): + continue + os_name, os_version = slug.split("-") + for arch in ("x86_64", "arm64"): + build_debs_listing.append((os_name, os_version, arch)) env = Environment( block_start_string="<%", From f1ed56c2a5311c6552e9ed3f3629e07dfc1ae426 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Thu, 25 Jan 2024 19:14:23 +0000 Subject: [PATCH 116/146] Programmatically discover which OS versions to build repos Signed-off-by: Pedro Algarvio --- .github/workflows/nightly.yml | 92 +++++++++++++++++------------------ .github/workflows/staging.yml | 92 +++++++++++++++++------------------ tools/precommit/workflows.py | 47 ++++++++++++------ 3 files changed, 121 insertions(+), 110 deletions(-) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index ae18627bc9d..06159dd6f90 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -2239,6 +2239,14 @@ jobs: distro: ubuntu version: "22.04" arch: arm64 + - pkg-type: deb + distro: ubuntu + version: "23.04" + arch: x86_64 + - pkg-type: deb + distro: ubuntu + version: "23.04" + arch: arm64 steps: - uses: actions/checkout@v4 @@ -2352,54 +2360,6 @@ jobs: distro: amazon version: "2023" arch: aarch64 - - pkg-type: rpm - distro: redhat - version: "7" - arch: x86_64 - - pkg-type: rpm - distro: redhat - version: "7" - arch: arm64 - - pkg-type: rpm - distro: redhat - version: "7" - arch: aarch64 - - pkg-type: rpm - distro: redhat - version: "8" - arch: x86_64 - - pkg-type: rpm - distro: redhat - version: "8" - arch: arm64 - - pkg-type: rpm - distro: redhat - version: "8" - arch: aarch64 - - pkg-type: rpm - distro: redhat - version: "9" - arch: x86_64 - - pkg-type: rpm - distro: redhat - version: "9" - arch: arm64 - - pkg-type: rpm - distro: redhat - version: "9" - arch: aarch64 - - pkg-type: rpm - distro: fedora - version: "36" - arch: x86_64 - - pkg-type: rpm - distro: fedora - version: "36" - arch: arm64 - - pkg-type: rpm - distro: fedora - version: "36" - arch: aarch64 - pkg-type: rpm distro: fedora version: "37" @@ -2460,6 +2420,42 @@ jobs: distro: photon version: "5" arch: aarch64 + - pkg-type: rpm + distro: redhat + version: "7" + arch: x86_64 + - pkg-type: rpm + distro: redhat + version: "7" + arch: arm64 + - pkg-type: rpm + distro: redhat + version: "7" + arch: aarch64 + - pkg-type: rpm + distro: redhat + version: "8" + arch: x86_64 + - pkg-type: rpm + distro: redhat + version: "8" + arch: arm64 + - pkg-type: rpm + distro: redhat + version: "8" + arch: aarch64 + - pkg-type: rpm + distro: redhat + version: "9" + arch: x86_64 + - pkg-type: rpm + distro: redhat + version: "9" + arch: arm64 + - pkg-type: rpm + distro: redhat + version: "9" + arch: aarch64 steps: - uses: actions/checkout@v4 diff --git a/.github/workflows/staging.yml b/.github/workflows/staging.yml index 8618905eaa5..fa11eb82402 100644 --- a/.github/workflows/staging.yml +++ b/.github/workflows/staging.yml @@ -2082,6 +2082,14 @@ jobs: distro: ubuntu version: "22.04" arch: arm64 + - pkg-type: deb + distro: ubuntu + version: "23.04" + arch: x86_64 + - pkg-type: deb + distro: ubuntu + version: "23.04" + arch: arm64 steps: - uses: actions/checkout@v4 @@ -2195,54 +2203,6 @@ jobs: distro: amazon version: "2023" arch: aarch64 - - pkg-type: rpm - distro: redhat - version: "7" - arch: x86_64 - - pkg-type: rpm - distro: redhat - version: "7" - arch: arm64 - - pkg-type: rpm - distro: redhat - version: "7" - arch: aarch64 - - pkg-type: rpm - distro: redhat - version: "8" - arch: x86_64 - - pkg-type: rpm - distro: redhat - version: "8" - arch: arm64 - - pkg-type: rpm - distro: redhat - version: "8" - arch: aarch64 - - pkg-type: rpm - distro: redhat - version: "9" - arch: x86_64 - - pkg-type: rpm - distro: redhat - version: "9" - arch: arm64 - - pkg-type: rpm - distro: redhat - version: "9" - arch: aarch64 - - pkg-type: rpm - distro: fedora - version: "36" - arch: x86_64 - - pkg-type: rpm - distro: fedora - version: "36" - arch: arm64 - - pkg-type: rpm - distro: fedora - version: "36" - arch: aarch64 - pkg-type: rpm distro: fedora version: "37" @@ -2303,6 +2263,42 @@ jobs: distro: photon version: "5" arch: aarch64 + - pkg-type: rpm + distro: redhat + version: "7" + arch: x86_64 + - pkg-type: rpm + distro: redhat + version: "7" + arch: arm64 + - pkg-type: rpm + distro: redhat + version: "7" + arch: aarch64 + - pkg-type: rpm + distro: redhat + version: "8" + arch: x86_64 + - pkg-type: rpm + distro: redhat + version: "8" + arch: arm64 + - pkg-type: rpm + distro: redhat + version: "8" + arch: aarch64 + - pkg-type: rpm + distro: redhat + version: "9" + arch: x86_64 + - pkg-type: rpm + distro: redhat + version: "9" + arch: arm64 + - pkg-type: rpm + distro: redhat + version: "9" + arch: aarch64 steps: - uses: actions/checkout@v4 diff --git a/tools/precommit/workflows.py b/tools/precommit/workflows.py index e76b77564b3..1f8f8755656 100644 --- a/tools/precommit/workflows.py +++ b/tools/precommit/workflows.py @@ -253,24 +253,43 @@ def generate_workflows(ctx: Context): test_salt_pkg_downloads_needs_slugs.add("build-ci-deps") build_rpms_listing = [] - for distro, releases in ( - ("amazon", ("2", "2023")), - ("redhat", ("7", "8", "9")), - ("fedora", ("36", "37", "38")), - ("photon", ("3", "4", "5")), - ): - for release in releases: + rpm_os_versions: dict[str, list[str]] = { + "amazon": [], + "fedora": [], + "photon": [], + "redhat": [], + } + for slug in sorted(AMIS): + if slug.endswith("-arm64"): + continue + if not slug.startswith( + ("amazonlinux", "almalinux", "centos", "fedora", "photonos") + ): + continue + os_name, os_version = slug.split("-") + if os_name == "amazonlinux": + rpm_os_versions["amazon"].append(os_version) + elif os_name == "photonos": + rpm_os_versions["photon"].append(os_version) + elif os_name == "fedora": + rpm_os_versions["fedora"].append(os_version) + else: + rpm_os_versions["redhat"].append(os_version) + + for distro, releases in sorted(rpm_os_versions.items()): + for release in sorted(set(releases)): for arch in ("x86_64", "arm64", "aarch64"): build_rpms_listing.append((distro, release, arch)) build_debs_listing = [] - for distro, releases in ( - ("debian", ("10", "11", "12")), - ("ubuntu", ("20.04", "22.04")), - ): - for release in releases: - for arch in ("x86_64", "arm64"): - build_debs_listing.append((distro, release, arch)) + for slug in sorted(AMIS): + if not slug.startswith(("debian-", "ubuntu-")): + continue + if slug.endswith("-arm64"): + continue + os_name, os_version = slug.split("-") + for arch in ("x86_64", "arm64"): + build_debs_listing.append((os_name, os_version, arch)) env = Environment( block_start_string="<%", From 64024c52f8a12f10e1a64a82a0f60f6ea2d47d52 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Thu, 25 Jan 2024 21:36:36 +0000 Subject: [PATCH 117/146] Allow creating the packages repository for Ubuntu 23.04 Signed-off-by: Pedro Algarvio --- tools/pkg/repo/create.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tools/pkg/repo/create.py b/tools/pkg/repo/create.py index bc36463bbf6..ba2f7834b22 100644 --- a/tools/pkg/repo/create.py +++ b/tools/pkg/repo/create.py @@ -62,6 +62,10 @@ _deb_distro_info = { "label": "salt_ubuntu2204", "codename": "jammy", }, + "23.04": { + "label": "salt_ubuntu2304", + "codename": "mantic", + }, }, } From 12cdb40981bae8d97ce149553e87f5deaa9fb63a Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Fri, 26 Jan 2024 04:53:15 +0000 Subject: [PATCH 118/146] Fix Ubuntu 23.04 code name Signed-off-by: Pedro Algarvio --- tools/pkg/repo/create.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/pkg/repo/create.py b/tools/pkg/repo/create.py index ba2f7834b22..1457d84a7af 100644 --- a/tools/pkg/repo/create.py +++ b/tools/pkg/repo/create.py @@ -64,7 +64,7 @@ _deb_distro_info = { }, "23.04": { "label": "salt_ubuntu2304", - "codename": "mantic", + "codename": "lunar", }, }, } From 5176efd7f8f8808732be449e4f9a5a9355c0f1ed Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Thu, 25 Jan 2024 21:36:36 +0000 Subject: [PATCH 119/146] Allow creating the packages repository for Ubuntu 23.04 Signed-off-by: Pedro Algarvio --- tools/pkg/repo/create.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tools/pkg/repo/create.py b/tools/pkg/repo/create.py index bc36463bbf6..ba2f7834b22 100644 --- a/tools/pkg/repo/create.py +++ b/tools/pkg/repo/create.py @@ -62,6 +62,10 @@ _deb_distro_info = { "label": "salt_ubuntu2204", "codename": "jammy", }, + "23.04": { + "label": "salt_ubuntu2304", + "codename": "mantic", + }, }, } From 3f378cb381c45ff7e87e1b26aa52647e6d7d5c03 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Fri, 26 Jan 2024 04:53:15 +0000 Subject: [PATCH 120/146] Fix Ubuntu 23.04 code name Signed-off-by: Pedro Algarvio --- tools/pkg/repo/create.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/pkg/repo/create.py b/tools/pkg/repo/create.py index ba2f7834b22..1457d84a7af 100644 --- a/tools/pkg/repo/create.py +++ b/tools/pkg/repo/create.py @@ -64,7 +64,7 @@ _deb_distro_info = { }, "23.04": { "label": "salt_ubuntu2304", - "codename": "mantic", + "codename": "lunar", }, }, } From b1fa82b9a8375aea5744e202c18cb0a36a1093b8 Mon Sep 17 00:00:00 2001 From: Salt Project Packaging Date: Fri, 26 Jan 2024 12:06:14 +0000 Subject: [PATCH 121/146] Release v3006.6 --- CHANGELOG.md | 26 ++++++++ changelog/565.security.md | 4 -- changelog/65759.fixed.md | 1 - changelog/65830.security.md | 5 -- changelog/665924.changed.md | 1 - doc/man/salt-api.1 | 4 +- doc/man/salt-call.1 | 4 +- doc/man/salt-cloud.1 | 4 +- doc/man/salt-cp.1 | 4 +- doc/man/salt-key.1 | 4 +- doc/man/salt-master.1 | 4 +- doc/man/salt-minion.1 | 4 +- doc/man/salt-proxy.1 | 4 +- doc/man/salt-run.1 | 4 +- doc/man/salt-ssh.1 | 4 +- doc/man/salt-syndic.1 | 4 +- doc/man/salt.1 | 4 +- doc/man/salt.7 | 65 +++++++++++-------- doc/man/spm.1 | 4 +- doc/topics/releases/3006.6.md | 41 ++++++++++++ .../releases/templates/3006.6.md.template | 14 ++++ pkg/debian/changelog | 26 ++++++++ pkg/rpm/salt.spec | 25 ++++++- 23 files changed, 194 insertions(+), 66 deletions(-) delete mode 100644 changelog/565.security.md delete mode 100644 changelog/65759.fixed.md delete mode 100644 changelog/65830.security.md delete mode 100644 changelog/665924.changed.md create mode 100644 doc/topics/releases/3006.6.md create mode 100644 doc/topics/releases/templates/3006.6.md.template diff --git a/CHANGELOG.md b/CHANGELOG.md index 0fd88914af8..27cbe1534f3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,32 @@ Versions are `MAJOR.PATCH`. # Changelog +## 3006.6 (2024-01-26) + + +### Changed + +- Salt no longer time bombs user installations on code using `salt.utils.versions.warn_until_date` [#665924](https://github.com/saltstack/salt/issues/665924) + + +### Fixed + +- Fix un-closed transport in tornado netapi [#65759](https://github.com/saltstack/salt/issues/65759) + + +### Security + +- CVE-2024-22231 Prevent directory traversal when creating syndic cache directory on the master + CVE-2024-22232 Prevent directory traversal attacks in the master's serve_file method. + These vulerablities were discovered and reported by: + Yudi Zhao(Huawei Nebula Security Lab),Chenwei Jiang(Huawei Nebula Security Lab) [#565](https://github.com/saltstack/salt/issues/565) +- Update some requirements which had some security issues: + + * Bump to `pycryptodome==3.19.1` and `pycryptodomex==3.19.1` due to https://github.com/advisories/GHSA-j225-cvw7-qrx7 + * Bump to `gitpython==3.1.41` due to https://github.com/advisories/GHSA-2mqj-m65w-jghx + * Bump to `jinja2==3.1.3` due to https://github.com/advisories/GHSA-h5c8-rqwp-cp95 [#65830](https://github.com/saltstack/salt/issues/65830) + + ## 3006.5 (2023-12-12) diff --git a/changelog/565.security.md b/changelog/565.security.md deleted file mode 100644 index 5d7ec8202ba..00000000000 --- a/changelog/565.security.md +++ /dev/null @@ -1,4 +0,0 @@ -CVE-2024-22231 Prevent directory traversal when creating syndic cache directory on the master -CVE-2024-22232 Prevent directory traversal attacks in the master's serve_file method. -These vulerablities were discovered and reported by: -Yudi Zhao(Huawei Nebula Security Lab),Chenwei Jiang(Huawei Nebula Security Lab) diff --git a/changelog/65759.fixed.md b/changelog/65759.fixed.md deleted file mode 100644 index 426cb3f24bf..00000000000 --- a/changelog/65759.fixed.md +++ /dev/null @@ -1 +0,0 @@ -Fix un-closed transport in tornado netapi diff --git a/changelog/65830.security.md b/changelog/65830.security.md deleted file mode 100644 index 509b279126d..00000000000 --- a/changelog/65830.security.md +++ /dev/null @@ -1,5 +0,0 @@ -Update some requirements which had some security issues: - -* Bump to `pycryptodome==3.19.1` and `pycryptodomex==3.19.1` due to https://github.com/advisories/GHSA-j225-cvw7-qrx7 -* Bump to `gitpython==3.1.41` due to https://github.com/advisories/GHSA-2mqj-m65w-jghx -* Bump to `jinja2==3.1.3` due to https://github.com/advisories/GHSA-h5c8-rqwp-cp95 diff --git a/changelog/665924.changed.md b/changelog/665924.changed.md deleted file mode 100644 index fb06f9125c4..00000000000 --- a/changelog/665924.changed.md +++ /dev/null @@ -1 +0,0 @@ -Salt no longer time bombs user installations on code using `salt.utils.versions.warn_until_date` diff --git a/doc/man/salt-api.1 b/doc/man/salt-api.1 index 214422b243a..ef5fc5ed68c 100644 --- a/doc/man/salt-api.1 +++ b/doc/man/salt-api.1 @@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "SALT-API" "1" "Generated on December 12, 2023 at 05:54:17 PM UTC." "3006.5" "Salt" +.TH "SALT-API" "1" "Generated on January 26, 2024 at 11:57:28 AM UTC." "3006.6" "Salt" .SH NAME salt-api \- salt-api Command .sp @@ -109,6 +109,6 @@ Logfile logging log level. One of \fBall\fP, \fBgarbage\fP, \fBtrace\fP, .SH AUTHOR Thomas S. Hatch and many others, please see the Authors file .SH COPYRIGHT -2023 +2024 .\" Generated by docutils manpage writer. . diff --git a/doc/man/salt-call.1 b/doc/man/salt-call.1 index 2e6698b8d4a..5854684c3ce 100644 --- a/doc/man/salt-call.1 +++ b/doc/man/salt-call.1 @@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "SALT-CALL" "1" "Generated on December 12, 2023 at 05:54:17 PM UTC." "3006.5" "Salt" +.TH "SALT-CALL" "1" "Generated on January 26, 2024 at 11:57:28 AM UTC." "3006.6" "Salt" .SH NAME salt-call \- salt-call Documentation .SH SYNOPSIS @@ -262,6 +262,6 @@ output. Set to True or False. Default: none. .SH AUTHOR Thomas S. Hatch and many others, please see the Authors file .SH COPYRIGHT -2023 +2024 .\" Generated by docutils manpage writer. . diff --git a/doc/man/salt-cloud.1 b/doc/man/salt-cloud.1 index 7dc0450cc5c..75365f7ea89 100644 --- a/doc/man/salt-cloud.1 +++ b/doc/man/salt-cloud.1 @@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "SALT-CLOUD" "1" "Generated on December 12, 2023 at 05:54:17 PM UTC." "3006.5" "Salt" +.TH "SALT-CLOUD" "1" "Generated on January 26, 2024 at 11:57:28 AM UTC." "3006.6" "Salt" .SH NAME salt-cloud \- Salt Cloud Command .sp @@ -380,6 +380,6 @@ salt\-cloud \-m /path/to/cloud.map \-Q .SH AUTHOR Thomas S. Hatch and many others, please see the Authors file .SH COPYRIGHT -2023 +2024 .\" Generated by docutils manpage writer. . diff --git a/doc/man/salt-cp.1 b/doc/man/salt-cp.1 index 015e1b3461c..f0bc77a539c 100644 --- a/doc/man/salt-cp.1 +++ b/doc/man/salt-cp.1 @@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "SALT-CP" "1" "Generated on December 12, 2023 at 05:54:17 PM UTC." "3006.5" "Salt" +.TH "SALT-CP" "1" "Generated on January 26, 2024 at 11:57:28 AM UTC." "3006.6" "Salt" .SH NAME salt-cp \- salt-cp Documentation .sp @@ -207,6 +207,6 @@ New in version 2016.3.7,2016.11.6,2017.7.0. .SH AUTHOR Thomas S. Hatch and many others, please see the Authors file .SH COPYRIGHT -2023 +2024 .\" Generated by docutils manpage writer. . diff --git a/doc/man/salt-key.1 b/doc/man/salt-key.1 index f346507ed58..35b6d1aa3d3 100644 --- a/doc/man/salt-key.1 +++ b/doc/man/salt-key.1 @@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "SALT-KEY" "1" "Generated on December 12, 2023 at 05:54:17 PM UTC." "3006.5" "Salt" +.TH "SALT-KEY" "1" "Generated on January 26, 2024 at 11:57:28 AM UTC." "3006.6" "Salt" .SH NAME salt-key \- salt-key Documentation .SH SYNOPSIS @@ -332,6 +332,6 @@ Auto\-create a signing key\-pair if it does not yet exist .SH AUTHOR Thomas S. Hatch and many others, please see the Authors file .SH COPYRIGHT -2023 +2024 .\" Generated by docutils manpage writer. . diff --git a/doc/man/salt-master.1 b/doc/man/salt-master.1 index 1b54882a9b2..2e3e0b5a8de 100644 --- a/doc/man/salt-master.1 +++ b/doc/man/salt-master.1 @@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "SALT-MASTER" "1" "Generated on December 12, 2023 at 05:54:17 PM UTC." "3006.5" "Salt" +.TH "SALT-MASTER" "1" "Generated on January 26, 2024 at 11:57:28 AM UTC." "3006.6" "Salt" .SH NAME salt-master \- salt-master Documentation .sp @@ -114,6 +114,6 @@ Logfile logging log level. One of \fBall\fP, \fBgarbage\fP, \fBtrace\fP, .SH AUTHOR Thomas S. Hatch and many others, please see the Authors file .SH COPYRIGHT -2023 +2024 .\" Generated by docutils manpage writer. . diff --git a/doc/man/salt-minion.1 b/doc/man/salt-minion.1 index d02a0bfa2e5..1be877af479 100644 --- a/doc/man/salt-minion.1 +++ b/doc/man/salt-minion.1 @@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "SALT-MINION" "1" "Generated on December 12, 2023 at 05:54:17 PM UTC." "3006.5" "Salt" +.TH "SALT-MINION" "1" "Generated on January 26, 2024 at 11:57:28 AM UTC." "3006.6" "Salt" .SH NAME salt-minion \- salt-minion Documentation .sp @@ -115,6 +115,6 @@ Logfile logging log level. One of \fBall\fP, \fBgarbage\fP, \fBtrace\fP, .SH AUTHOR Thomas S. Hatch and many others, please see the Authors file .SH COPYRIGHT -2023 +2024 .\" Generated by docutils manpage writer. . diff --git a/doc/man/salt-proxy.1 b/doc/man/salt-proxy.1 index 0f5b3b8e40e..c7ce2d85acb 100644 --- a/doc/man/salt-proxy.1 +++ b/doc/man/salt-proxy.1 @@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "SALT-PROXY" "1" "Generated on December 12, 2023 at 05:54:17 PM UTC." "3006.5" "Salt" +.TH "SALT-PROXY" "1" "Generated on January 26, 2024 at 11:57:28 AM UTC." "3006.6" "Salt" .SH NAME salt-proxy \- salt-proxy Documentation .sp @@ -123,6 +123,6 @@ Logfile logging log level. One of \fBall\fP, \fBgarbage\fP, \fBtrace\fP, .SH AUTHOR Thomas S. Hatch and many others, please see the Authors file .SH COPYRIGHT -2023 +2024 .\" Generated by docutils manpage writer. . diff --git a/doc/man/salt-run.1 b/doc/man/salt-run.1 index 1535cbde86c..e968134ca1c 100644 --- a/doc/man/salt-run.1 +++ b/doc/man/salt-run.1 @@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "SALT-RUN" "1" "Generated on December 12, 2023 at 05:54:17 PM UTC." "3006.5" "Salt" +.TH "SALT-RUN" "1" "Generated on January 26, 2024 at 11:57:28 AM UTC." "3006.6" "Salt" .SH NAME salt-run \- salt-run Documentation .sp @@ -120,6 +120,6 @@ Logfile logging log level. One of \fBall\fP, \fBgarbage\fP, \fBtrace\fP, .SH AUTHOR Thomas S. Hatch and many others, please see the Authors file .SH COPYRIGHT -2023 +2024 .\" Generated by docutils manpage writer. . diff --git a/doc/man/salt-ssh.1 b/doc/man/salt-ssh.1 index 5771453ad14..1ea3976ae10 100644 --- a/doc/man/salt-ssh.1 +++ b/doc/man/salt-ssh.1 @@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "SALT-SSH" "1" "Generated on December 12, 2023 at 05:54:17 PM UTC." "3006.5" "Salt" +.TH "SALT-SSH" "1" "Generated on January 26, 2024 at 11:57:28 AM UTC." "3006.6" "Salt" .SH NAME salt-ssh \- salt-ssh Documentation .SH SYNOPSIS @@ -365,6 +365,6 @@ to a JSON parser, use \fB\-\-static\fP as well. .SH AUTHOR Thomas S. Hatch and many others, please see the Authors file .SH COPYRIGHT -2023 +2024 .\" Generated by docutils manpage writer. . diff --git a/doc/man/salt-syndic.1 b/doc/man/salt-syndic.1 index 7a42e21c767..b006b33bbb8 100644 --- a/doc/man/salt-syndic.1 +++ b/doc/man/salt-syndic.1 @@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "SALT-SYNDIC" "1" "Generated on December 12, 2023 at 05:54:17 PM UTC." "3006.5" "Salt" +.TH "SALT-SYNDIC" "1" "Generated on January 26, 2024 at 11:57:28 AM UTC." "3006.6" "Salt" .SH NAME salt-syndic \- salt-syndic Documentation .sp @@ -116,6 +116,6 @@ Logfile logging log level. One of \fBall\fP, \fBgarbage\fP, \fBtrace\fP, .SH AUTHOR Thomas S. Hatch and many others, please see the Authors file .SH COPYRIGHT -2023 +2024 .\" Generated by docutils manpage writer. . diff --git a/doc/man/salt.1 b/doc/man/salt.1 index 127fce42145..9197a01fd3f 100644 --- a/doc/man/salt.1 +++ b/doc/man/salt.1 @@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "SALT" "1" "Generated on December 12, 2023 at 05:54:17 PM UTC." "3006.5" "Salt" +.TH "SALT" "1" "Generated on January 26, 2024 at 11:57:28 AM UTC." "3006.6" "Salt" .SH NAME salt \- salt .SH SYNOPSIS @@ -354,6 +354,6 @@ to a JSON parser, use \fB\-\-static\fP as well. .SH AUTHOR Thomas S. Hatch and many others, please see the Authors file .SH COPYRIGHT -2023 +2024 .\" Generated by docutils manpage writer. . diff --git a/doc/man/salt.7 b/doc/man/salt.7 index a2232d27d5a..88d600d0fcc 100644 --- a/doc/man/salt.7 +++ b/doc/man/salt.7 @@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "SALT" "7" "Generated on December 12, 2023 at 05:54:17 PM UTC." "3006.5" "Salt" +.TH "SALT" "7" "Generated on January 26, 2024 at 11:57:28 AM UTC." "3006.6" "Salt" .SH NAME salt \- Salt Documentation .SH SALT PROJECT @@ -85609,7 +85609,7 @@ built packages need to be placed in the correct locations. .INDENT 0.0 .IP \(bu 2 Place all salt packages for the applicable testing version in -\fB/pkg/artifacts/\fP\&. +\fB/artifacts/pkg/\fP\&. .IP \(bu 2 The onedir must be located under \fB/artifacts/\fP\&. .IP \(bu 2 @@ -85733,7 +85733,7 @@ artifact may look like \fBnox\-ubuntu\-20.04\-test\-pkgs\-onedir\-x86_64\fP\&. Place the artifacts in the correct location: .INDENT 3.0 .INDENT 3.5 -Unzip the packages and place them in \fB/pkg/artifacts/\fP\&. +Unzip the packages and place them in \fB/artifacts/pkg/\fP\&. .sp You must unzip and untar the onedir packages and place them in \fB/artifacts/\fP\&. Windows onedir requires an additional unzip @@ -116861,28 +116861,6 @@ salt \(aq*\(aq pkg.del_repo_key name=\(aqppa:foo/bar\(aq keyid_ppa=True .UNINDENT .INDENT 0.0 .TP -.B salt.modules.aptpkg.expand_repo_def(**kwargs) -Take a repository definition and expand it to the full pkg repository dict -that can be used for comparison. This is a helper function to make -the Debian/Ubuntu apt sources sane for comparison in the pkgrepo states. -.sp -This is designed to be called from pkgrepo states and will have little use -being called on the CLI. -.sp -CLI Examples: -.INDENT 7.0 -.INDENT 3.5 -.sp -.nf -.ft C -NOT USABLE IN THE CLI -.ft P -.fi -.UNINDENT -.UNINDENT -.UNINDENT -.INDENT 0.0 -.TP .B salt.modules.aptpkg.file_dict(*packages, **kwargs) List the files that belong to a package, grouped by package. Not specifying any packages will return a list of _every_ file on the system\(aqs @@ -194390,7 +194368,7 @@ Passes through all the parameters described in the \fI\%utils.http.query function\fP: .INDENT 7.0 .TP -.B salt.utils.http.query(url, method=\(aqGET\(aq, params=None, data=None, data_file=None, header_dict=None, header_list=None, header_file=None, username=None, password=None, auth=None, decode=False, decode_type=\(aqauto\(aq, status=False, headers=False, text=False, cookies=None, cookie_jar=None, cookie_format=\(aqlwp\(aq, persist_session=False, session_cookie_jar=None, data_render=False, data_renderer=None, header_render=False, header_renderer=None, template_dict=None, test=False, test_url=None, node=\(aqminion\(aq, port=80, opts=None, backend=None, ca_bundle=None, verify_ssl=None, cert=None, text_out=None, headers_out=None, decode_out=None, stream=False, streaming_callback=None, header_callback=None, handle=False, agent=\(aqSalt/3006.5\(aq, hide_fields=None, raise_error=True, formdata=False, formdata_fieldname=None, formdata_filename=None, decode_body=True, **kwargs) +.B salt.utils.http.query(url, method=\(aqGET\(aq, params=None, data=None, data_file=None, header_dict=None, header_list=None, header_file=None, username=None, password=None, auth=None, decode=False, decode_type=\(aqauto\(aq, status=False, headers=False, text=False, cookies=None, cookie_jar=None, cookie_format=\(aqlwp\(aq, persist_session=False, session_cookie_jar=None, data_render=False, data_renderer=None, header_render=False, header_renderer=None, template_dict=None, test=False, test_url=None, node=\(aqminion\(aq, port=80, opts=None, backend=None, ca_bundle=None, verify_ssl=None, cert=None, text_out=None, headers_out=None, decode_out=None, stream=False, streaming_callback=None, header_callback=None, handle=False, agent=\(aqSalt/3006.6\(aq, hide_fields=None, raise_error=True, formdata=False, formdata_fieldname=None, formdata_filename=None, decode_body=True, **kwargs) Query a resource, and decode the return data .UNINDENT .INDENT 7.0 @@ -457920,7 +457898,7 @@ installed2 .UNINDENT .INDENT 0.0 .TP -.B salt.states.zcbuildout.installed(name, config=\(aqbuildout.cfg\(aq, quiet=False, parts=None, user=None, env=(), buildout_ver=None, test_release=False, distribute=None, new_st=None, offline=False, newest=False, python=\(aq/opt/actions\-runner/_work/salt/salt/.tools\-venvs/py3.10/docs/bin/python\(aq, debug=False, verbose=False, unless=None, onlyif=None, use_vt=False, loglevel=\(aqdebug\(aq, **kwargs) +.B salt.states.zcbuildout.installed(name, config=\(aqbuildout.cfg\(aq, quiet=False, parts=None, user=None, env=(), buildout_ver=None, test_release=False, distribute=None, new_st=None, offline=False, newest=False, python=\(aq/opt/actions\-runner/_work/salt\-priv/salt\-priv/.tools\-venvs/py3.10/docs/bin/python\(aq, debug=False, verbose=False, unless=None, onlyif=None, use_vt=False, loglevel=\(aqdebug\(aq, **kwargs) Install buildout in a specific directory .sp It is a thin wrapper to modules.buildout.buildout @@ -478000,6 +477978,37 @@ Bump to \fBcryptography==41.0.4\fP due to \fI\%https://github.com/advisories/GHS .IP \(bu 2 Bump to \fBcryptography==41.0.7\fP due to \fI\%https://github.com/advisories/GHSA\-jfhm\-5ghh\-2f97\fP \fI\%#65643\fP .UNINDENT +(release\-3006.6)= +.SS Salt 3006.6 release notes +.SS Changelog +.SS Changed +.INDENT 0.0 +.IP \(bu 2 +Salt no longer time bombs user installations on code using \fBsalt.utils.versions.warn_until_date\fP \fI\%#665924\fP +.UNINDENT +.SS Fixed +.INDENT 0.0 +.IP \(bu 2 +Fix un\-closed transport in tornado netapi \fI\%#65759\fP +.UNINDENT +.SS Security +.INDENT 0.0 +.IP \(bu 2 +CVE\-2024\-22231 Prevent directory traversal when creating syndic cache directory on the master +CVE\-2024\-22232 Prevent directory traversal attacks in the master\(aqs serve_file method. +These vulerablities were discovered and reported by: +Yudi Zhao(Huawei Nebula Security Lab),Chenwei Jiang(Huawei Nebula Security Lab) \fI\%#565\fP +.IP \(bu 2 +Update some requirements which had some security issues: +.INDENT 2.0 +.IP \(bu 2 +Bump to \fBpycryptodome==3.19.1\fP and \fBpycryptodomex==3.19.1\fP due to \fI\%https://github.com/advisories/GHSA\-j225\-cvw7\-qrx7\fP +.IP \(bu 2 +Bump to \fBgitpython==3.1.41\fP due to \fI\%https://github.com/advisories/GHSA\-2mqj\-m65w\-jghx\fP +.IP \(bu 2 +Bump to \fBjinja2==3.1.3\fP due to \fI\%https://github.com/advisories/GHSA\-h5c8\-rqwp\-cp95\fP \fI\%#65830\fP +.UNINDENT +.UNINDENT .sp See \fI\%Install a release candidate\fP for more information about installing an RC when one is available. @@ -603011,6 +603020,6 @@ minions. \fISee also\fP: .SH AUTHOR Thomas S. Hatch and many others, please see the Authors file .SH COPYRIGHT -2023 +2024 .\" Generated by docutils manpage writer. . diff --git a/doc/man/spm.1 b/doc/man/spm.1 index 5e715ca4829..1930413db07 100644 --- a/doc/man/spm.1 +++ b/doc/man/spm.1 @@ -27,7 +27,7 @@ level margin: \\n[rst2man-indent\\n[rst2man-indent-level]] .\" new: \\n[rst2man-indent\\n[rst2man-indent-level]] .in \\n[rst2man-indent\\n[rst2man-indent-level]]u .. -.TH "SPM" "1" "Generated on December 12, 2023 at 05:54:17 PM UTC." "3006.5" "Salt" +.TH "SPM" "1" "Generated on January 26, 2024 at 11:57:28 AM UTC." "3006.6" "Salt" .SH NAME spm \- Salt Package Manager Command .sp @@ -138,6 +138,6 @@ in that directory which describes them. .SH AUTHOR Thomas S. Hatch and many others, please see the Authors file .SH COPYRIGHT -2023 +2024 .\" Generated by docutils manpage writer. . diff --git a/doc/topics/releases/3006.6.md b/doc/topics/releases/3006.6.md new file mode 100644 index 00000000000..a38521023ba --- /dev/null +++ b/doc/topics/releases/3006.6.md @@ -0,0 +1,41 @@ +(release-3006.6)= +# Salt 3006.6 release notes + + + + + + + +## Changelog + +### Changed + +- Salt no longer time bombs user installations on code using `salt.utils.versions.warn_until_date` [#665924](https://github.com/saltstack/salt/issues/665924) + + +### Fixed + +- Fix un-closed transport in tornado netapi [#65759](https://github.com/saltstack/salt/issues/65759) + + +### Security + +- CVE-2024-22231 Prevent directory traversal when creating syndic cache directory on the master + CVE-2024-22232 Prevent directory traversal attacks in the master's serve_file method. + These vulerablities were discovered and reported by: + Yudi Zhao(Huawei Nebula Security Lab),Chenwei Jiang(Huawei Nebula Security Lab) [#565](https://github.com/saltstack/salt/issues/565) +- Update some requirements which had some security issues: + + * Bump to `pycryptodome==3.19.1` and `pycryptodomex==3.19.1` due to https://github.com/advisories/GHSA-j225-cvw7-qrx7 + * Bump to `gitpython==3.1.41` due to https://github.com/advisories/GHSA-2mqj-m65w-jghx + * Bump to `jinja2==3.1.3` due to https://github.com/advisories/GHSA-h5c8-rqwp-cp95 [#65830](https://github.com/saltstack/salt/issues/65830) diff --git a/doc/topics/releases/templates/3006.6.md.template b/doc/topics/releases/templates/3006.6.md.template new file mode 100644 index 00000000000..10bc39cc649 --- /dev/null +++ b/doc/topics/releases/templates/3006.6.md.template @@ -0,0 +1,14 @@ +(release-3006.6)= +# Salt 3006.6 release notes{{ unreleased }} +{{ warning }} + + + + +## Changelog +{{ changelog }} diff --git a/pkg/debian/changelog b/pkg/debian/changelog index 12f388a1128..404ae322134 100644 --- a/pkg/debian/changelog +++ b/pkg/debian/changelog @@ -1,3 +1,29 @@ +salt (3006.6) stable; urgency=medium + + + # Changed + + * Salt no longer time bombs user installations on code using `salt.utils.versions.warn_until_date` [#665924](https://github.com/saltstack/salt/issues/665924) + + # Fixed + + * Fix un-closed transport in tornado netapi [#65759](https://github.com/saltstack/salt/issues/65759) + + # Security + + * CVE-2024-22231 Prevent directory traversal when creating syndic cache directory on the master + CVE*2024-22232 Prevent directory traversal attacks in the master's serve_file method. + These vulerablities were discovered and reported by: + Yudi Zhao(Huawei Nebula Security Lab),Chenwei Jiang(Huawei Nebula Security Lab) [#565](https://github.com/saltstack/salt/issues/565) + * Update some requirements which had some security issues: + + * Bump to `pycryptodome==3.19.1` and `pycryptodomex==3.19.1` due to https://github.com/advisories/GHSA*j225-cvw7-qrx7 + * Bump to `gitpython==3.1.41` due to https://github.com/advisories/GHSA*2mqj-m65w-jghx + * Bump to `jinja2==3.1.3` due to https://github.com/advisories/GHSA*h5c8-rqwp-cp95 [#65830](https://github.com/saltstack/salt/issues/65830) + + + -- Salt Project Packaging Fri, 26 Jan 2024 11:56:46 +0000 + salt (3006.5) stable; urgency=medium diff --git a/pkg/rpm/salt.spec b/pkg/rpm/salt.spec index ed350a9e8dc..90fcfb0f37b 100644 --- a/pkg/rpm/salt.spec +++ b/pkg/rpm/salt.spec @@ -31,7 +31,7 @@ %define fish_dir %{_datadir}/fish/vendor_functions.d Name: salt -Version: 3006.5 +Version: 3006.6 Release: 0 Summary: A parallel remote execution system Group: System Environment/Daemons @@ -583,6 +583,29 @@ fi %changelog +* Fri Jan 26 2024 Salt Project Packaging - 3006.6 + +# Changed + +- Salt no longer time bombs user installations on code using `salt.utils.versions.warn_until_date` [#665924](https://github.com/saltstack/salt/issues/665924) + +# Fixed + +- Fix un-closed transport in tornado netapi [#65759](https://github.com/saltstack/salt/issues/65759) + +# Security + +- CVE-2024-22231 Prevent directory traversal when creating syndic cache directory on the master + CVE-2024-22232 Prevent directory traversal attacks in the master's serve_file method. + These vulerablities were discovered and reported by: + Yudi Zhao(Huawei Nebula Security Lab),Chenwei Jiang(Huawei Nebula Security Lab) [#565](https://github.com/saltstack/salt/issues/565) +- Update some requirements which had some security issues: + + * Bump to `pycryptodome==3.19.1` and `pycryptodomex==3.19.1` due to https://github.com/advisories/GHSA-j225-cvw7-qrx7 + * Bump to `gitpython==3.1.41` due to https://github.com/advisories/GHSA-2mqj-m65w-jghx + * Bump to `jinja2==3.1.3` due to https://github.com/advisories/GHSA-h5c8-rqwp-cp95 [#65830](https://github.com/saltstack/salt/issues/65830) + + * Tue Dec 12 2023 Salt Project Packaging - 3006.5 # Removed From 75118c6e53e2867f1cfb673f0019c148d871c841 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Fri, 26 Jan 2024 15:46:53 +0000 Subject: [PATCH 122/146] Fix static requirements --- requirements/static/ci/py3.10/windows.txt | 4 +++- requirements/static/ci/py3.11/windows.txt | 4 +++- requirements/static/ci/py3.12/windows.txt | 4 +++- requirements/static/ci/py3.7/windows.txt | 4 +++- requirements/static/ci/py3.8/windows.txt | 4 +++- requirements/static/ci/py3.9/windows.txt | 4 +++- 6 files changed, 18 insertions(+), 6 deletions(-) diff --git a/requirements/static/ci/py3.10/windows.txt b/requirements/static/ci/py3.10/windows.txt index 1da9f4396f5..6dd5ab23af4 100644 --- a/requirements/static/ci/py3.10/windows.txt +++ b/requirements/static/ci/py3.10/windows.txt @@ -487,8 +487,10 @@ wmi==1.5.1 # via # -c requirements/static/ci/../pkg/py3.10/windows.txt # -r requirements/windows.txt -xmltodict==0.12.0 +xmltodict==0.13.0 # via + # -c requirements/static/ci/../pkg/py3.10/windows.txt + # -r requirements/windows.txt # moto # pywinrm yamllint==1.28.0 diff --git a/requirements/static/ci/py3.11/windows.txt b/requirements/static/ci/py3.11/windows.txt index 06672cb1455..0a59ba638b2 100644 --- a/requirements/static/ci/py3.11/windows.txt +++ b/requirements/static/ci/py3.11/windows.txt @@ -481,8 +481,10 @@ wmi==1.5.1 # via # -c requirements/static/ci/../pkg/py3.11/windows.txt # -r requirements/windows.txt -xmltodict==0.12.0 +xmltodict==0.13.0 # via + # -c requirements/static/ci/../pkg/py3.11/windows.txt + # -r requirements/windows.txt # moto # pywinrm yamllint==1.28.0 diff --git a/requirements/static/ci/py3.12/windows.txt b/requirements/static/ci/py3.12/windows.txt index ae67b7afa56..d4189423f87 100644 --- a/requirements/static/ci/py3.12/windows.txt +++ b/requirements/static/ci/py3.12/windows.txt @@ -481,8 +481,10 @@ wmi==1.5.1 # via # -c requirements/static/ci/../pkg/py3.12/windows.txt # -r requirements/windows.txt -xmltodict==0.12.0 +xmltodict==0.13.0 # via + # -c requirements/static/ci/../pkg/py3.12/windows.txt + # -r requirements/windows.txt # moto # pywinrm yamllint==1.28.0 diff --git a/requirements/static/ci/py3.7/windows.txt b/requirements/static/ci/py3.7/windows.txt index dba21dfd663..0a79d8f3144 100644 --- a/requirements/static/ci/py3.7/windows.txt +++ b/requirements/static/ci/py3.7/windows.txt @@ -509,8 +509,10 @@ wmi==1.5.1 # via # -c requirements/static/ci/../pkg/py3.7/windows.txt # -r requirements/windows.txt -xmltodict==0.12.0 +xmltodict==0.13.0 # via + # -c requirements/static/ci/../pkg/py3.7/windows.txt + # -r requirements/windows.txt # moto # pywinrm yamllint==1.26.3 diff --git a/requirements/static/ci/py3.8/windows.txt b/requirements/static/ci/py3.8/windows.txt index c724b70e723..d8f1b73f25b 100644 --- a/requirements/static/ci/py3.8/windows.txt +++ b/requirements/static/ci/py3.8/windows.txt @@ -490,8 +490,10 @@ wmi==1.5.1 # via # -c requirements/static/ci/../pkg/py3.8/windows.txt # -r requirements/windows.txt -xmltodict==0.12.0 +xmltodict==0.13.0 # via + # -c requirements/static/ci/../pkg/py3.8/windows.txt + # -r requirements/windows.txt # moto # pywinrm yamllint==1.26.3 diff --git a/requirements/static/ci/py3.9/windows.txt b/requirements/static/ci/py3.9/windows.txt index 97c87cadde5..2a126b2b8e4 100644 --- a/requirements/static/ci/py3.9/windows.txt +++ b/requirements/static/ci/py3.9/windows.txt @@ -491,8 +491,10 @@ wmi==1.5.1 # via # -c requirements/static/ci/../pkg/py3.9/windows.txt # -r requirements/windows.txt -xmltodict==0.12.0 +xmltodict==0.13.0 # via + # -c requirements/static/ci/../pkg/py3.9/windows.txt + # -r requirements/windows.txt # moto # pywinrm yamllint==1.26.3 From ecf154ca51cc220479caf5b1b368aa60ba467333 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Tue, 30 Jan 2024 11:26:39 +0000 Subject: [PATCH 123/146] Deprecate and stop using `salt.features` Fixes https://github.com/saltstack/salt/issues/65951 --- changelog/65951.deprecated.md | 1 + salt/config/__init__.py | 13 ++++++++++ salt/features.py | 8 ++++++ salt/states/saltmod.py | 9 +++---- salt/states/x509.py | 3 +-- salt/states/x509_v2.py | 3 +-- salt/utils/parsers.py | 47 ++++++++--------------------------- 7 files changed, 39 insertions(+), 45 deletions(-) create mode 100644 changelog/65951.deprecated.md diff --git a/changelog/65951.deprecated.md b/changelog/65951.deprecated.md new file mode 100644 index 00000000000..833f9bf478d --- /dev/null +++ b/changelog/65951.deprecated.md @@ -0,0 +1 @@ +Deprecate and stop using ``salt.features`` diff --git a/salt/config/__init__.py b/salt/config/__init__.py index f946bc7f010..ee18ccb3b52 100644 --- a/salt/config/__init__.py +++ b/salt/config/__init__.py @@ -14,6 +14,7 @@ from copy import deepcopy import salt.defaults.exitcodes import salt.exceptions +import salt.features import salt.syspaths import salt.utils.data import salt.utils.dictupdate @@ -1302,6 +1303,7 @@ DEFAULT_MINION_OPTS = immutabletypes.freeze( "global_state_conditions": None, "reactor_niceness": None, "fips_mode": False, + "features": {}, } ) @@ -1647,6 +1649,7 @@ DEFAULT_MASTER_OPTS = immutabletypes.freeze( "netapi_enable_clients": [], "maintenance_interval": 3600, "fileserver_interval": 3600, + "features": {}, } ) @@ -1681,6 +1684,7 @@ DEFAULT_PROXY_MINION_OPTS = immutabletypes.freeze( "pki_dir": os.path.join(salt.syspaths.LIB_STATE_DIR, "pki", "proxy"), "cachedir": os.path.join(salt.syspaths.CACHE_DIR, "proxy"), "sock_dir": os.path.join(salt.syspaths.SOCK_DIR, "proxy"), + "features": {}, } ) @@ -1714,6 +1718,7 @@ DEFAULT_CLOUD_OPTS = immutabletypes.freeze( "log_rotate_backup_count": 0, "bootstrap_delay": 0, "cache": "localfs", + "features": {}, } ) @@ -2324,6 +2329,7 @@ def minion_config( if role != "master": apply_sdb(opts) _validate_opts(opts) + salt.features.setup_features(opts) return opts @@ -2335,6 +2341,7 @@ def mminion_config(path, overrides, ignore_config_errors=True): _validate_opts(opts) opts["grains"] = salt.loader.grains(opts) opts["pillar"] = {} + salt.features.setup_features(opts) return opts @@ -2421,6 +2428,7 @@ def proxy_config( apply_sdb(opts) _validate_opts(opts) + salt.features.setup_features(opts) return opts @@ -2498,6 +2506,7 @@ def syndic_config( if urllib.parse.urlparse(opts.get(config_key, "")).scheme == "": prepend_root_dirs.append(config_key) prepend_root_dir(opts, prepend_root_dirs) + salt.features.setup_features(opts) return opts @@ -2750,6 +2759,7 @@ def cloud_config( prepend_root_dirs.append(opts["log_file"]) prepend_root_dir(opts, prepend_root_dirs) + salt.features.setup_features(opts) # Return the final options return opts @@ -3923,6 +3933,7 @@ def master_config( if salt.utils.data.is_dictlist(opts["nodegroups"]): opts["nodegroups"] = salt.utils.data.repack_dictlist(opts["nodegroups"]) apply_sdb(opts) + salt.features.setup_features(opts) return opts @@ -4162,6 +4173,7 @@ def client_config(path, env_var="SALT_CLIENT_CONFIG", defaults=None): # Return the client options _validate_opts(opts) + salt.features.setup_features(opts) return opts @@ -4185,6 +4197,7 @@ def api_config(path): ) prepend_root_dir(opts, ["api_pidfile", "api_logfile", "log_file", "pidfile"]) + salt.features.setup_features(opts) return opts diff --git a/salt/features.py b/salt/features.py index ad00130c84b..4335c46ca5a 100644 --- a/salt/features.py +++ b/salt/features.py @@ -21,6 +21,14 @@ class Features: log.warning("Features already setup") def get(self, key, default=None): + import salt.utils.versions + + salt.utils.versions.warn_until( + 3008, + "Please stop checking feature flags using 'salt.features' and instead " + "check the 'features' keyword on the configuration dictionary. The " + "'salt.features' module will go away in {version}.", + ) return self.features.get(key, default) diff --git a/salt/states/saltmod.py b/salt/states/saltmod.py index 1f30d0fa38a..386c5811ceb 100644 --- a/salt/states/saltmod.py +++ b/salt/states/saltmod.py @@ -33,7 +33,6 @@ import salt.syspaths import salt.utils.data import salt.utils.event import salt.utils.versions -from salt.features import features log = logging.getLogger(__name__) @@ -812,11 +811,11 @@ def runner(name, **kwargs): "executed" if success else "failed", ) - if features.get("enable_deprecated_orchestration_flag", False): + if __opts__["features"].get("enable_deprecated_orchestration_flag", False): ret["__orchestration__"] = True salt.utils.versions.warn_until( - "Argon", - "The __orchestration__ return flag will be removed in Salt Argon. " + 3008, + "The __orchestration__ return flag will be removed in {version}. " "For more information see https://github.com/saltstack/salt/pull/59917.", ) @@ -1061,7 +1060,7 @@ def wheel(name, **kwargs): "executed" if success else "failed", ) - if features.get("enable_deprecated_orchestration_flag", False): + if __opts__["features"].get("enable_deprecated_orchestration_flag", False): ret["__orchestration__"] = True salt.utils.versions.warn_until( "Argon", diff --git a/salt/states/x509.py b/salt/states/x509.py index aebbc4cc821..0a8d988fa0f 100644 --- a/salt/states/x509.py +++ b/salt/states/x509.py @@ -191,7 +191,6 @@ import re import salt.exceptions import salt.utils.versions -from salt.features import features try: from M2Crypto.RSA import RSAError @@ -205,7 +204,7 @@ def __virtual__(): """ only load this module if the corresponding execution module is loaded """ - if features.get("x509_v2"): + if __opts__["features"].get("x509_v2"): return (False, "Superseded, using x509_v2") if "x509.get_pem_entry" in __salt__: salt.utils.versions.warn_until( diff --git a/salt/states/x509_v2.py b/salt/states/x509_v2.py index ee04eba610a..ffabf7a4a83 100644 --- a/salt/states/x509_v2.py +++ b/salt/states/x509_v2.py @@ -188,7 +188,6 @@ import os.path import salt.utils.files from salt.exceptions import CommandExecutionError, SaltInvocationError -from salt.features import features from salt.state import STATE_INTERNAL_KEYWORDS as _STATE_INTERNAL_KEYWORDS try: @@ -211,7 +210,7 @@ __virtualname__ = "x509" def __virtual__(): if not HAS_CRYPTOGRAPHY: return (False, "Could not load cryptography") - if not features.get("x509_v2"): + if not __opts__["features"].get("x509_v2"): return ( False, "x509_v2 needs to be explicitly enabled by setting `x509_v2: true` " diff --git a/salt/utils/parsers.py b/salt/utils/parsers.py index f3ba1948d89..036530820d8 100644 --- a/salt/utils/parsers.py +++ b/salt/utils/parsers.py @@ -25,7 +25,6 @@ import salt._logging import salt.config as config import salt.defaults.exitcodes import salt.exceptions -import salt.features import salt.syspaths as syspaths import salt.utils.args import salt.utils.data @@ -1937,9 +1936,7 @@ class MasterOptionParser( _default_logging_logfile_ = config.DEFAULT_MASTER_OPTS["log_file"] def setup_config(self): - opts = config.master_config(self.get_config_file_path()) - salt.features.setup_features(opts) - return opts + return config.master_config(self.get_config_file_path()) class MinionOptionParser( @@ -1954,13 +1951,11 @@ class MinionOptionParser( _default_logging_logfile_ = config.DEFAULT_MINION_OPTS["log_file"] def setup_config(self): - opts = config.minion_config( + return config.minion_config( self.get_config_file_path(), # pylint: disable=no-member cache_minion_id=True, ignore_config_errors=False, ) - salt.features.setup_features(opts) - return opts class ProxyMinionOptionParser( @@ -1991,11 +1986,9 @@ class ProxyMinionOptionParser( except AttributeError: minion_id = None - opts = config.proxy_config( + return config.proxy_config( self.get_config_file_path(), cache_minion_id=False, minion_id=minion_id ) - salt.features.setup_features(opts) - return opts class SyndicOptionParser( @@ -2025,11 +2018,9 @@ class SyndicOptionParser( ] def setup_config(self): - opts = config.syndic_config( + return config.syndic_config( self.get_config_file_path(), self.get_config_file_path("minion") ) - salt.features.setup_features(opts) - return opts class SaltCMDOptionParser( @@ -2368,9 +2359,7 @@ class SaltCMDOptionParser( self.exit(42, "\nIncomplete options passed.\n\n") def setup_config(self): - opts = config.client_config(self.get_config_file_path()) - salt.features.setup_features(opts) - return opts + return config.client_config(self.get_config_file_path()) class SaltCPOptionParser( @@ -2441,9 +2430,7 @@ class SaltCPOptionParser( self.config["dest"] = self.args[-1] def setup_config(self): - opts = config.master_config(self.get_config_file_path()) - salt.features.setup_features(opts) - return opts + return config.master_config(self.get_config_file_path()) class SaltKeyOptionParser( @@ -2735,7 +2722,6 @@ class SaltKeyOptionParser( # Since we're generating the keys, some defaults can be assumed # or tweaked keys_config["pki_dir"] = self.options.gen_keys_dir - salt.features.setup_features(keys_config) return keys_config def process_rotate_aes_key(self): @@ -2984,7 +2970,6 @@ class SaltCallOptionParser( opts = config.minion_config( self.get_config_file_path(), cache_minion_id=True ) - salt.features.setup_features(opts) return opts def process_module_dirs(self): @@ -3086,9 +3071,7 @@ class SaltRunOptionParser( self.config["arg"] = [] def setup_config(self): - opts = config.client_config(self.get_config_file_path()) - salt.features.setup_features(opts) - return opts + return config.client_config(self.get_config_file_path()) class SaltSSHOptionParser( @@ -3428,9 +3411,7 @@ class SaltSSHOptionParser( break def setup_config(self): - opts = config.master_config(self.get_config_file_path()) - salt.features.setup_features(opts) - return opts + return config.master_config(self.get_config_file_path()) class SaltCloudParser( @@ -3491,11 +3472,9 @@ class SaltCloudParser( def setup_config(self): try: - opts = config.cloud_config(self.get_config_file_path()) + return config.cloud_config(self.get_config_file_path()) except salt.exceptions.SaltCloudConfigError as exc: self.error(exc) - salt.features.setup_features(opts) - return opts class SPMParser( @@ -3551,9 +3530,7 @@ class SPMParser( self.error("Insufficient arguments") def setup_config(self): - opts = salt.config.spm_config(self.get_config_file_path()) - salt.features.setup_features(opts) - return opts + return salt.config.spm_config(self.get_config_file_path()) class SaltAPIParser( @@ -3579,8 +3556,6 @@ class SaltAPIParser( _default_logging_logfile_ = config.DEFAULT_API_OPTS[_logfile_config_setting_name_] def setup_config(self): - opts = salt.config.api_config( + return salt.config.api_config( self.get_config_file_path() ) # pylint: disable=no-member - salt.features.setup_features(opts) - return opts From 95e7e330d72932920ea688ee10f32faaade28e30 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Tue, 30 Jan 2024 16:15:48 +0000 Subject: [PATCH 124/146] Bump to `aiohttp==3.9.2` due to https://github.com/advisories/GHSA-5h86-8mv2-jq9f --- requirements/static/ci/py3.10/cloud.txt | 2 +- requirements/static/ci/py3.10/darwin.txt | 2 +- requirements/static/ci/py3.10/freebsd.txt | 2 +- requirements/static/ci/py3.10/lint.txt | 2 +- requirements/static/ci/py3.10/linux.txt | 2 +- requirements/static/ci/py3.10/windows.txt | 2 +- requirements/static/ci/py3.11/cloud.txt | 2 +- requirements/static/ci/py3.11/darwin.txt | 2 +- requirements/static/ci/py3.11/freebsd.txt | 2 +- requirements/static/ci/py3.11/lint.txt | 2 +- requirements/static/ci/py3.11/linux.txt | 2 +- requirements/static/ci/py3.11/windows.txt | 2 +- requirements/static/ci/py3.12/cloud.txt | 2 +- requirements/static/ci/py3.12/darwin.txt | 2 +- requirements/static/ci/py3.12/freebsd.txt | 2 +- requirements/static/ci/py3.12/lint.txt | 2 +- requirements/static/ci/py3.12/linux.txt | 2 +- requirements/static/ci/py3.12/windows.txt | 2 +- requirements/static/ci/py3.8/cloud.txt | 2 +- requirements/static/ci/py3.8/freebsd.txt | 2 +- requirements/static/ci/py3.8/lint.txt | 2 +- requirements/static/ci/py3.8/linux.txt | 2 +- requirements/static/ci/py3.8/windows.txt | 2 +- requirements/static/ci/py3.9/cloud.txt | 2 +- requirements/static/ci/py3.9/darwin.txt | 2 +- requirements/static/ci/py3.9/freebsd.txt | 2 +- requirements/static/ci/py3.9/lint.txt | 2 +- requirements/static/ci/py3.9/linux.txt | 2 +- requirements/static/ci/py3.9/windows.txt | 2 +- 29 files changed, 29 insertions(+), 29 deletions(-) diff --git a/requirements/static/ci/py3.10/cloud.txt b/requirements/static/ci/py3.10/cloud.txt index 2abef7dc72f..73544193c42 100644 --- a/requirements/static/ci/py3.10/cloud.txt +++ b/requirements/static/ci/py3.10/cloud.txt @@ -4,7 +4,7 @@ # # pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.10/cloud.txt requirements/base.txt requirements/pytest.txt requirements/static/ci/cloud.in requirements/static/ci/common.in requirements/static/pkg/linux.in requirements/zeromq.txt # -aiohttp==3.9.0 +aiohttp==3.9.2 # via # -c requirements/static/ci/py3.10/linux.txt # etcd3-py diff --git a/requirements/static/ci/py3.10/darwin.txt b/requirements/static/ci/py3.10/darwin.txt index 49ff4eda395..3f32008b890 100644 --- a/requirements/static/ci/py3.10/darwin.txt +++ b/requirements/static/ci/py3.10/darwin.txt @@ -4,7 +4,7 @@ # # pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.10/darwin.txt requirements/darwin.txt requirements/pytest.txt requirements/static/ci/common.in requirements/static/ci/darwin.in requirements/static/pkg/darwin.in # -aiohttp==3.9.0 +aiohttp==3.9.2 # via etcd3-py aiosignal==1.2.0 # via aiohttp diff --git a/requirements/static/ci/py3.10/freebsd.txt b/requirements/static/ci/py3.10/freebsd.txt index 4dad13a2b3d..68574e3a32f 100644 --- a/requirements/static/ci/py3.10/freebsd.txt +++ b/requirements/static/ci/py3.10/freebsd.txt @@ -4,7 +4,7 @@ # # pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.10/freebsd.txt requirements/base.txt requirements/pytest.txt requirements/static/ci/common.in requirements/static/ci/freebsd.in requirements/static/pkg/freebsd.in requirements/zeromq.txt # -aiohttp==3.9.0 +aiohttp==3.9.2 # via etcd3-py aiosignal==1.2.0 # via aiohttp diff --git a/requirements/static/ci/py3.10/lint.txt b/requirements/static/ci/py3.10/lint.txt index 3ac30d98e70..4e053a501bb 100644 --- a/requirements/static/ci/py3.10/lint.txt +++ b/requirements/static/ci/py3.10/lint.txt @@ -4,7 +4,7 @@ # # pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.10/lint.txt requirements/base.txt requirements/static/ci/common.in requirements/static/ci/lint.in requirements/static/ci/linux.in requirements/static/pkg/linux.in requirements/zeromq.txt # -aiohttp==3.9.0 +aiohttp==3.9.2 # via # -c requirements/static/ci/py3.10/linux.txt # etcd3-py diff --git a/requirements/static/ci/py3.10/linux.txt b/requirements/static/ci/py3.10/linux.txt index ad1636529a6..e48813a9038 100644 --- a/requirements/static/ci/py3.10/linux.txt +++ b/requirements/static/ci/py3.10/linux.txt @@ -4,7 +4,7 @@ # # pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.10/linux.txt requirements/base.txt requirements/pytest.txt requirements/static/ci/common.in requirements/static/ci/linux.in requirements/static/pkg/linux.in requirements/zeromq.txt # -aiohttp==3.9.0 +aiohttp==3.9.2 # via etcd3-py aiosignal==1.2.0 # via aiohttp diff --git a/requirements/static/ci/py3.10/windows.txt b/requirements/static/ci/py3.10/windows.txt index 6dd5ab23af4..3f62cdfd6a3 100644 --- a/requirements/static/ci/py3.10/windows.txt +++ b/requirements/static/ci/py3.10/windows.txt @@ -4,7 +4,7 @@ # # pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.10/windows.txt requirements/pytest.txt requirements/static/ci/common.in requirements/static/ci/windows.in requirements/static/pkg/windows.in requirements/windows.txt # -aiohttp==3.9.0 +aiohttp==3.9.2 # via etcd3-py aiosignal==1.3.1 # via aiohttp diff --git a/requirements/static/ci/py3.11/cloud.txt b/requirements/static/ci/py3.11/cloud.txt index d15bdd12fac..85a7953dfb7 100644 --- a/requirements/static/ci/py3.11/cloud.txt +++ b/requirements/static/ci/py3.11/cloud.txt @@ -4,7 +4,7 @@ # # pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.11/cloud.txt requirements/base.txt requirements/pytest.txt requirements/static/ci/cloud.in requirements/static/ci/common.in requirements/static/pkg/linux.in requirements/zeromq.txt # -aiohttp==3.9.0 +aiohttp==3.9.2 # via # -c requirements/static/ci/py3.11/linux.txt # etcd3-py diff --git a/requirements/static/ci/py3.11/darwin.txt b/requirements/static/ci/py3.11/darwin.txt index afddd1d39aa..1082b7171cd 100644 --- a/requirements/static/ci/py3.11/darwin.txt +++ b/requirements/static/ci/py3.11/darwin.txt @@ -4,7 +4,7 @@ # # pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.11/darwin.txt requirements/darwin.txt requirements/pytest.txt requirements/static/ci/common.in requirements/static/ci/darwin.in requirements/static/pkg/darwin.in # -aiohttp==3.9.0 +aiohttp==3.9.2 # via etcd3-py aiosignal==1.2.0 # via aiohttp diff --git a/requirements/static/ci/py3.11/freebsd.txt b/requirements/static/ci/py3.11/freebsd.txt index e02c2cc4c32..e2ebbd35d7d 100644 --- a/requirements/static/ci/py3.11/freebsd.txt +++ b/requirements/static/ci/py3.11/freebsd.txt @@ -4,7 +4,7 @@ # # pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.11/freebsd.txt requirements/base.txt requirements/pytest.txt requirements/static/ci/common.in requirements/static/ci/freebsd.in requirements/static/pkg/freebsd.in requirements/zeromq.txt # -aiohttp==3.9.0 +aiohttp==3.9.2 # via etcd3-py aiosignal==1.2.0 # via aiohttp diff --git a/requirements/static/ci/py3.11/lint.txt b/requirements/static/ci/py3.11/lint.txt index 6a9e5b58469..4c76d5b20f1 100644 --- a/requirements/static/ci/py3.11/lint.txt +++ b/requirements/static/ci/py3.11/lint.txt @@ -4,7 +4,7 @@ # # pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.11/lint.txt requirements/base.txt requirements/static/ci/common.in requirements/static/ci/lint.in requirements/static/ci/linux.in requirements/static/pkg/linux.in requirements/zeromq.txt # -aiohttp==3.9.0 +aiohttp==3.9.2 # via # -c requirements/static/ci/py3.11/linux.txt # etcd3-py diff --git a/requirements/static/ci/py3.11/linux.txt b/requirements/static/ci/py3.11/linux.txt index c8fb1c4e96c..adfca9f2384 100644 --- a/requirements/static/ci/py3.11/linux.txt +++ b/requirements/static/ci/py3.11/linux.txt @@ -4,7 +4,7 @@ # # pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.11/linux.txt requirements/base.txt requirements/pytest.txt requirements/static/ci/common.in requirements/static/ci/linux.in requirements/static/pkg/linux.in requirements/zeromq.txt # -aiohttp==3.9.0 +aiohttp==3.9.2 # via etcd3-py aiosignal==1.2.0 # via aiohttp diff --git a/requirements/static/ci/py3.11/windows.txt b/requirements/static/ci/py3.11/windows.txt index 0a59ba638b2..70227fb36c4 100644 --- a/requirements/static/ci/py3.11/windows.txt +++ b/requirements/static/ci/py3.11/windows.txt @@ -4,7 +4,7 @@ # # pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.11/windows.txt requirements/pytest.txt requirements/static/ci/common.in requirements/static/ci/windows.in requirements/static/pkg/windows.in requirements/windows.txt # -aiohttp==3.9.0 +aiohttp==3.9.2 # via etcd3-py aiosignal==1.3.1 # via aiohttp diff --git a/requirements/static/ci/py3.12/cloud.txt b/requirements/static/ci/py3.12/cloud.txt index b00e9596234..326f1bb2141 100644 --- a/requirements/static/ci/py3.12/cloud.txt +++ b/requirements/static/ci/py3.12/cloud.txt @@ -4,7 +4,7 @@ # # pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.12/cloud.txt requirements/base.txt requirements/pytest.txt requirements/static/ci/cloud.in requirements/static/ci/common.in requirements/static/pkg/linux.in requirements/zeromq.txt # -aiohttp==3.9.0 +aiohttp==3.9.2 # via # -c requirements/static/ci/py3.12/linux.txt # etcd3-py diff --git a/requirements/static/ci/py3.12/darwin.txt b/requirements/static/ci/py3.12/darwin.txt index 9160cc7e38c..abe377b038c 100644 --- a/requirements/static/ci/py3.12/darwin.txt +++ b/requirements/static/ci/py3.12/darwin.txt @@ -4,7 +4,7 @@ # # pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.12/darwin.txt requirements/darwin.txt requirements/pytest.txt requirements/static/ci/common.in requirements/static/ci/darwin.in requirements/static/pkg/darwin.in # -aiohttp==3.9.0 +aiohttp==3.9.2 # via etcd3-py aiosignal==1.2.0 # via aiohttp diff --git a/requirements/static/ci/py3.12/freebsd.txt b/requirements/static/ci/py3.12/freebsd.txt index ebd1645bd69..532be3a78a1 100644 --- a/requirements/static/ci/py3.12/freebsd.txt +++ b/requirements/static/ci/py3.12/freebsd.txt @@ -4,7 +4,7 @@ # # pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.12/freebsd.txt requirements/base.txt requirements/pytest.txt requirements/static/ci/common.in requirements/static/ci/freebsd.in requirements/static/pkg/freebsd.in requirements/zeromq.txt # -aiohttp==3.9.0 +aiohttp==3.9.2 # via etcd3-py aiosignal==1.2.0 # via aiohttp diff --git a/requirements/static/ci/py3.12/lint.txt b/requirements/static/ci/py3.12/lint.txt index 0052be08a93..c0c5927cfbe 100644 --- a/requirements/static/ci/py3.12/lint.txt +++ b/requirements/static/ci/py3.12/lint.txt @@ -4,7 +4,7 @@ # # pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.12/lint.txt requirements/base.txt requirements/static/ci/common.in requirements/static/ci/lint.in requirements/static/ci/linux.in requirements/static/pkg/linux.in requirements/zeromq.txt # -aiohttp==3.9.0 +aiohttp==3.9.2 # via # -c requirements/static/ci/py3.12/linux.txt # etcd3-py diff --git a/requirements/static/ci/py3.12/linux.txt b/requirements/static/ci/py3.12/linux.txt index 7f98b8c08cb..5103c4956bb 100644 --- a/requirements/static/ci/py3.12/linux.txt +++ b/requirements/static/ci/py3.12/linux.txt @@ -4,7 +4,7 @@ # # pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.12/linux.txt requirements/base.txt requirements/pytest.txt requirements/static/ci/common.in requirements/static/ci/linux.in requirements/static/pkg/linux.in requirements/zeromq.txt # -aiohttp==3.9.0 +aiohttp==3.9.2 # via etcd3-py aiosignal==1.2.0 # via aiohttp diff --git a/requirements/static/ci/py3.12/windows.txt b/requirements/static/ci/py3.12/windows.txt index d4189423f87..6b667c63190 100644 --- a/requirements/static/ci/py3.12/windows.txt +++ b/requirements/static/ci/py3.12/windows.txt @@ -4,7 +4,7 @@ # # pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.12/windows.txt requirements/pytest.txt requirements/static/ci/common.in requirements/static/ci/windows.in requirements/static/pkg/windows.in requirements/windows.txt # -aiohttp==3.9.0 +aiohttp==3.9.2 # via etcd3-py aiosignal==1.3.1 # via aiohttp diff --git a/requirements/static/ci/py3.8/cloud.txt b/requirements/static/ci/py3.8/cloud.txt index 48208fbcded..3f817ef0075 100644 --- a/requirements/static/ci/py3.8/cloud.txt +++ b/requirements/static/ci/py3.8/cloud.txt @@ -4,7 +4,7 @@ # # pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.8/cloud.txt requirements/base.txt requirements/pytest.txt requirements/static/ci/cloud.in requirements/static/ci/common.in requirements/static/pkg/linux.in requirements/zeromq.txt # -aiohttp==3.9.0 +aiohttp==3.9.2 # via # -c requirements/static/ci/py3.8/linux.txt # etcd3-py diff --git a/requirements/static/ci/py3.8/freebsd.txt b/requirements/static/ci/py3.8/freebsd.txt index 0a2ed4459d2..e879d25ba5c 100644 --- a/requirements/static/ci/py3.8/freebsd.txt +++ b/requirements/static/ci/py3.8/freebsd.txt @@ -4,7 +4,7 @@ # # pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.8/freebsd.txt requirements/base.txt requirements/pytest.txt requirements/static/ci/common.in requirements/static/ci/freebsd.in requirements/static/pkg/freebsd.in requirements/zeromq.txt # -aiohttp==3.9.0 +aiohttp==3.9.2 # via etcd3-py aiosignal==1.2.0 # via aiohttp diff --git a/requirements/static/ci/py3.8/lint.txt b/requirements/static/ci/py3.8/lint.txt index 5b10cbe8a36..f708fd610aa 100644 --- a/requirements/static/ci/py3.8/lint.txt +++ b/requirements/static/ci/py3.8/lint.txt @@ -4,7 +4,7 @@ # # pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.8/lint.txt requirements/base.txt requirements/static/ci/common.in requirements/static/ci/lint.in requirements/static/ci/linux.in requirements/static/pkg/linux.in requirements/zeromq.txt # -aiohttp==3.9.0 +aiohttp==3.9.2 # via # -c requirements/static/ci/py3.8/linux.txt # etcd3-py diff --git a/requirements/static/ci/py3.8/linux.txt b/requirements/static/ci/py3.8/linux.txt index bd2983159f5..12d29cf02f7 100644 --- a/requirements/static/ci/py3.8/linux.txt +++ b/requirements/static/ci/py3.8/linux.txt @@ -4,7 +4,7 @@ # # pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.8/linux.txt requirements/base.txt requirements/pytest.txt requirements/static/ci/common.in requirements/static/ci/linux.in requirements/static/pkg/linux.in requirements/zeromq.txt # -aiohttp==3.9.0 +aiohttp==3.9.2 # via etcd3-py aiosignal==1.2.0 # via aiohttp diff --git a/requirements/static/ci/py3.8/windows.txt b/requirements/static/ci/py3.8/windows.txt index d8f1b73f25b..fd9ab313318 100644 --- a/requirements/static/ci/py3.8/windows.txt +++ b/requirements/static/ci/py3.8/windows.txt @@ -4,7 +4,7 @@ # # pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.8/windows.txt requirements/pytest.txt requirements/static/ci/common.in requirements/static/ci/windows.in requirements/static/pkg/windows.in requirements/windows.txt # -aiohttp==3.9.0 +aiohttp==3.9.2 # via etcd3-py aiosignal==1.2.0 # via aiohttp diff --git a/requirements/static/ci/py3.9/cloud.txt b/requirements/static/ci/py3.9/cloud.txt index 0a7d77d0f79..a9647fa16f3 100644 --- a/requirements/static/ci/py3.9/cloud.txt +++ b/requirements/static/ci/py3.9/cloud.txt @@ -4,7 +4,7 @@ # # pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.9/cloud.txt requirements/base.txt requirements/pytest.txt requirements/static/ci/cloud.in requirements/static/ci/common.in requirements/static/pkg/linux.in requirements/zeromq.txt # -aiohttp==3.9.0 +aiohttp==3.9.2 # via # -c requirements/static/ci/py3.9/linux.txt # etcd3-py diff --git a/requirements/static/ci/py3.9/darwin.txt b/requirements/static/ci/py3.9/darwin.txt index 497a510321c..70e8f14f62d 100644 --- a/requirements/static/ci/py3.9/darwin.txt +++ b/requirements/static/ci/py3.9/darwin.txt @@ -4,7 +4,7 @@ # # pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.9/darwin.txt requirements/darwin.txt requirements/pytest.txt requirements/static/ci/common.in requirements/static/ci/darwin.in requirements/static/pkg/darwin.in # -aiohttp==3.9.0 +aiohttp==3.9.2 # via etcd3-py aiosignal==1.2.0 # via aiohttp diff --git a/requirements/static/ci/py3.9/freebsd.txt b/requirements/static/ci/py3.9/freebsd.txt index 59ed8b4c4cf..936b1488c4f 100644 --- a/requirements/static/ci/py3.9/freebsd.txt +++ b/requirements/static/ci/py3.9/freebsd.txt @@ -4,7 +4,7 @@ # # pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.9/freebsd.txt requirements/base.txt requirements/pytest.txt requirements/static/ci/common.in requirements/static/ci/freebsd.in requirements/static/pkg/freebsd.in requirements/zeromq.txt # -aiohttp==3.9.0 +aiohttp==3.9.2 # via etcd3-py aiosignal==1.2.0 # via aiohttp diff --git a/requirements/static/ci/py3.9/lint.txt b/requirements/static/ci/py3.9/lint.txt index 189b5f0d2e9..33302ded997 100644 --- a/requirements/static/ci/py3.9/lint.txt +++ b/requirements/static/ci/py3.9/lint.txt @@ -4,7 +4,7 @@ # # pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.9/lint.txt requirements/base.txt requirements/static/ci/common.in requirements/static/ci/lint.in requirements/static/ci/linux.in requirements/static/pkg/linux.in requirements/zeromq.txt # -aiohttp==3.9.0 +aiohttp==3.9.2 # via # -c requirements/static/ci/py3.9/linux.txt # etcd3-py diff --git a/requirements/static/ci/py3.9/linux.txt b/requirements/static/ci/py3.9/linux.txt index b47b8d5ce5c..b1b23b350bd 100644 --- a/requirements/static/ci/py3.9/linux.txt +++ b/requirements/static/ci/py3.9/linux.txt @@ -4,7 +4,7 @@ # # pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.9/linux.txt requirements/base.txt requirements/pytest.txt requirements/static/ci/common.in requirements/static/ci/linux.in requirements/static/pkg/linux.in requirements/zeromq.txt # -aiohttp==3.9.0 +aiohttp==3.9.2 # via etcd3-py aiosignal==1.2.0 # via aiohttp diff --git a/requirements/static/ci/py3.9/windows.txt b/requirements/static/ci/py3.9/windows.txt index 2a126b2b8e4..8abf5a0081d 100644 --- a/requirements/static/ci/py3.9/windows.txt +++ b/requirements/static/ci/py3.9/windows.txt @@ -4,7 +4,7 @@ # # pip-compile --no-emit-index-url --output-file=requirements/static/ci/py3.9/windows.txt requirements/pytest.txt requirements/static/ci/common.in requirements/static/ci/windows.in requirements/static/pkg/windows.in requirements/windows.txt # -aiohttp==3.9.0 +aiohttp==3.9.2 # via etcd3-py aiosignal==1.2.0 # via aiohttp From 9e353f85118bd746f75176244c26661de6d26d66 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Wed, 31 Jan 2024 12:53:05 +0000 Subject: [PATCH 125/146] Fix docs builds --- .github/workflows/build-docs.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-docs.yml b/.github/workflows/build-docs.yml index e99c84ef303..53bc06fbd62 100644 --- a/.github/workflows/build-docs.yml +++ b/.github/workflows/build-docs.yml @@ -76,10 +76,10 @@ jobs: - name: Prepare Docs Build run: | - git clone https://gitlab.com/saltstack/open/docs/builddocs.git .builddocs + git clone https://gitlab.com/saltstack/open/docs/builddocs-fonts.git .builddocs-fonts sudo mkdir -p /usr/share/fonts/truetype /usr/share/fonts/opentype - sudo cp -rfv .builddocs/builddocs/files/fonts/truetype/*.ttf /usr/share/fonts/truetype/ - sudo cp -rfv .builddocs/builddocs/files/fonts/opentype/*.otf /usr/share/fonts/opentype/ + sudo cp -rfv .builddocs-fonts/*.ttf /usr/share/fonts/truetype/ + sudo cp -rfv .builddocs-fonts/*.otf /usr/share/fonts/opentype/ sudo fc-cache -f -v - name: Build Documentation (${{ matrix.docs-output }}) From f9ca6b18b03c41270cca6da73048c2ea8409705d Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Wed, 31 Jan 2024 12:53:05 +0000 Subject: [PATCH 126/146] Fix docs builds --- .github/workflows/build-docs.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-docs.yml b/.github/workflows/build-docs.yml index e99c84ef303..53bc06fbd62 100644 --- a/.github/workflows/build-docs.yml +++ b/.github/workflows/build-docs.yml @@ -76,10 +76,10 @@ jobs: - name: Prepare Docs Build run: | - git clone https://gitlab.com/saltstack/open/docs/builddocs.git .builddocs + git clone https://gitlab.com/saltstack/open/docs/builddocs-fonts.git .builddocs-fonts sudo mkdir -p /usr/share/fonts/truetype /usr/share/fonts/opentype - sudo cp -rfv .builddocs/builddocs/files/fonts/truetype/*.ttf /usr/share/fonts/truetype/ - sudo cp -rfv .builddocs/builddocs/files/fonts/opentype/*.otf /usr/share/fonts/opentype/ + sudo cp -rfv .builddocs-fonts/*.ttf /usr/share/fonts/truetype/ + sudo cp -rfv .builddocs-fonts/*.otf /usr/share/fonts/opentype/ sudo fc-cache -f -v - name: Build Documentation (${{ matrix.docs-output }}) From 56b0646f2bced5aef15486735e82450b2a001e18 Mon Sep 17 00:00:00 2001 From: Max Arnold Date: Sun, 28 Jan 2024 20:23:06 +0700 Subject: [PATCH 127/146] Allow synced modules to override salt extensions --- salt/loader/__init__.py | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/salt/loader/__init__.py b/salt/loader/__init__.py index 38382a32a51..efb0b854131 100644 --- a/salt/loader/__init__.py +++ b/salt/loader/__init__.py @@ -130,17 +130,18 @@ def _module_dirs( ): if tag is None: tag = ext_type - sys_types = os.path.join(base_path or str(SALT_BASE_PATH), int_type or ext_type) - return_types = [sys_types] - if opts.get("extension_modules"): - ext_types = os.path.join(opts["extension_modules"], ext_type) - return_types.insert(0, ext_types) + sys_types = [os.path.join(base_path or str(SALT_BASE_PATH), int_type or ext_type)] - if not sys_types.startswith(SALT_INTERNAL_LOADERS_PATHS): + if opts.get("extension_modules"): + ext_types = [os.path.join(opts["extension_modules"], ext_type)] + else: + ext_types = [] + + if not sys_types[0].startswith(SALT_INTERNAL_LOADERS_PATHS): raise RuntimeError( "{!r} is not considered a salt internal loader path. If this " "is a new loader being added, please also add it to " - "{}.SALT_INTERNAL_LOADERS_PATHS.".format(sys_types, __name__) + "{}.SALT_INTERNAL_LOADERS_PATHS.".format(sys_types[0], __name__) ) ext_type_types = [] @@ -250,7 +251,7 @@ def _module_dirs( if os.path.isdir(maybe_dir): cli_module_dirs.insert(0, maybe_dir) - return cli_module_dirs + ext_type_types + return_types + return cli_module_dirs + ext_types + ext_type_types + sys_types def minion_mods( From be83897d23d5ececc413f3d7e8d7349ef82cb316 Mon Sep 17 00:00:00 2001 From: Max Arnold Date: Mon, 29 Jan 2024 15:51:16 +0700 Subject: [PATCH 128/146] Add opt-out feature toggle --- salt/loader/__init__.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/salt/loader/__init__.py b/salt/loader/__init__.py index efb0b854131..c999dcfec5d 100644 --- a/salt/loader/__init__.py +++ b/salt/loader/__init__.py @@ -28,6 +28,7 @@ import salt.utils.platform import salt.utils.stringutils import salt.utils.versions from salt.exceptions import LoaderError +from salt.features import features from salt.template import check_render_pipe_str from salt.utils import entrypoints @@ -251,7 +252,15 @@ def _module_dirs( if os.path.isdir(maybe_dir): cli_module_dirs.insert(0, maybe_dir) - return cli_module_dirs + ext_types + ext_type_types + sys_types + if features.get("enable_deprecated_module_search_path_priority", False): + salt.utils.versions.warn_until( + 3008, + "The old module search path priority will be removed in Salt Argon. " + "For more information see https://github.com/saltstack/salt/pull/65938.", + ) + return cli_module_dirs + ext_type_types + ext_types + sys_types + else: + return cli_module_dirs + ext_types + ext_type_types + sys_types def minion_mods( From 85cce64de92aa0ab2f8b7993e5f28643af02bb2e Mon Sep 17 00:00:00 2001 From: Max Arnold Date: Mon, 29 Jan 2024 15:51:50 +0700 Subject: [PATCH 129/146] Add functional test --- .../pytests/functional/loader/test_loader.py | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/tests/pytests/functional/loader/test_loader.py b/tests/pytests/functional/loader/test_loader.py index 963d33f59c3..5d1e7989f50 100644 --- a/tests/pytests/functional/loader/test_loader.py +++ b/tests/pytests/functional/loader/test_loader.py @@ -1,4 +1,5 @@ import json +import shutil import pytest @@ -26,6 +27,50 @@ def venv(tmp_path): yield _venv +@pytest.fixture +def module_dirs(tmp_path): + module_dir = tmp_path / "module-dir-base" + (module_dir / "modules").mkdir(parents=True) + try: + yield [str(module_dir)] + finally: + shutil.rmtree(str(module_dir), ignore_errors=True) + + +def test_module_dirs_priority(venv, salt_extension, salt_minion_factory, module_dirs): + # Install our extension into the virtualenv + venv.install(str(salt_extension.srcdir)) + installed_packages = venv.get_installed_packages() + assert salt_extension.name in installed_packages + code = """ + import sys + import json + import salt._logging + import salt.loader + + minion_config = json.loads(sys.stdin.read()) + salt._logging.set_logging_options_dict(minion_config) + salt._logging.setup_logging() + mod_dirs = salt.loader._module_dirs(minion_config, "modules", "module") + print(json.dumps(mod_dirs)) + """ + opts = salt_minion_factory.config.copy() + opts["module_dirs"] = module_dirs + ret = venv.run_code(code, input=json.dumps(opts)) + module_dirs_return = json.loads(ret.stdout) + assert len(module_dirs_return) == 5 + for i, tail in enumerate( + [ + "/module-dir-base/modules", + "/var/cache/salt/minion/extmods/modules", + "/module-dir-base", + "/site-packages/salt_ext_loader_test/modules", + "/site-packages/salt/modules", + ] + ): + assert module_dirs_return[i].endswith(tail) + + def test_new_entry_points_passing_module(venv, salt_extension, salt_minion_factory): # Install our extension into the virtualenv venv.install(str(salt_extension.srcdir)) From 94047ee5967d2e8358e077d437a875d2ee87d889 Mon Sep 17 00:00:00 2001 From: Max Arnold Date: Mon, 29 Jan 2024 15:57:38 +0700 Subject: [PATCH 130/146] Add changelog entry --- changelog/65938.changed.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 changelog/65938.changed.md diff --git a/changelog/65938.changed.md b/changelog/65938.changed.md new file mode 100644 index 00000000000..a96e39b485d --- /dev/null +++ b/changelog/65938.changed.md @@ -0,0 +1 @@ +Change module search path priority, so Salt extensions can be overridden by syncable modules and module_dirs. You can switch back to the old logic by setting features.enable_deprecated_module_search_path_priority to true, but it will be removed in Salt 3008. From 4769ae02365779229d5669096f393b63544ad1d3 Mon Sep 17 00:00:00 2001 From: Max Arnold Date: Tue, 30 Jan 2024 18:03:47 +0700 Subject: [PATCH 131/146] Address the code review comments --- .../pytests/functional/loader/test_loader.py | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/tests/pytests/functional/loader/test_loader.py b/tests/pytests/functional/loader/test_loader.py index 5d1e7989f50..97e8843d4cf 100644 --- a/tests/pytests/functional/loader/test_loader.py +++ b/tests/pytests/functional/loader/test_loader.py @@ -1,5 +1,4 @@ import json -import shutil import pytest @@ -30,14 +29,11 @@ def venv(tmp_path): @pytest.fixture def module_dirs(tmp_path): module_dir = tmp_path / "module-dir-base" - (module_dir / "modules").mkdir(parents=True) - try: - yield [str(module_dir)] - finally: - shutil.rmtree(str(module_dir), ignore_errors=True) + module_dir.joinpath("modules").mkdir(parents=True) + return [str(module_dir)] -def test_module_dirs_priority(venv, salt_extension, salt_minion_factory, module_dirs): +def test_module_dirs_priority(venv, salt_extension, minion_opts, module_dirs): # Install our extension into the virtualenv venv.install(str(salt_extension.srcdir)) installed_packages = venv.get_installed_packages() @@ -54,9 +50,8 @@ def test_module_dirs_priority(venv, salt_extension, salt_minion_factory, module_ mod_dirs = salt.loader._module_dirs(minion_config, "modules", "module") print(json.dumps(mod_dirs)) """ - opts = salt_minion_factory.config.copy() - opts["module_dirs"] = module_dirs - ret = venv.run_code(code, input=json.dumps(opts)) + minion_opts["module_dirs"] = module_dirs + ret = venv.run_code(code, input=json.dumps(minion_opts)) module_dirs_return = json.loads(ret.stdout) assert len(module_dirs_return) == 5 for i, tail in enumerate( @@ -68,7 +63,9 @@ def test_module_dirs_priority(venv, salt_extension, salt_minion_factory, module_ "/site-packages/salt/modules", ] ): - assert module_dirs_return[i].endswith(tail) + assert module_dirs_return[i].endswith( + tail + ), f"{module_dirs_return[i]} does not end with {tail}" def test_new_entry_points_passing_module(venv, salt_extension, salt_minion_factory): From a14e899ffb4206717b1ff9dbefcdf05c1d9bbf51 Mon Sep 17 00:00:00 2001 From: Max Arnold Date: Tue, 30 Jan 2024 18:54:52 +0700 Subject: [PATCH 132/146] Use the "features" option directly, add test --- salt/loader/__init__.py | 7 ++++--- tests/pytests/functional/loader/test_loader.py | 18 ++++++++++++++++++ 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/salt/loader/__init__.py b/salt/loader/__init__.py index c999dcfec5d..f8feedfe727 100644 --- a/salt/loader/__init__.py +++ b/salt/loader/__init__.py @@ -28,7 +28,6 @@ import salt.utils.platform import salt.utils.stringutils import salt.utils.versions from salt.exceptions import LoaderError -from salt.features import features from salt.template import check_render_pipe_str from salt.utils import entrypoints @@ -252,10 +251,12 @@ def _module_dirs( if os.path.isdir(maybe_dir): cli_module_dirs.insert(0, maybe_dir) - if features.get("enable_deprecated_module_search_path_priority", False): + if opts.get("features", {}).get( + "enable_deprecated_module_search_path_priority", False + ): salt.utils.versions.warn_until( 3008, - "The old module search path priority will be removed in Salt Argon. " + "The old module search path priority will be removed in Salt 3008. " "For more information see https://github.com/saltstack/salt/pull/65938.", ) return cli_module_dirs + ext_type_types + ext_types + sys_types diff --git a/tests/pytests/functional/loader/test_loader.py b/tests/pytests/functional/loader/test_loader.py index 97e8843d4cf..33b6bd793d3 100644 --- a/tests/pytests/functional/loader/test_loader.py +++ b/tests/pytests/functional/loader/test_loader.py @@ -67,6 +67,24 @@ def test_module_dirs_priority(venv, salt_extension, minion_opts, module_dirs): tail ), f"{module_dirs_return[i]} does not end with {tail}" + # Test the deprecated mode as well + minion_opts["features"] = {"enable_deprecated_module_search_path_priority": True} + ret = venv.run_code(code, input=json.dumps(minion_opts)) + module_dirs_return = json.loads(ret.stdout) + assert len(module_dirs_return) == 5 + for i, tail in enumerate( + [ + "/module-dir-base/modules", + "/module-dir-base", + "/site-packages/salt_ext_loader_test/modules", + "/var/cache/salt/minion/extmods/modules", + "/site-packages/salt/modules", + ] + ): + assert module_dirs_return[i].endswith( + tail + ), f"{module_dirs_return[i]} does not end with {tail}" + def test_new_entry_points_passing_module(venv, salt_extension, salt_minion_factory): # Install our extension into the virtualenv From 3dc0a2ca30d4fb7a6c09772596a5651da457968a Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Wed, 31 Jan 2024 13:07:24 +0000 Subject: [PATCH 133/146] Fix the copy path --- .github/workflows/build-docs.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-docs.yml b/.github/workflows/build-docs.yml index 53bc06fbd62..415cdfc7d19 100644 --- a/.github/workflows/build-docs.yml +++ b/.github/workflows/build-docs.yml @@ -78,8 +78,8 @@ jobs: run: | git clone https://gitlab.com/saltstack/open/docs/builddocs-fonts.git .builddocs-fonts sudo mkdir -p /usr/share/fonts/truetype /usr/share/fonts/opentype - sudo cp -rfv .builddocs-fonts/*.ttf /usr/share/fonts/truetype/ - sudo cp -rfv .builddocs-fonts/*.otf /usr/share/fonts/opentype/ + sudo cp -rfv .builddocs-fonts/truetype/*.ttf /usr/share/fonts/truetype/ + sudo cp -rfv .builddocs-fonts/opentype/*.otf /usr/share/fonts/opentype/ sudo fc-cache -f -v - name: Build Documentation (${{ matrix.docs-output }}) From 09fb88428693283e0317789d1fe05ae870ea18f2 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Wed, 31 Jan 2024 13:21:29 +0000 Subject: [PATCH 134/146] Build documentation when `.github/workflows/build-docs.yml` changes --- .github/workflows/ci.yml | 1 + .github/workflows/nightly.yml | 1 + .github/workflows/scheduled.yml | 1 + .github/workflows/staging.yml | 1 + .github/workflows/templates/layout.yml.jinja | 1 + 5 files changed, 5 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 16573bf856b..b9b53bfa893 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -95,6 +95,7 @@ jobs: docs: - added|modified: - doc/** + - .github/workflows/build-docs.yml - *doc_requirements workflows: - added|modified: diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 06159dd6f90..bed81903da4 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -139,6 +139,7 @@ jobs: docs: - added|modified: - doc/** + - .github/workflows/build-docs.yml - *doc_requirements workflows: - added|modified: diff --git a/.github/workflows/scheduled.yml b/.github/workflows/scheduled.yml index bd1a41d4fb9..53bfa2db6ca 100644 --- a/.github/workflows/scheduled.yml +++ b/.github/workflows/scheduled.yml @@ -129,6 +129,7 @@ jobs: docs: - added|modified: - doc/** + - .github/workflows/build-docs.yml - *doc_requirements workflows: - added|modified: diff --git a/.github/workflows/staging.yml b/.github/workflows/staging.yml index fa11eb82402..e4280dea294 100644 --- a/.github/workflows/staging.yml +++ b/.github/workflows/staging.yml @@ -125,6 +125,7 @@ jobs: docs: - added|modified: - doc/** + - .github/workflows/build-docs.yml - *doc_requirements workflows: - added|modified: diff --git a/.github/workflows/templates/layout.yml.jinja b/.github/workflows/templates/layout.yml.jinja index 4b146ff3a5f..1c4b54d671b 100644 --- a/.github/workflows/templates/layout.yml.jinja +++ b/.github/workflows/templates/layout.yml.jinja @@ -143,6 +143,7 @@ jobs: docs: - added|modified: - doc/** + - .github/workflows/build-docs.yml - *doc_requirements workflows: - added|modified: From 00a92cc45391510595d3d000e2c06c908ec2d9ad Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Wed, 31 Jan 2024 13:07:24 +0000 Subject: [PATCH 135/146] Fix the copy path --- .github/workflows/build-docs.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-docs.yml b/.github/workflows/build-docs.yml index 53bc06fbd62..415cdfc7d19 100644 --- a/.github/workflows/build-docs.yml +++ b/.github/workflows/build-docs.yml @@ -78,8 +78,8 @@ jobs: run: | git clone https://gitlab.com/saltstack/open/docs/builddocs-fonts.git .builddocs-fonts sudo mkdir -p /usr/share/fonts/truetype /usr/share/fonts/opentype - sudo cp -rfv .builddocs-fonts/*.ttf /usr/share/fonts/truetype/ - sudo cp -rfv .builddocs-fonts/*.otf /usr/share/fonts/opentype/ + sudo cp -rfv .builddocs-fonts/truetype/*.ttf /usr/share/fonts/truetype/ + sudo cp -rfv .builddocs-fonts/opentype/*.otf /usr/share/fonts/opentype/ sudo fc-cache -f -v - name: Build Documentation (${{ matrix.docs-output }}) From 0afae059a6dfc7638381e5d27abba5b92a929405 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Wed, 31 Jan 2024 13:21:29 +0000 Subject: [PATCH 136/146] Build documentation when `.github/workflows/build-docs.yml` changes --- .github/workflows/ci.yml | 1 + .github/workflows/nightly.yml | 1 + .github/workflows/scheduled.yml | 1 + .github/workflows/staging.yml | 1 + .github/workflows/templates/layout.yml.jinja | 1 + 5 files changed, 5 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index fdf33ad8116..baa59d10552 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -96,6 +96,7 @@ jobs: docs: - added|modified: - doc/** + - .github/workflows/build-docs.yml - *doc_requirements workflows: - added|modified: diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 42d0b67c45b..ef2a2623b73 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -148,6 +148,7 @@ jobs: docs: - added|modified: - doc/** + - .github/workflows/build-docs.yml - *doc_requirements workflows: - added|modified: diff --git a/.github/workflows/scheduled.yml b/.github/workflows/scheduled.yml index 09518c4f519..02f150e09a8 100644 --- a/.github/workflows/scheduled.yml +++ b/.github/workflows/scheduled.yml @@ -138,6 +138,7 @@ jobs: docs: - added|modified: - doc/** + - .github/workflows/build-docs.yml - *doc_requirements workflows: - added|modified: diff --git a/.github/workflows/staging.yml b/.github/workflows/staging.yml index d7a8929ed32..687c207d84f 100644 --- a/.github/workflows/staging.yml +++ b/.github/workflows/staging.yml @@ -126,6 +126,7 @@ jobs: docs: - added|modified: - doc/** + - .github/workflows/build-docs.yml - *doc_requirements workflows: - added|modified: diff --git a/.github/workflows/templates/layout.yml.jinja b/.github/workflows/templates/layout.yml.jinja index 3f8b8f54bd4..af4290a64d1 100644 --- a/.github/workflows/templates/layout.yml.jinja +++ b/.github/workflows/templates/layout.yml.jinja @@ -144,6 +144,7 @@ jobs: docs: - added|modified: - doc/** + - .github/workflows/build-docs.yml - *doc_requirements workflows: - added|modified: From 2e5c42174a19eb01d2281da56343ddcfe28f49a8 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Wed, 31 Jan 2024 16:08:07 +0000 Subject: [PATCH 137/146] A change in `.github/workflows/build-deps-ci-action.yml` invalidates cache --- .github/workflows/ci.yml | 2 +- .github/workflows/nightly.yml | 2 +- .github/workflows/release.yml | 2 +- .github/workflows/scheduled.yml | 2 +- .github/workflows/staging.yml | 2 +- .github/workflows/templates/layout.yml.jinja | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b9b53bfa893..51f629c46e7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -171,7 +171,7 @@ jobs: - name: Get Hash For Nox Tarball Cache id: nox-archive-hash run: | - echo "nox-archive-hash=${{ hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py', 'pkg/common/env-cleanup-rules.yml') }}" | tee -a "$GITHUB_OUTPUT" + echo "nox-archive-hash=${{ hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py', 'pkg/common/env-cleanup-rules.yml', '.github/workflows/build-deps-ci-action.yml') }}" | tee -a "$GITHUB_OUTPUT" - name: Write Changed Files To A Local File run: diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index bed81903da4..fea92602ef9 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -215,7 +215,7 @@ jobs: - name: Get Hash For Nox Tarball Cache id: nox-archive-hash run: | - echo "nox-archive-hash=${{ hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py', 'pkg/common/env-cleanup-rules.yml') }}" | tee -a "$GITHUB_OUTPUT" + echo "nox-archive-hash=${{ hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py', 'pkg/common/env-cleanup-rules.yml', '.github/workflows/build-deps-ci-action.yml') }}" | tee -a "$GITHUB_OUTPUT" - name: Write Changed Files To A Local File run: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 87362595f48..e99b6daa2ef 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -117,7 +117,7 @@ jobs: - name: Get Hash For Nox Tarball Cache id: nox-archive-hash run: | - echo "nox-archive-hash=${{ hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py', 'pkg/common/env-cleanup-rules.yml') }}" | tee -a "$GITHUB_OUTPUT" + echo "nox-archive-hash=${{ hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py', 'pkg/common/env-cleanup-rules.yml', '.github/workflows/build-deps-ci-action.yml') }}" | tee -a "$GITHUB_OUTPUT" download-onedir-artifact: name: Download Staging Onedir Artifact diff --git a/.github/workflows/scheduled.yml b/.github/workflows/scheduled.yml index 53bfa2db6ca..2b7d386383c 100644 --- a/.github/workflows/scheduled.yml +++ b/.github/workflows/scheduled.yml @@ -205,7 +205,7 @@ jobs: - name: Get Hash For Nox Tarball Cache id: nox-archive-hash run: | - echo "nox-archive-hash=${{ hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py', 'pkg/common/env-cleanup-rules.yml') }}" | tee -a "$GITHUB_OUTPUT" + echo "nox-archive-hash=${{ hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py', 'pkg/common/env-cleanup-rules.yml', '.github/workflows/build-deps-ci-action.yml') }}" | tee -a "$GITHUB_OUTPUT" - name: Write Changed Files To A Local File run: diff --git a/.github/workflows/staging.yml b/.github/workflows/staging.yml index e4280dea294..97673dfb1ec 100644 --- a/.github/workflows/staging.yml +++ b/.github/workflows/staging.yml @@ -201,7 +201,7 @@ jobs: - name: Get Hash For Nox Tarball Cache id: nox-archive-hash run: | - echo "nox-archive-hash=${{ hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py', 'pkg/common/env-cleanup-rules.yml') }}" | tee -a "$GITHUB_OUTPUT" + echo "nox-archive-hash=${{ hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py', 'pkg/common/env-cleanup-rules.yml', '.github/workflows/build-deps-ci-action.yml') }}" | tee -a "$GITHUB_OUTPUT" - name: Check Existing Releases env: diff --git a/.github/workflows/templates/layout.yml.jinja b/.github/workflows/templates/layout.yml.jinja index 1c4b54d671b..21edc433e49 100644 --- a/.github/workflows/templates/layout.yml.jinja +++ b/.github/workflows/templates/layout.yml.jinja @@ -9,7 +9,7 @@ <%- set gpg_key_id = "64CBBC8173D76B3F" %> <%- set prepare_actual_release = prepare_actual_release | default(False) %> <%- set gh_actions_workflows_python_version = "3.10" %> -<%- set nox_archive_hashfiles = "${{ hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py', 'pkg/common/env-cleanup-rules.yml') }}" %> +<%- set nox_archive_hashfiles = "${{ hashFiles('requirements/**/*.txt', 'cicd/golden-images.json', 'noxfile.py', 'pkg/common/env-cleanup-rules.yml', '.github/workflows/build-deps-ci-action.yml') }}" %> --- <%- block name %> name: <{ workflow_name }> From 243f9211471c214fa2d1c46ecadb262df87d755d Mon Sep 17 00:00:00 2001 From: Shane Lee Date: Fri, 26 Jan 2024 14:02:54 -0700 Subject: [PATCH 138/146] Remove line ending before comparison --- salt/channel/server.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/salt/channel/server.py b/salt/channel/server.py index b6d51fef085..b5823fd1b1c 100644 --- a/salt/channel/server.py +++ b/salt/channel/server.py @@ -272,6 +272,9 @@ class ReqServerChannel: payload["load"] = self.crypticle.loads(payload["load"]) return payload + def _clean_key(self, key): + return key.strip().replace("\r", "").replace("\n", "") + def _auth(self, load, sign_messages=False): """ Authenticate the client, use the sent public key to encrypt the AES key @@ -371,7 +374,7 @@ class ReqServerChannel: elif os.path.isfile(pubfn): # The key has been accepted, check it with salt.utils.files.fopen(pubfn, "r") as pubfn_handle: - if pubfn_handle.read().strip() != load["pub"].strip(): + if self._clean_key(pubfn_handle.read()) != self._clean_key(load["pub"]): log.error( "Authentication attempt from %s failed, the public " "keys did not match. This may be an attempt to compromise " @@ -480,7 +483,9 @@ class ReqServerChannel: # case. Otherwise log the fact that the minion is still # pending. with salt.utils.files.fopen(pubfn_pend, "r") as pubfn_handle: - if pubfn_handle.read() != load["pub"]: + if self._clean_key(pubfn_handle.read()) != self._clean_key( + load["pub"] + ): log.error( "Authentication attempt from %s failed, the public " "key in pending did not match. This may be an " @@ -536,7 +541,9 @@ class ReqServerChannel: # so, pass on doing anything here, and let it get automatically # accepted below. with salt.utils.files.fopen(pubfn_pend, "r") as pubfn_handle: - if pubfn_handle.read() != load["pub"]: + if self._clean_key(pubfn_handle.read()) != self._clean_key( + load["pub"] + ): log.error( "Authentication attempt from %s failed, the public " "keys in pending did not match. This may be an " From 278d2f1bac1e6b9f5d1ac4861e20e44126404785 Mon Sep 17 00:00:00 2001 From: Shane Lee Date: Fri, 26 Jan 2024 14:26:53 -0700 Subject: [PATCH 139/146] Make _clean_key a static method --- salt/channel/server.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/salt/channel/server.py b/salt/channel/server.py index b5823fd1b1c..3db243eca17 100644 --- a/salt/channel/server.py +++ b/salt/channel/server.py @@ -52,6 +52,10 @@ class ReqServerChannel: transport = salt.transport.request_server(opts, **kwargs) return cls(opts, transport) + @staticmethod + def _clean_key(key): + return key.strip().replace("\r", "").replace("\n", "") + def __init__(self, opts, transport): self.opts = opts self.transport = transport @@ -272,9 +276,6 @@ class ReqServerChannel: payload["load"] = self.crypticle.loads(payload["load"]) return payload - def _clean_key(self, key): - return key.strip().replace("\r", "").replace("\n", "") - def _auth(self, load, sign_messages=False): """ Authenticate the client, use the sent public key to encrypt the AES key From 2e8e32eebe792b11f07cded59705940d48d6b9a0 Mon Sep 17 00:00:00 2001 From: Shane Lee Date: Fri, 26 Jan 2024 14:57:16 -0700 Subject: [PATCH 140/146] Add simple test for _clean_key --- tests/pytests/unit/channel/test_server.py | 47 +++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 tests/pytests/unit/channel/test_server.py diff --git a/tests/pytests/unit/channel/test_server.py b/tests/pytests/unit/channel/test_server.py new file mode 100644 index 00000000000..ea1df69e0f1 --- /dev/null +++ b/tests/pytests/unit/channel/test_server.py @@ -0,0 +1,47 @@ +import pytest + +import salt.channel.server as server + + +@pytest.fixture +def key_data(): + return [ + "-----BEGIN PUBLIC KEY-----", + "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAoe5QSDYRWKyknbVyRrIj", + "rm1ht5HgKzAVUber0x54+b/UgxTd1cqI6I+eDlx53LqZSH3G8Rd5cUh8LHoGedSa", + "E62vEiLAjgXa+RdgcGiQpYS8+Z2RvQJ8oIcZgO+2AzgBRHboNWHTYRRmJXCd3dKs", + "9tcwK6wxChR06HzGqaOTixAuQlegWbOTU+X4dXIbW7AnuQBt9MCib7SxHlscrqcS", + "cBrRvq51YP6cxPm/rZJdBqZhVrlghBvIpa45NApP5PherGi4AbEGYte4l+gC+fOA", + "osEBis1V27djPpIyQS4qk3XAPQg6CYQMDltHqA4Fdo0Nt7SMScxJhfH0r6zmBFAe", + "BQIDAQAB", + "-----END PUBLIC KEY-----", + ] + + +def test__clean_key_crlf(key_data): + tst_key = "\r\n".join(key_data) + chk_key = "\n".join(key_data) + clean_func = server.ReqServerChannel._clean_key + assert clean_func(tst_key) == clean_func(chk_key) + + +def test__clean_key_cr(key_data): + tst_key = "\r".join(key_data) + chk_key = "\n".join(key_data) + clean_func = server.ReqServerChannel._clean_key + assert clean_func(tst_key) == clean_func(chk_key) + + +def test__clean_key_lf(key_data): + tst_key = "\n".join(key_data) + chk_key = "\n".join(key_data) + clean_func = server.ReqServerChannel._clean_key + assert clean_func(tst_key) == clean_func(chk_key) + + +def test__clean_key_crlf_mismatch(key_data): + tst_key = "\r\n".join(key_data) + tst_key = tst_key.replace("5", "4") + chk_key = "\n".join(key_data) + clean_func = server.ReqServerChannel._clean_key + assert clean_func(tst_key) != clean_func(chk_key) From c8749f32b7efcf67a882a7eb382e89cd0fa496b3 Mon Sep 17 00:00:00 2001 From: Shane Lee Date: Fri, 26 Jan 2024 15:00:40 -0700 Subject: [PATCH 141/146] Parametrize the test --- tests/pytests/unit/channel/test_server.py | 24 ++++++----------------- 1 file changed, 6 insertions(+), 18 deletions(-) diff --git a/tests/pytests/unit/channel/test_server.py b/tests/pytests/unit/channel/test_server.py index ea1df69e0f1..d50ae416026 100644 --- a/tests/pytests/unit/channel/test_server.py +++ b/tests/pytests/unit/channel/test_server.py @@ -18,29 +18,17 @@ def key_data(): ] -def test__clean_key_crlf(key_data): - tst_key = "\r\n".join(key_data) +@pytest.mark.parametrize("linesep", ["\r\n", "\r", "\n"]) +def test__clean_key(key_data, linesep): + tst_key = linesep.join(key_data) chk_key = "\n".join(key_data) clean_func = server.ReqServerChannel._clean_key assert clean_func(tst_key) == clean_func(chk_key) -def test__clean_key_cr(key_data): - tst_key = "\r".join(key_data) - chk_key = "\n".join(key_data) - clean_func = server.ReqServerChannel._clean_key - assert clean_func(tst_key) == clean_func(chk_key) - - -def test__clean_key_lf(key_data): - tst_key = "\n".join(key_data) - chk_key = "\n".join(key_data) - clean_func = server.ReqServerChannel._clean_key - assert clean_func(tst_key) == clean_func(chk_key) - - -def test__clean_key_crlf_mismatch(key_data): - tst_key = "\r\n".join(key_data) +@pytest.mark.parametrize("linesep", ["\r\n", "\r", "\n"]) +def test__clean_key_mismatch(key_data, linesep): + tst_key = linesep.join(key_data) tst_key = tst_key.replace("5", "4") chk_key = "\n".join(key_data) clean_func = server.ReqServerChannel._clean_key From bba2f6672b78a6baae3705fdc0f93051547cd7bd Mon Sep 17 00:00:00 2001 From: Shane Lee Date: Fri, 26 Jan 2024 15:01:52 -0700 Subject: [PATCH 142/146] Add changelog --- changelog/52289.fixed.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 changelog/52289.fixed.md diff --git a/changelog/52289.fixed.md b/changelog/52289.fixed.md new file mode 100644 index 00000000000..50d5aaf516a --- /dev/null +++ b/changelog/52289.fixed.md @@ -0,0 +1 @@ +Fixed an issue when keys didn't match because of line endings From 8c5b8518df5f21e16eda69e78e33d517df7cf48d Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Wed, 31 Jan 2024 12:15:58 -0700 Subject: [PATCH 143/146] Fix onedir download step --- tools/release.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/release.py b/tools/release.py index b338721f8bc..425fe45e73d 100644 --- a/tools/release.py +++ b/tools/release.py @@ -133,8 +133,8 @@ def download_onedir_artifact( s3 = boto3.client("s3") if platform == "darwin": platform = "macos" - if arch == "arm64": - arch = "aarch64" + if arch == "aarch64": + arch = "arm64" arch = arch.lower() platform = platform.lower() if platform in ("linux", "macos") and arch not in ("x86_64", "aarch64"): From 4b170454e92cf1f4df40897258271c87d1ef37bb Mon Sep 17 00:00:00 2001 From: "Daniel A. Wozniak" Date: Wed, 31 Jan 2024 12:35:50 -0700 Subject: [PATCH 144/146] Force arm64 not aarch64 --- tools/release.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/release.py b/tools/release.py index 425fe45e73d..c800de2ccf9 100644 --- a/tools/release.py +++ b/tools/release.py @@ -137,9 +137,9 @@ def download_onedir_artifact( arch = "arm64" arch = arch.lower() platform = platform.lower() - if platform in ("linux", "macos") and arch not in ("x86_64", "aarch64"): + if platform in ("linux", "macos") and arch not in ("x86_64", "arm64"): ctx.error( - f"The 'arch' value for {platform} must be one of: 'x86_64', 'aarch64', 'arm64'" + f"The 'arch' value for {platform} must be one of: 'x86_64', 'aarch64', 'aarch64'" ) ctx.exit(1) if platform == "windows" and arch not in ("x86", "amd64"): From ede09ef43ef65e0e5cb00aad3312f97d6dc034b9 Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Wed, 31 Jan 2024 21:12:34 +0000 Subject: [PATCH 145/146] Fix pre-commit --- doc/topics/releases/3005.5.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/topics/releases/3005.5.rst b/doc/topics/releases/3005.5.rst index 21fbcabd801..26bfbb81b31 100644 --- a/doc/topics/releases/3005.5.rst +++ b/doc/topics/releases/3005.5.rst @@ -13,4 +13,4 @@ Security - Fix CVE-2024-22232 Prevent directory traversal attacks in the master's serve_file method. These vulnerablities were discovered and reported by: -Yudi Zhao(Huawei Nebula Security Lab),Chenwei Jiang(Huawei Nebula Security Lab) (#565) \ No newline at end of file +Yudi Zhao(Huawei Nebula Security Lab),Chenwei Jiang(Huawei Nebula Security Lab) (#565) From 85ba203a8c586531b5eff5d2cc57808034a5c4cf Mon Sep 17 00:00:00 2001 From: Pedro Algarvio Date: Thu, 1 Feb 2024 10:25:53 +0000 Subject: [PATCH 146/146] Run `pyupgrade` against the files modified in the merge-forward --- salt/fileserver/__init__.py | 42 ++++++++++++++++++------------------- salt/fileserver/roots.py | 8 +++---- 2 files changed, 23 insertions(+), 27 deletions(-) diff --git a/salt/fileserver/__init__.py b/salt/fileserver/__init__.py index 4eca98d14a4..89f1fd70460 100644 --- a/salt/fileserver/__init__.py +++ b/salt/fileserver/__init__.py @@ -321,9 +321,9 @@ def clear_lock(clear_func, role, remote=None, lock_type="update"): Returns the return data from ``clear_func``. """ - msg = "Clearing {} lock for {} remotes".format(lock_type, role) + msg = f"Clearing {lock_type} lock for {role} remotes" if remote: - msg += " matching {}".format(remote) + msg += f" matching {remote}" log.debug(msg) return clear_func(remote=remote, lock_type=lock_type) @@ -376,12 +376,12 @@ class Fileserver: # Only subtracting backends from enabled ones ret = self.opts["fileserver_backend"] for sub in back: - if "{}.envs".format(sub[1:]) in server_funcs: + if f"{sub[1:]}.envs" in server_funcs: ret.remove(sub[1:]) return ret for sub in back: - if "{}.envs".format(sub) in server_funcs: + if f"{sub}.envs" in server_funcs: ret.append(sub) return ret @@ -409,7 +409,7 @@ class Fileserver: cleared = [] errors = [] for fsb in back: - fstr = "{}.clear_cache".format(fsb) + fstr = f"{fsb}.clear_cache" if fstr in self.servers: log.debug("Clearing %s fileserver cache", fsb) failed = self.servers[fstr]() @@ -417,7 +417,7 @@ class Fileserver: errors.extend(failed) else: cleared.append( - "The {} fileserver cache was successfully cleared".format(fsb) + f"The {fsb} fileserver cache was successfully cleared" ) return cleared, errors @@ -431,17 +431,15 @@ class Fileserver: locked = [] errors = [] for fsb in back: - fstr = "{}.lock".format(fsb) + fstr = f"{fsb}.lock" if fstr in self.servers: - msg = "Setting update lock for {} remotes".format(fsb) + msg = f"Setting update lock for {fsb} remotes" if remote: if not isinstance(remote, str): - errors.append( - "Badly formatted remote pattern '{}'".format(remote) - ) + errors.append(f"Badly formatted remote pattern '{remote}'") continue else: - msg += " matching {}".format(remote) + msg += f" matching {remote}" log.debug(msg) good, bad = self.servers[fstr](remote=remote) locked.extend(good) @@ -464,7 +462,7 @@ class Fileserver: cleared = [] errors = [] for fsb in back: - fstr = "{}.clear_lock".format(fsb) + fstr = f"{fsb}.clear_lock" if fstr in self.servers: good, bad = clear_lock(self.servers[fstr], fsb, remote=remote) cleared.extend(good) @@ -478,7 +476,7 @@ class Fileserver: """ back = self.backends(back) for fsb in back: - fstr = "{}.update".format(fsb) + fstr = f"{fsb}.update" if fstr in self.servers: log.debug("Updating %s fileserver cache", fsb) self.servers[fstr](**kwargs) @@ -491,7 +489,7 @@ class Fileserver: back = self.backends(back) ret = {} for fsb in back: - fstr = "{}.update_intervals".format(fsb) + fstr = f"{fsb}.update_intervals" if fstr in self.servers: ret[fsb] = self.servers[fstr]() return ret @@ -505,7 +503,7 @@ class Fileserver: if sources: ret = {} for fsb in back: - fstr = "{}.envs".format(fsb) + fstr = f"{fsb}.envs" kwargs = ( {"ignore_cache": True} if "ignore_cache" in _argspec(self.servers[fstr]).args @@ -535,7 +533,7 @@ class Fileserver: """ back = self.backends(back) for fsb in back: - fstr = "{}.init".format(fsb) + fstr = f"{fsb}.init" if fstr in self.servers: self.servers[fstr]() @@ -597,7 +595,7 @@ class Fileserver: saltenv = str(saltenv) for fsb in back: - fstr = "{}.find_file".format(fsb) + fstr = f"{fsb}.find_file" if fstr in self.servers: fnd = self.servers[fstr](path, saltenv, **kwargs) if fnd.get("path"): @@ -767,7 +765,7 @@ class Fileserver: load["saltenv"] = str(load["saltenv"]) for fsb in self.backends(load.pop("fsbackend", None)): - fstr = "{}.file_list".format(fsb) + fstr = f"{fsb}.file_list" if fstr in self.servers: ret.update(self.servers[fstr](load)) # some *fs do not handle prefix. Ensure it is filtered @@ -792,7 +790,7 @@ class Fileserver: load["saltenv"] = str(load["saltenv"]) for fsb in self.backends(None): - fstr = "{}.file_list_emptydirs".format(fsb) + fstr = f"{fsb}.file_list_emptydirs" if fstr in self.servers: ret.update(self.servers[fstr](load)) # some *fs do not handle prefix. Ensure it is filtered @@ -817,7 +815,7 @@ class Fileserver: load["saltenv"] = str(load["saltenv"]) for fsb in self.backends(load.pop("fsbackend", None)): - fstr = "{}.dir_list".format(fsb) + fstr = f"{fsb}.dir_list" if fstr in self.servers: ret.update(self.servers[fstr](load)) # some *fs do not handle prefix. Ensure it is filtered @@ -842,7 +840,7 @@ class Fileserver: load["saltenv"] = str(load["saltenv"]) for fsb in self.backends(load.pop("fsbackend", None)): - symlstr = "{}.symlink_list".format(fsb) + symlstr = f"{fsb}.symlink_list" if symlstr in self.servers: ret = self.servers[symlstr](load) # some *fs do not handle prefix. Ensure it is filtered diff --git a/salt/fileserver/roots.py b/salt/fileserver/roots.py index 4ffdb6df6ff..e2ea92029c3 100644 --- a/salt/fileserver/roots.py +++ b/salt/fileserver/roots.py @@ -219,9 +219,7 @@ def update(): os.makedirs(mtime_map_path_dir) with salt.utils.files.fopen(mtime_map_path, "wb") as fp_: for file_path, mtime in new_mtime_map.items(): - fp_.write( - salt.utils.stringutils.to_bytes("{}:{}\n".format(file_path, mtime)) - ) + fp_.write(salt.utils.stringutils.to_bytes(f"{file_path}:{mtime}\n")) if __opts__.get("fileserver_events", False): # if there is a change, fire an event @@ -352,11 +350,11 @@ def _file_lists(load, form): return [] list_cache = os.path.join( list_cachedir, - "{}.p".format(salt.utils.files.safe_filename_leaf(actual_saltenv)), + f"{salt.utils.files.safe_filename_leaf(actual_saltenv)}.p", ) w_lock = os.path.join( list_cachedir, - ".{}.w".format(salt.utils.files.safe_filename_leaf(actual_saltenv)), + f".{salt.utils.files.safe_filename_leaf(actual_saltenv)}.w", ) cache_match, refresh_cache, save_cache = salt.fileserver.check_file_list_cache( __opts__, form, list_cache, w_lock