From 5289a2d50a85591fb8b4f8f86e723317a9cd960f Mon Sep 17 00:00:00 2001 From: MKLeb Date: Thu, 15 Jun 2023 17:43:16 -0400 Subject: [PATCH 01/16] Add `get-latest-release` command so we can dynamically get the previous versions to test upgrades and downgrades for --- tools/ci.py | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 66 insertions(+), 1 deletion(-) diff --git a/tools/ci.py b/tools/ci.py index 60df792d25fb..599108c795a 100644 --- a/tools/ci.py +++ b/tools/ci.py @@ -12,6 +12,7 @@ import sys import time from typing import TYPE_CHECKING, Any +import requests from ptscripts import Context, command_group import tools.utils @@ -674,7 +675,7 @@ def pkg_matrix(ctx: Context, distro_slug: str, pkg_type: str): and pkg_type != "MSI" ): # These OS's never had arm64 packages built for them - # with the tiamate onedir packages. + # with the tiamat onedir packages. # we will need to ensure when we release 3006.0 # we allow for 3006.0 jobs to run, because then # we will have arm64 onedir packages to upgrade from @@ -840,3 +841,67 @@ def _filter_test_labels(labels: list[dict[str, Any]]) -> list[tuple[str, str]]: for label in labels if label["name"].startswith("test:") ] + + +@ci.command( + name="get-latest-releases", + arguments={ + "salt_version": { + "help": "The version of salt being tested against", + }, + "repository": { + "help": "The repository to query for releases, e.g. saltstack/salt", + }, + }, +) +def get_latest_releases( + ctx: Context, salt_version: str, repository: str = "saltstack/salt" +): + """ + Get a list of releases to use for the upgrade and downgrade tests. + """ + 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 = 3006 + parsed_salt_version = tools.utils.Version(salt_version) + releases = tools.utils.get_salt_releases(ctx, repository) + # 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:] + latest_releases = [] + # Append the latest minor for each major + for major in majors: + minors_of_major = [ + version for version in releases if version.major == major + ] + latest_releases.append(minors_of_major[-1]) + + # TODO: Remove this block when we reach version 3009.0 + # Append the latest minor version of 3005 if we don't have enough major versions to test against + if len(latest_releases) != num_major_versions: + url = "https://repo.saltproject.io/salt/onedir/repo.json" + ret = requests.get(url) + repo_data = ret.json() + latest = list(repo_data["latest"].keys())[0] + version = repo_data["latest"][latest]["version"] + latest_releases = [version] + latest_releases + + str_releases = [str(version) for version in latest_releases] + + with open(github_output, "a", encoding="utf-8") as wfh: + wfh.write(f"latest-releases={json.dumps(str_releases)}\n") + + ctx.exit(0) From 350c9982ff744d8824c83fd3832683bca59fbff6 Mon Sep 17 00:00:00 2001 From: MKLeb Date: Fri, 16 Jun 2023 09:50:44 -0400 Subject: [PATCH 02/16] Use `ctx.web` for requests and require the `--salt-version` kwarg --- tools/ci.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/ci.py b/tools/ci.py index 599108c795a..b31876123f4 100644 --- a/tools/ci.py +++ b/tools/ci.py @@ -12,7 +12,6 @@ import sys import time from typing import TYPE_CHECKING, Any -import requests from ptscripts import Context, command_group import tools.utils @@ -848,6 +847,7 @@ def _filter_test_labels(labels: list[dict[str, Any]]) -> list[tuple[str, str]]: arguments={ "salt_version": { "help": "The version of salt being tested against", + "required": True, }, "repository": { "help": "The repository to query for releases, e.g. saltstack/salt", @@ -855,7 +855,7 @@ def _filter_test_labels(labels: list[dict[str, Any]]) -> list[tuple[str, str]]: }, ) def get_latest_releases( - ctx: Context, salt_version: str, repository: str = "saltstack/salt" + ctx: Context, salt_version: str = None, repository: str = "saltstack/salt" ): """ Get a list of releases to use for the upgrade and downgrade tests. @@ -893,7 +893,7 @@ def get_latest_releases( # Append the latest minor version of 3005 if we don't have enough major versions to test against if len(latest_releases) != num_major_versions: url = "https://repo.saltproject.io/salt/onedir/repo.json" - ret = requests.get(url) + ret = ctx.web.get(url) repo_data = ret.json() latest = list(repo_data["latest"].keys())[0] version = repo_data["latest"][latest]["version"] From 6b55d991544664a53cae9e7f59ab86dbabf324e2 Mon Sep 17 00:00:00 2001 From: MKLeb Date: Tue, 20 Jun 2023 14:31:10 -0400 Subject: [PATCH 03/16] Pass the list of Salt releases from the prior step that queried the GH API --- .github/workflows/ci.yml | 9 +++++++++ .github/workflows/nightly.yml | 9 +++++++++ .github/workflows/scheduled.yml | 9 +++++++++ .github/workflows/staging.yml | 9 +++++++++ .github/workflows/templates/layout.yml.jinja | 9 +++++++++ tools/ci.py | 12 +++++++----- 6 files changed, 52 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 62169d623d6..b0213ff9b74 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -46,6 +46,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 }} + test-releases: ${{ steps.get-latest-releases.outputs.latest-releases }} steps: - uses: actions/checkout@v3 with: @@ -198,10 +199,18 @@ jobs: run: | tools ci get-releases + - name: Get Latest Salt Releases for Testing + id: get-latest-releases + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + tools ci get-latest-releases ${{ 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-latest-releases.outputs.latest-releases }}' | jq -C '.' - name: Define Testrun id: define-testrun diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 21698717927..80225eedafe 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -92,6 +92,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 }} + test-releases: ${{ steps.get-latest-releases.outputs.latest-releases }} steps: - uses: actions/checkout@v3 with: @@ -244,10 +245,18 @@ jobs: run: | tools ci get-releases + - name: Get Latest Salt Releases for Testing + id: get-latest-releases + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + tools ci get-latest-releases ${{ 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-latest-releases.outputs.latest-releases }}' | jq -C '.' - name: Define Testrun id: define-testrun diff --git a/.github/workflows/scheduled.yml b/.github/workflows/scheduled.yml index 2dd28b76e10..4e88c0bd5c9 100644 --- a/.github/workflows/scheduled.yml +++ b/.github/workflows/scheduled.yml @@ -82,6 +82,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 }} + test-releases: ${{ steps.get-latest-releases.outputs.latest-releases }} steps: - uses: actions/checkout@v3 with: @@ -234,10 +235,18 @@ jobs: run: | tools ci get-releases + - name: Get Latest Salt Releases for Testing + id: get-latest-releases + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + tools ci get-latest-releases ${{ 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-latest-releases.outputs.latest-releases }}' | jq -C '.' - name: Define Testrun id: define-testrun diff --git a/.github/workflows/staging.yml b/.github/workflows/staging.yml index 318f801d9c0..54a65321bb0 100644 --- a/.github/workflows/staging.yml +++ b/.github/workflows/staging.yml @@ -72,6 +72,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 }} + test-releases: ${{ steps.get-latest-releases.outputs.latest-releases }} steps: - uses: actions/checkout@v3 with: @@ -230,10 +231,18 @@ jobs: run: | tools ci get-releases + - name: Get Latest Salt Releases for Testing + id: get-latest-releases + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + tools ci get-latest-releases ${{ 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-latest-releases.outputs.latest-releases }}' | jq -C '.' - name: Define Testrun id: define-testrun diff --git a/.github/workflows/templates/layout.yml.jinja b/.github/workflows/templates/layout.yml.jinja index 426fae6a3d9..a01b1528719 100644 --- a/.github/workflows/templates/layout.yml.jinja +++ b/.github/workflows/templates/layout.yml.jinja @@ -91,6 +91,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 }} + test-releases: ${{ steps.get-latest-releases.outputs.latest-releases }} steps: - uses: actions/checkout@v3 with: @@ -255,10 +256,18 @@ jobs: run: | tools ci get-releases + - name: Get Latest Salt Releases for Testing + id: get-latest-releases + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + tools ci get-latest-releases ${{ 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-latest-releases.outputs.latest-releases }}' | jq -C '.' - name: Define Testrun id: define-testrun diff --git a/tools/ci.py b/tools/ci.py index b31876123f4..c0d2faa90ce 100644 --- a/tools/ci.py +++ b/tools/ci.py @@ -845,17 +845,20 @@ def _filter_test_labels(labels: list[dict[str, Any]]) -> list[tuple[str, str]]: @ci.command( name="get-latest-releases", arguments={ + "releases": { + "help": "The list of releases of salt", + "nargs": "*", + }, "salt_version": { "help": "The version of salt being tested against", "required": True, }, - "repository": { - "help": "The repository to query for releases, e.g. saltstack/salt", - }, }, ) def get_latest_releases( - ctx: Context, salt_version: str = None, repository: str = "saltstack/salt" + ctx: Context, + releases: list[tools.utils.Version], + salt_version: str = None, ): """ Get a list of releases to use for the upgrade and downgrade tests. @@ -867,7 +870,6 @@ def get_latest_releases( # We aren't testing upgrades from anything before 3006.0 except the latest 3005.x threshold_major = 3006 parsed_salt_version = tools.utils.Version(salt_version) - releases = tools.utils.get_salt_releases(ctx, repository) # 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: From d4312c6acf69c913994c457eb90b0d566d6c4a4a Mon Sep 17 00:00:00 2001 From: MKLeb Date: Tue, 20 Jun 2023 14:37:29 -0400 Subject: [PATCH 04/16] Join the Array with spaces for use in the tools command --- .github/workflows/ci.yml | 2 +- .github/workflows/nightly.yml | 2 +- .github/workflows/scheduled.yml | 2 +- .github/workflows/staging.yml | 2 +- .github/workflows/templates/layout.yml.jinja | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b0213ff9b74..d182435b579 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -204,7 +204,7 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | - tools ci get-latest-releases ${{ fromJSON(steps.get-salt-releases.outputs.releases) }} --salt-version ${{ steps.setup-salt-version.outputs.salt-version }} + tools ci get-latest-releases ${{ join(fromJSON(steps.get-salt-releases.outputs.releases), ' ') }} --salt-version ${{ steps.setup-salt-version.outputs.salt-version }} - name: Check Salt Releases run: | diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 80225eedafe..c52f83fb328 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -250,7 +250,7 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | - tools ci get-latest-releases ${{ fromJSON(steps.get-salt-releases.outputs.releases) }} --salt-version ${{ steps.setup-salt-version.outputs.salt-version }} + tools ci get-latest-releases ${{ join(fromJSON(steps.get-salt-releases.outputs.releases), ' ') }} --salt-version ${{ steps.setup-salt-version.outputs.salt-version }} - name: Check Salt Releases run: | diff --git a/.github/workflows/scheduled.yml b/.github/workflows/scheduled.yml index 4e88c0bd5c9..d207791ec7b 100644 --- a/.github/workflows/scheduled.yml +++ b/.github/workflows/scheduled.yml @@ -240,7 +240,7 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | - tools ci get-latest-releases ${{ fromJSON(steps.get-salt-releases.outputs.releases) }} --salt-version ${{ steps.setup-salt-version.outputs.salt-version }} + tools ci get-latest-releases ${{ join(fromJSON(steps.get-salt-releases.outputs.releases), ' ') }} --salt-version ${{ steps.setup-salt-version.outputs.salt-version }} - name: Check Salt Releases run: | diff --git a/.github/workflows/staging.yml b/.github/workflows/staging.yml index 54a65321bb0..611e96a3738 100644 --- a/.github/workflows/staging.yml +++ b/.github/workflows/staging.yml @@ -236,7 +236,7 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | - tools ci get-latest-releases ${{ fromJSON(steps.get-salt-releases.outputs.releases) }} --salt-version ${{ steps.setup-salt-version.outputs.salt-version }} + tools ci get-latest-releases ${{ join(fromJSON(steps.get-salt-releases.outputs.releases), ' ') }} --salt-version ${{ steps.setup-salt-version.outputs.salt-version }} - name: Check Salt Releases run: | diff --git a/.github/workflows/templates/layout.yml.jinja b/.github/workflows/templates/layout.yml.jinja index a01b1528719..1ecde1dd4e8 100644 --- a/.github/workflows/templates/layout.yml.jinja +++ b/.github/workflows/templates/layout.yml.jinja @@ -261,7 +261,7 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | - tools ci get-latest-releases ${{ fromJSON(steps.get-salt-releases.outputs.releases) }} --salt-version ${{ steps.setup-salt-version.outputs.salt-version }} + tools ci get-latest-releases ${{ join(fromJSON(steps.get-salt-releases.outputs.releases), ' ') }} --salt-version ${{ steps.setup-salt-version.outputs.salt-version }} - name: Check Salt Releases run: | From f670b637e4b0b637c4f799f8e8966515d4c4d285 Mon Sep 17 00:00:00 2001 From: MKLeb Date: Tue, 20 Jun 2023 15:43:57 -0400 Subject: [PATCH 05/16] Propogate the now `testing-releases` through to the package tests --- .github/workflows/ci.yml | 28 ++++++++++++++++--- .github/workflows/nightly.yml | 28 ++++++++++++++++--- .github/workflows/scheduled.yml | 28 ++++++++++++++++--- .github/workflows/staging.yml | 28 ++++++++++++++++--- .github/workflows/templates/layout.yml.jinja | 8 +++--- .../templates/test-salt-pkg.yml.jinja | 3 ++ .../workflows/test-packages-action-macos.yml | 4 +++ .github/workflows/test-packages-action.yml | 4 +++ tools/ci.py | 16 +++++------ 9 files changed, 119 insertions(+), 28 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d182435b579..7fcf1a49409 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -46,7 +46,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 }} - test-releases: ${{ steps.get-latest-releases.outputs.latest-releases }} + testing-releases: ${{ steps.get-testing-releases.outputs.testing-releases }} steps: - uses: actions/checkout@v3 with: @@ -200,17 +200,17 @@ jobs: tools ci get-releases - name: Get Latest Salt Releases for Testing - id: get-latest-releases + id: get-testing-releases env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | - tools ci get-latest-releases ${{ join(fromJSON(steps.get-salt-releases.outputs.releases), ' ') }} --salt-version ${{ steps.setup-salt-version.outputs.salt-version }} + 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-latest-releases.outputs.latest-releases }}' | jq -C '.' + echo '${{ steps.get-testing-releases.outputs.testing-releases }}' | jq -C '.' - name: Define Testrun id: define-testrun @@ -525,6 +525,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 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 }} centos-7-pkg-tests: name: CentOS 7 Package Tests @@ -542,6 +543,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 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 }} centosstream-8-pkg-tests: name: CentOS Stream 8 Package Tests @@ -559,6 +561,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 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 }} centosstream-9-pkg-tests: name: CentOS Stream 9 Package Tests @@ -576,6 +579,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 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 }} debian-10-pkg-tests: name: Debian 10 Package Tests @@ -593,6 +597,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 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 }} debian-11-pkg-tests: name: Debian 11 Package Tests @@ -610,6 +615,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 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 }} debian-11-arm64-pkg-tests: name: Debian 11 Arm64 Package Tests @@ -627,6 +633,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 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 }} photonos-3-pkg-tests: name: Photon OS 3 Package Tests @@ -644,6 +651,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 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 }} photonos-4-pkg-tests: name: Photon OS 4 Package Tests @@ -661,6 +669,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 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 }} ubuntu-2004-pkg-tests: name: Ubuntu 20.04 Package Tests @@ -678,6 +687,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 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 }} ubuntu-2004-arm64-pkg-tests: name: Ubuntu 20.04 Arm64 Package Tests @@ -695,6 +705,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 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 }} ubuntu-2204-pkg-tests: name: Ubuntu 22.04 Package Tests @@ -712,6 +723,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 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 }} ubuntu-2204-arm64-pkg-tests: name: Ubuntu 22.04 Arm64 Package Tests @@ -729,6 +741,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 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 }} macos-12-pkg-tests: name: macOS 12 Package Tests @@ -746,6 +759,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 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 }} windows-2016-nsis-pkg-tests: name: Windows 2016 NSIS Package Tests @@ -763,6 +777,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 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 }} windows-2016-msi-pkg-tests: name: Windows 2016 MSI Package Tests @@ -780,6 +795,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 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 }} windows-2019-nsis-pkg-tests: name: Windows 2019 NSIS Package Tests @@ -797,6 +813,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 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 }} windows-2019-msi-pkg-tests: name: Windows 2019 MSI Package Tests @@ -814,6 +831,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 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 }} windows-2022-nsis-pkg-tests: name: Windows 2022 NSIS Package Tests @@ -831,6 +849,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 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 }} windows-2022-msi-pkg-tests: name: Windows 2022 MSI Package Tests @@ -848,6 +867,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 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 }} windows-2016: name: Windows 2016 diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index c52f83fb328..0760d097246 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -92,7 +92,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 }} - test-releases: ${{ steps.get-latest-releases.outputs.latest-releases }} + testing-releases: ${{ steps.get-testing-releases.outputs.testing-releases }} steps: - uses: actions/checkout@v3 with: @@ -246,17 +246,17 @@ jobs: tools ci get-releases - name: Get Latest Salt Releases for Testing - id: get-latest-releases + id: get-testing-releases env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | - tools ci get-latest-releases ${{ join(fromJSON(steps.get-salt-releases.outputs.releases), ' ') }} --salt-version ${{ steps.setup-salt-version.outputs.salt-version }} + 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-latest-releases.outputs.latest-releases }}' | jq -C '.' + echo '${{ steps.get-testing-releases.outputs.testing-releases }}' | jq -C '.' - name: Define Testrun id: define-testrun @@ -582,6 +582,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 skip-code-coverage: false skip-junit-reports: false + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} centos-7-pkg-tests: name: CentOS 7 Package Tests @@ -599,6 +600,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 skip-code-coverage: false skip-junit-reports: false + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} centosstream-8-pkg-tests: name: CentOS Stream 8 Package Tests @@ -616,6 +618,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 skip-code-coverage: false skip-junit-reports: false + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} centosstream-9-pkg-tests: name: CentOS Stream 9 Package Tests @@ -633,6 +636,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 skip-code-coverage: false skip-junit-reports: false + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} debian-10-pkg-tests: name: Debian 10 Package Tests @@ -650,6 +654,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 skip-code-coverage: false skip-junit-reports: false + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} debian-11-pkg-tests: name: Debian 11 Package Tests @@ -667,6 +672,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 skip-code-coverage: false skip-junit-reports: false + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} debian-11-arm64-pkg-tests: name: Debian 11 Arm64 Package Tests @@ -684,6 +690,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 skip-code-coverage: false skip-junit-reports: false + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} photonos-3-pkg-tests: name: Photon OS 3 Package Tests @@ -701,6 +708,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 skip-code-coverage: false skip-junit-reports: false + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} photonos-4-pkg-tests: name: Photon OS 4 Package Tests @@ -718,6 +726,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 skip-code-coverage: false skip-junit-reports: false + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} ubuntu-2004-pkg-tests: name: Ubuntu 20.04 Package Tests @@ -735,6 +744,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 skip-code-coverage: false skip-junit-reports: false + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} ubuntu-2004-arm64-pkg-tests: name: Ubuntu 20.04 Arm64 Package Tests @@ -752,6 +762,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 skip-code-coverage: false skip-junit-reports: false + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} ubuntu-2204-pkg-tests: name: Ubuntu 22.04 Package Tests @@ -769,6 +780,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 skip-code-coverage: false skip-junit-reports: false + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} ubuntu-2204-arm64-pkg-tests: name: Ubuntu 22.04 Arm64 Package Tests @@ -786,6 +798,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 skip-code-coverage: false skip-junit-reports: false + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} macos-12-pkg-tests: name: macOS 12 Package Tests @@ -803,6 +816,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 skip-code-coverage: false skip-junit-reports: false + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} windows-2016-nsis-pkg-tests: name: Windows 2016 NSIS Package Tests @@ -820,6 +834,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 skip-code-coverage: false skip-junit-reports: false + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} windows-2016-msi-pkg-tests: name: Windows 2016 MSI Package Tests @@ -837,6 +852,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 skip-code-coverage: false skip-junit-reports: false + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} windows-2019-nsis-pkg-tests: name: Windows 2019 NSIS Package Tests @@ -854,6 +870,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 skip-code-coverage: false skip-junit-reports: false + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} windows-2019-msi-pkg-tests: name: Windows 2019 MSI Package Tests @@ -871,6 +888,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 skip-code-coverage: false skip-junit-reports: false + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} windows-2022-nsis-pkg-tests: name: Windows 2022 NSIS Package Tests @@ -888,6 +906,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 skip-code-coverage: false skip-junit-reports: false + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} windows-2022-msi-pkg-tests: name: Windows 2022 MSI Package Tests @@ -905,6 +924,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 skip-code-coverage: false skip-junit-reports: false + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} windows-2016: name: Windows 2016 diff --git a/.github/workflows/scheduled.yml b/.github/workflows/scheduled.yml index d207791ec7b..2703a6421ad 100644 --- a/.github/workflows/scheduled.yml +++ b/.github/workflows/scheduled.yml @@ -82,7 +82,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 }} - test-releases: ${{ steps.get-latest-releases.outputs.latest-releases }} + testing-releases: ${{ steps.get-testing-releases.outputs.testing-releases }} steps: - uses: actions/checkout@v3 with: @@ -236,17 +236,17 @@ jobs: tools ci get-releases - name: Get Latest Salt Releases for Testing - id: get-latest-releases + id: get-testing-releases env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | - tools ci get-latest-releases ${{ join(fromJSON(steps.get-salt-releases.outputs.releases), ' ') }} --salt-version ${{ steps.setup-salt-version.outputs.salt-version }} + 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-latest-releases.outputs.latest-releases }}' | jq -C '.' + echo '${{ steps.get-testing-releases.outputs.testing-releases }}' | jq -C '.' - name: Define Testrun id: define-testrun @@ -561,6 +561,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 skip-code-coverage: false skip-junit-reports: false + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} centos-7-pkg-tests: name: CentOS 7 Package Tests @@ -578,6 +579,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 skip-code-coverage: false skip-junit-reports: false + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} centosstream-8-pkg-tests: name: CentOS Stream 8 Package Tests @@ -595,6 +597,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 skip-code-coverage: false skip-junit-reports: false + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} centosstream-9-pkg-tests: name: CentOS Stream 9 Package Tests @@ -612,6 +615,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 skip-code-coverage: false skip-junit-reports: false + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} debian-10-pkg-tests: name: Debian 10 Package Tests @@ -629,6 +633,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 skip-code-coverage: false skip-junit-reports: false + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} debian-11-pkg-tests: name: Debian 11 Package Tests @@ -646,6 +651,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 skip-code-coverage: false skip-junit-reports: false + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} debian-11-arm64-pkg-tests: name: Debian 11 Arm64 Package Tests @@ -663,6 +669,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 skip-code-coverage: false skip-junit-reports: false + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} photonos-3-pkg-tests: name: Photon OS 3 Package Tests @@ -680,6 +687,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 skip-code-coverage: false skip-junit-reports: false + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} photonos-4-pkg-tests: name: Photon OS 4 Package Tests @@ -697,6 +705,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 skip-code-coverage: false skip-junit-reports: false + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} ubuntu-2004-pkg-tests: name: Ubuntu 20.04 Package Tests @@ -714,6 +723,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 skip-code-coverage: false skip-junit-reports: false + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} ubuntu-2004-arm64-pkg-tests: name: Ubuntu 20.04 Arm64 Package Tests @@ -731,6 +741,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 skip-code-coverage: false skip-junit-reports: false + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} ubuntu-2204-pkg-tests: name: Ubuntu 22.04 Package Tests @@ -748,6 +759,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 skip-code-coverage: false skip-junit-reports: false + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} ubuntu-2204-arm64-pkg-tests: name: Ubuntu 22.04 Arm64 Package Tests @@ -765,6 +777,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 skip-code-coverage: false skip-junit-reports: false + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} macos-12-pkg-tests: name: macOS 12 Package Tests @@ -782,6 +795,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 skip-code-coverage: false skip-junit-reports: false + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} windows-2016-nsis-pkg-tests: name: Windows 2016 NSIS Package Tests @@ -799,6 +813,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 skip-code-coverage: false skip-junit-reports: false + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} windows-2016-msi-pkg-tests: name: Windows 2016 MSI Package Tests @@ -816,6 +831,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 skip-code-coverage: false skip-junit-reports: false + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} windows-2019-nsis-pkg-tests: name: Windows 2019 NSIS Package Tests @@ -833,6 +849,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 skip-code-coverage: false skip-junit-reports: false + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} windows-2019-msi-pkg-tests: name: Windows 2019 MSI Package Tests @@ -850,6 +867,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 skip-code-coverage: false skip-junit-reports: false + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} windows-2022-nsis-pkg-tests: name: Windows 2022 NSIS Package Tests @@ -867,6 +885,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 skip-code-coverage: false skip-junit-reports: false + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} windows-2022-msi-pkg-tests: name: Windows 2022 MSI Package Tests @@ -884,6 +903,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 skip-code-coverage: false skip-junit-reports: false + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} windows-2016: name: Windows 2016 diff --git a/.github/workflows/staging.yml b/.github/workflows/staging.yml index 611e96a3738..e0dd006dd17 100644 --- a/.github/workflows/staging.yml +++ b/.github/workflows/staging.yml @@ -72,7 +72,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 }} - test-releases: ${{ steps.get-latest-releases.outputs.latest-releases }} + testing-releases: ${{ steps.get-testing-releases.outputs.testing-releases }} steps: - uses: actions/checkout@v3 with: @@ -232,17 +232,17 @@ jobs: tools ci get-releases - name: Get Latest Salt Releases for Testing - id: get-latest-releases + id: get-testing-releases env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | - tools ci get-latest-releases ${{ join(fromJSON(steps.get-salt-releases.outputs.releases), ' ') }} --salt-version ${{ steps.setup-salt-version.outputs.salt-version }} + 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-latest-releases.outputs.latest-releases }}' | jq -C '.' + echo '${{ steps.get-testing-releases.outputs.testing-releases }}' | jq -C '.' - name: Define Testrun id: define-testrun @@ -567,6 +567,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 skip-code-coverage: true skip-junit-reports: true + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} centos-7-pkg-tests: name: CentOS 7 Package Tests @@ -584,6 +585,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 skip-code-coverage: true skip-junit-reports: true + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} centosstream-8-pkg-tests: name: CentOS Stream 8 Package Tests @@ -601,6 +603,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 skip-code-coverage: true skip-junit-reports: true + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} centosstream-9-pkg-tests: name: CentOS Stream 9 Package Tests @@ -618,6 +621,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 skip-code-coverage: true skip-junit-reports: true + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} debian-10-pkg-tests: name: Debian 10 Package Tests @@ -635,6 +639,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 skip-code-coverage: true skip-junit-reports: true + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} debian-11-pkg-tests: name: Debian 11 Package Tests @@ -652,6 +657,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 skip-code-coverage: true skip-junit-reports: true + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} debian-11-arm64-pkg-tests: name: Debian 11 Arm64 Package Tests @@ -669,6 +675,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 skip-code-coverage: true skip-junit-reports: true + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} photonos-3-pkg-tests: name: Photon OS 3 Package Tests @@ -686,6 +693,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 skip-code-coverage: true skip-junit-reports: true + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} photonos-4-pkg-tests: name: Photon OS 4 Package Tests @@ -703,6 +711,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 skip-code-coverage: true skip-junit-reports: true + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} ubuntu-2004-pkg-tests: name: Ubuntu 20.04 Package Tests @@ -720,6 +729,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 skip-code-coverage: true skip-junit-reports: true + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} ubuntu-2004-arm64-pkg-tests: name: Ubuntu 20.04 Arm64 Package Tests @@ -737,6 +747,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 skip-code-coverage: true skip-junit-reports: true + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} ubuntu-2204-pkg-tests: name: Ubuntu 22.04 Package Tests @@ -754,6 +765,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 skip-code-coverage: true skip-junit-reports: true + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} ubuntu-2204-arm64-pkg-tests: name: Ubuntu 22.04 Arm64 Package Tests @@ -771,6 +783,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 skip-code-coverage: true skip-junit-reports: true + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} macos-12-pkg-tests: name: macOS 12 Package Tests @@ -788,6 +801,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 skip-code-coverage: true skip-junit-reports: true + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} windows-2016-nsis-pkg-tests: name: Windows 2016 NSIS Package Tests @@ -805,6 +819,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 skip-code-coverage: true skip-junit-reports: true + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} windows-2016-msi-pkg-tests: name: Windows 2016 MSI Package Tests @@ -822,6 +837,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 skip-code-coverage: true skip-junit-reports: true + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} windows-2019-nsis-pkg-tests: name: Windows 2019 NSIS Package Tests @@ -839,6 +855,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 skip-code-coverage: true skip-junit-reports: true + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} windows-2019-msi-pkg-tests: name: Windows 2019 MSI Package Tests @@ -856,6 +873,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 skip-code-coverage: true skip-junit-reports: true + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} windows-2022-nsis-pkg-tests: name: Windows 2022 NSIS Package Tests @@ -873,6 +891,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 skip-code-coverage: true skip-junit-reports: true + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} windows-2022-msi-pkg-tests: name: Windows 2022 MSI Package Tests @@ -890,6 +909,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 skip-code-coverage: true skip-junit-reports: true + testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} windows-2016: name: Windows 2016 diff --git a/.github/workflows/templates/layout.yml.jinja b/.github/workflows/templates/layout.yml.jinja index 1ecde1dd4e8..f33531c32d4 100644 --- a/.github/workflows/templates/layout.yml.jinja +++ b/.github/workflows/templates/layout.yml.jinja @@ -91,7 +91,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 }} - test-releases: ${{ steps.get-latest-releases.outputs.latest-releases }} + testing-releases: ${{ steps.get-testing-releases.outputs.testing-releases }} steps: - uses: actions/checkout@v3 with: @@ -257,17 +257,17 @@ jobs: tools ci get-releases - name: Get Latest Salt Releases for Testing - id: get-latest-releases + id: get-testing-releases env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | - tools ci get-latest-releases ${{ join(fromJSON(steps.get-salt-releases.outputs.releases), ' ') }} --salt-version ${{ steps.setup-salt-version.outputs.salt-version }} + 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-latest-releases.outputs.latest-releases }}' | jq -C '.' + echo '${{ steps.get-testing-releases.outputs.testing-releases }}' | jq -C '.' - name: Define Testrun id: define-testrun diff --git a/.github/workflows/templates/test-salt-pkg.yml.jinja b/.github/workflows/templates/test-salt-pkg.yml.jinja index 0d1d97b5457..bc0cd8afaf7 100644 --- a/.github/workflows/templates/test-salt-pkg.yml.jinja +++ b/.github/workflows/templates/test-salt-pkg.yml.jinja @@ -53,6 +53,7 @@ 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 }} <%- endfor %> @@ -78,6 +79,7 @@ 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 }} <%- endfor %> @@ -105,6 +107,7 @@ 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 }} <%- endfor %> <%- endfor %> diff --git a/.github/workflows/test-packages-action-macos.yml b/.github/workflows/test-packages-action-macos.yml index 2ef20904a26..178fb4c1a15 100644 --- a/.github/workflows/test-packages-action-macos.yml +++ b/.github/workflows/test-packages-action-macos.yml @@ -27,6 +27,10 @@ on: 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 python-version: required: false type: string diff --git a/.github/workflows/test-packages-action.yml b/.github/workflows/test-packages-action.yml index cadaa2e834a..39fd1bf3aa1 100644 --- a/.github/workflows/test-packages-action.yml +++ b/.github/workflows/test-packages-action.yml @@ -27,6 +27,10 @@ on: 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 package-name: required: false type: string diff --git a/tools/ci.py b/tools/ci.py index c0d2faa90ce..3a479035b5e 100644 --- a/tools/ci.py +++ b/tools/ci.py @@ -843,7 +843,7 @@ def _filter_test_labels(labels: list[dict[str, Any]]) -> list[tuple[str, str]]: @ci.command( - name="get-latest-releases", + name="get-testing-releases", arguments={ "releases": { "help": "The list of releases of salt", @@ -855,7 +855,7 @@ def _filter_test_labels(labels: list[dict[str, Any]]) -> list[tuple[str, str]]: }, }, ) -def get_latest_releases( +def get_testing_releases( ctx: Context, releases: list[tools.utils.Version], salt_version: str = None, @@ -883,27 +883,27 @@ def get_latest_releases( } ) )[-num_major_versions:] - latest_releases = [] + 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 ] - latest_releases.append(minors_of_major[-1]) + testing_releases.append(minors_of_major[-1]) # TODO: Remove this block when we reach version 3009.0 # Append the latest minor version of 3005 if we don't have enough major versions to test against - if len(latest_releases) != num_major_versions: + if len(testing_releases) != num_major_versions: url = "https://repo.saltproject.io/salt/onedir/repo.json" ret = ctx.web.get(url) repo_data = ret.json() latest = list(repo_data["latest"].keys())[0] version = repo_data["latest"][latest]["version"] - latest_releases = [version] + latest_releases + testing_releases = [version] + testing_releases - str_releases = [str(version) for version in latest_releases] + str_releases = [str(version) for version in testing_releases] with open(github_output, "a", encoding="utf-8") as wfh: - wfh.write(f"latest-releases={json.dumps(str_releases)}\n") + wfh.write(f"testing-releases={json.dumps(str_releases)}\n") ctx.exit(0) From 296ec76a341af476b3af118fc04a31653c6592de Mon Sep 17 00:00:00 2001 From: MKLeb Date: Tue, 20 Jun 2023 16:27:37 -0400 Subject: [PATCH 06/16] Generate the pkg test matrix and include the versions to test upgrades against within it --- .../workflows/test-packages-action-macos.yml | 2 +- .github/workflows/test-packages-action.yml | 2 +- tools/ci.py | 39 +++++++++++++++---- tools/utils.py | 11 ++++-- 4 files changed, 40 insertions(+), 14 deletions(-) diff --git a/.github/workflows/test-packages-action-macos.yml b/.github/workflows/test-packages-action-macos.yml index 178fb4c1a15..d523e752e6d 100644 --- a/.github/workflows/test-packages-action-macos.yml +++ b/.github/workflows/test-packages-action-macos.yml @@ -83,7 +83,7 @@ jobs: - name: Generate Package Test Matrix id: generate-pkg-matrix run: | - tools ci pkg-matrix ${{ inputs.distro-slug }} ${{ inputs.pkg-type }} + tools ci pkg-matrix ${{ inputs.distro-slug }} ${{ inputs.pkg-type }} --testing-releases ${{ join(fromJSON(inputs.testing-releases), ' ') }} dependencies: name: Setup Test Dependencies diff --git a/.github/workflows/test-packages-action.yml b/.github/workflows/test-packages-action.yml index 39fd1bf3aa1..225009299ba 100644 --- a/.github/workflows/test-packages-action.yml +++ b/.github/workflows/test-packages-action.yml @@ -81,7 +81,7 @@ jobs: - name: Generate Package Test Matrix id: generate-pkg-matrix run: | - tools ci pkg-matrix ${{ inputs.distro-slug }} ${{ inputs.pkg-type }} + tools ci pkg-matrix ${{ inputs.distro-slug }} ${{ inputs.pkg-type }} --testing-releases ${{ join(fromJSON(inputs.testing-releases), ' ') }} dependencies: name: Setup Test Dependencies diff --git a/tools/ci.py b/tools/ci.py index 3a479035b5e..566a1f388f6 100644 --- a/tools/ci.py +++ b/tools/ci.py @@ -646,18 +646,29 @@ def transport_matrix(ctx: Context, distro_slug: str): "help": "The distribution slug to generate the matrix for", }, "pkg_type": { - "help": "The distribution slug to generate the matrix for", + "help": "The type of package we are testing against", + }, + "testing_releases": { + "help": "The salt releases to test upgrades against", + "nargs": "+", + "required": True, }, }, ) -def pkg_matrix(ctx: Context, distro_slug: str, pkg_type: str): +def pkg_matrix( + ctx: Context, + distro_slug: str, + pkg_type: str, + testing_releases: list[tools.utils.Version] = None, +): """ Generate the test matrix. """ github_output = os.environ.get("GITHUB_OUTPUT") if github_output is None: ctx.warn("The 'GITHUB_OUTPUT' variable is not set.") - + if TYPE_CHECKING: + assert testing_releases matrix = [] sessions = [ "install", @@ -679,6 +690,7 @@ def pkg_matrix(ctx: Context, distro_slug: str, pkg_type: str): # we allow for 3006.0 jobs to run, because then # we will have arm64 onedir packages to upgrade from sessions.append("upgrade") + # TODO: Remove this block when we reach version 3009.0, we will no longer be testing upgrades from classic packages if ( distro_slug not in [ @@ -694,11 +706,22 @@ def pkg_matrix(ctx: Context, distro_slug: str, pkg_type: str): sessions.append("upgrade-classic") for session in sessions: - matrix.append( - { - "test-chunk": session, - } - ) + versions: list[str | None] = [None] + if session == "upgrade": + versions = [str(version) for version in testing_releases] + elif session == "upgrade-classic": + versions = [ + str(version) + for version in testing_releases + if version < tools.utils.Version("3006.0") + ] + for version in versions: + matrix.append( + { + "test-chunk": session, + "version": version, + } + ) ctx.info("Generated matrix:") ctx.print(matrix, soft_wrap=True) diff --git a/tools/utils.py b/tools/utils.py index 28a79745844..64d19bc4290 100644 --- a/tools/utils.py +++ b/tools/utils.py @@ -132,6 +132,9 @@ class Version(packaging.version.Version): other = self.__class__(other) return super().__ne__(other) + def __str__(self): + return super().__str__().replace(".post", "-") + def __hash__(self): return hash(str(self)) @@ -177,12 +180,12 @@ def get_salt_releases(ctx: Context, repository: str) -> list[Version]: name = release["name"] if name.startswith("v"): name = name[1:] - if name and "-" not in name and "docs" not in name: - # We're not going to parse dash or docs releases + if name and "docs" not in name: + # We're not going to parse docs releases versions.add(Version(name)) name = release["tag_name"] - if "-" not in name and "docs" not in name: - # We're not going to parse dash or docs releases + if "docs" not in name: + # We're not going to parse docs releases versions.add(Version(name)) return sorted(versions) From 7aadeaf7920f5c825a7b703e0daef36e5f715045 Mon Sep 17 00:00:00 2001 From: MKLeb Date: Tue, 20 Jun 2023 17:12:19 -0400 Subject: [PATCH 07/16] Account for upgrades from new relenv-based repos --- .../workflows/test-packages-action-macos.yml | 6 ++-- .github/workflows/test-packages-action.yml | 6 ++-- pkg/tests/support/helpers.py | 35 +++++++++++++++---- 3 files changed, 36 insertions(+), 11 deletions(-) diff --git a/.github/workflows/test-packages-action-macos.yml b/.github/workflows/test-packages-action-macos.yml index d523e752e6d..b517c53745c 100644 --- a/.github/workflows/test-packages-action-macos.yml +++ b/.github/workflows/test-packages-action-macos.yml @@ -234,7 +234,8 @@ jobs: GITHUB_ACTIONS_PIPELINE: "1" SKIP_INITIAL_GH_ACTIONS_FAILURES: "1" run: | - sudo -E nox --force-color -e ${{ inputs.nox-session }} -- ${{ matrix.test-chunk }} + sudo -E nox --force-color -e ${{ inputs.nox-session }} -- ${{ matrix.test-chunk }} \ + ${{ contains(matrix.test-chunk, 'upgrade') && format('--prev-version {0}', matrix.version) || ''}} - name: Run Package Tests env: @@ -246,7 +247,8 @@ jobs: GITHUB_ACTIONS_PIPELINE: "1" SKIP_INITIAL_GH_ACTIONS_FAILURES: "1" run: | - sudo -E nox --force-color -e ${{ inputs.nox-session }} -- ${{ matrix.test-chunk }} + sudo -E nox --force-color -e ${{ inputs.nox-session }} -- ${{ matrix.test-chunk }} \ + ${{ contains(matrix.test-chunk, 'upgrade') && format('--prev-version {0}', matrix.version) || ''}} - name: Fix file ownership run: | diff --git a/.github/workflows/test-packages-action.yml b/.github/workflows/test-packages-action.yml index 225009299ba..3b4017bcb81 100644 --- a/.github/workflows/test-packages-action.yml +++ b/.github/workflows/test-packages-action.yml @@ -264,12 +264,14 @@ jobs: - 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.test-chunk }} + --nox-session=${{ inputs.nox-session }} ${{ inputs.distro-slug }} -- ${{ matrix.test-chunk }} \ + ${{ contains(matrix.test-chunk, 'upgrade') && 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\ - --nox-session=${{ inputs.nox-session }} --rerun-failures ${{ inputs.distro-slug }} -- ${{ matrix.test-chunk }} + --nox-session=${{ inputs.nox-session }} --rerun-failures ${{ inputs.distro-slug }} -- ${{ matrix.test-chunk }} \ + ${{ contains(matrix.test-chunk, 'upgrade') && format('--prev-version {0}', matrix.version) || ''}} - name: Download Test Run Artifacts id: download-artifacts-from-vm diff --git a/pkg/tests/support/helpers.py b/pkg/tests/support/helpers.py index 9853c441870..2e476065b0b 100644 --- a/pkg/tests/support/helpers.py +++ b/pkg/tests/support/helpers.py @@ -661,6 +661,7 @@ class SaltPkgInstall: minor_ver = self.minor pkg_version = self.pkg_version full_version = f"{self.major}.{self.minor}-{pkg_version}" + relenv = major_ver >= 3006 min_ver = f"{major_ver}" distro_name = self.distro_name @@ -676,6 +677,9 @@ class SaltPkgInstall: gpg_key = "SALTSTACK-GPG-KEY.pub" if self.distro_version == "9": gpg_key = "SALTSTACK-GPG-KEY2.pub" + if relenv: + gpg_key = "SALT-PROJECT-GPG-PUBKEY-2023.pub" + if platform.is_aarch64(): arch = "aarch64" else: @@ -713,15 +717,20 @@ class SaltPkgInstall: else: arch = "amd64" pathlib.Path("/etc/apt/keyrings").mkdir(parents=True, exist_ok=True) + gpg_dest = "salt-archive-keyring.gpg" + gpg_key = gpg_dest + if relenv: + gpg_key = "SALT-PROJECT-GPG-PUBKEY-2023.gpg" + download_file( - f"https://repo.saltproject.io/{root_url}{distro_name}/{self.distro_version}/{arch}/{major_ver}/salt-archive-keyring.gpg", - "/etc/apt/keyrings/salt-archive-keyring.gpg", + 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( pathlib.Path("/etc", "apt", "sources.list.d", "salt.list"), "w" ) as fp: fp.write( - f"deb [signed-by=/etc/apt/keyrings/salt-archive-keyring.gpg arch={arch}] " + f"deb [signed-by=/etc/apt/keyrings/{gpg_dest} arch={arch}] " f"https://repo.saltproject.io/{root_url}{distro_name}/{self.distro_version}/{arch}/{major_ver} {self.distro_codename} main" ) ret = self.proc.run(self.pkg_mngr, "update") @@ -744,8 +753,15 @@ class SaltPkgInstall: self.ssm_bin = self.install_dir / "ssm.exe" if not self.classic: - win_pkg = f"salt-{full_version}-windows-amd64.{self.file_ext}" - win_pkg_url = f"https://repo.saltproject.io/salt/py3/windows/{full_version}/{win_pkg}" + if not relenv: + win_pkg = f"salt-{full_version}-windows-amd64.{self.file_ext}" + win_pkg_url = f"https://repo.saltproject.io/salt/py3/windows/{full_version}/{win_pkg}" + else: + if self.file_ext == "msi": + win_pkg = f"Salt-Minion-{self.prev_version}-1-Py3-AMD64.{self.file_ext}" + elif self.file_ext == "exe": + win_pkg = f"Salt-Minion-{self.prev_version}-1-Py3-AMD64-Setup.{self.file_ext}" + win_pkg_url = f"https://repo.saltproject.io/salt/py3/windows/{major_ver}/{win_pkg}" else: if self.file_ext == "msi": win_pkg = f"Salt-Minion-{min_ver}-1-Py3-AMD64.{self.file_ext}" @@ -785,8 +801,13 @@ class SaltPkgInstall: mac_pkg = f"salt-{min_ver}.{minor_ver}-1-py3-x86_64.pkg" mac_pkg_url = f"https://repo.saltproject.io/osx/{mac_pkg}" else: - mac_pkg = f"salt-{min_ver}.{minor_ver}-1-macos-x86_64.pkg" - mac_pkg_url = f"https://repo.saltproject.io/salt/py3/macos/{major_ver}.{minor_ver}-1/{mac_pkg}" + if not relenv: + mac_pkg = f"salt-{min_ver}.{minor_ver}-1-macos-x86_64.pkg" + mac_pkg_url = f"https://repo.saltproject.io/salt/py3/macos/{major_ver}.{minor_ver}-1/{mac_pkg}" + else: + mac_pkg = f"salt-{self.prev_verison}-x86_64.pkg" + mac_pkg_url = f"https://repo.saltproject.io/salt/py3/macos/{major_ver}/{mac_pkg}" + mac_pkg_path = f"/tmp/{mac_pkg}" if not os.path.exists(mac_pkg_path): download_file( From 5c7269aee6a4d0382d69b2af193cc3df363b2630 Mon Sep 17 00:00:00 2001 From: MKLeb Date: Wed, 21 Jun 2023 10:24:33 -0400 Subject: [PATCH 08/16] The slash needs to be separate from the command --- .github/workflows/test-packages-action.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test-packages-action.yml b/.github/workflows/test-packages-action.yml index 3b4017bcb81..3e31045c6f7 100644 --- a/.github/workflows/test-packages-action.yml +++ b/.github/workflows/test-packages-action.yml @@ -269,7 +269,7 @@ jobs: - name: Run Package Tests run: | - tools --timestamps --no-output-timeout-secs=1800 --timeout-secs=14400 vm test --skip-requirements-install\ + tools --timestamps --no-output-timeout-secs=1800 --timeout-secs=14400 vm test --skip-requirements-install \ --nox-session=${{ inputs.nox-session }} --rerun-failures ${{ inputs.distro-slug }} -- ${{ matrix.test-chunk }} \ ${{ contains(matrix.test-chunk, 'upgrade') && format('--prev-version {0}', matrix.version) || ''}} From 9a4e026d592484f283688800194b5d4cee9cd01e Mon Sep 17 00:00:00 2001 From: MKLeb Date: Wed, 21 Jun 2023 11:27:14 -0400 Subject: [PATCH 09/16] The major version needs to be cast to an int for comparison --- pkg/tests/support/helpers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/tests/support/helpers.py b/pkg/tests/support/helpers.py index 2e476065b0b..0bc2f8dd0d7 100644 --- a/pkg/tests/support/helpers.py +++ b/pkg/tests/support/helpers.py @@ -661,7 +661,7 @@ class SaltPkgInstall: minor_ver = self.minor pkg_version = self.pkg_version full_version = f"{self.major}.{self.minor}-{pkg_version}" - relenv = major_ver >= 3006 + relenv = int(major_ver) >= 3006 min_ver = f"{major_ver}" distro_name = self.distro_name From 0ec60c70d2c311db12d504ce45fd0877888ccabe Mon Sep 17 00:00:00 2001 From: MKLeb Date: Wed, 21 Jun 2023 13:13:02 -0400 Subject: [PATCH 10/16] Fix mac upgrade test urls --- pkg/tests/support/helpers.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pkg/tests/support/helpers.py b/pkg/tests/support/helpers.py index 0bc2f8dd0d7..4708356e50e 100644 --- a/pkg/tests/support/helpers.py +++ b/pkg/tests/support/helpers.py @@ -798,14 +798,14 @@ class SaltPkgInstall: elif platform.is_darwin(): if self.classic: - mac_pkg = f"salt-{min_ver}.{minor_ver}-1-py3-x86_64.pkg" + mac_pkg = f"salt-{self.prev_version}-py3-x86_64.pkg" mac_pkg_url = f"https://repo.saltproject.io/osx/{mac_pkg}" else: if not relenv: - mac_pkg = f"salt-{min_ver}.{minor_ver}-1-macos-x86_64.pkg" - mac_pkg_url = f"https://repo.saltproject.io/salt/py3/macos/{major_ver}.{minor_ver}-1/{mac_pkg}" + mac_pkg = f"salt-{self.prev_version}-macos-x86_64.pkg" + mac_pkg_url = f"https://repo.saltproject.io/salt/py3/macos/{self.prev_version}/{mac_pkg}" else: - mac_pkg = f"salt-{self.prev_verison}-x86_64.pkg" + mac_pkg = f"salt-{self.prev_version}-x86_64.pkg" mac_pkg_url = f"https://repo.saltproject.io/salt/py3/macos/{major_ver}/{mac_pkg}" mac_pkg_path = f"/tmp/{mac_pkg}" From f952418e90b50bc3da3104049fa457d9000b4fe5 Mon Sep 17 00:00:00 2001 From: MKLeb Date: Wed, 21 Jun 2023 16:01:28 -0400 Subject: [PATCH 11/16] Use `download_file` for the windows packages as well --- pkg/tests/support/helpers.py | 4 +--- tools/utils.py | 3 --- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/pkg/tests/support/helpers.py b/pkg/tests/support/helpers.py index 4708356e50e..1b627ba5d1e 100644 --- a/pkg/tests/support/helpers.py +++ b/pkg/tests/support/helpers.py @@ -770,10 +770,8 @@ class SaltPkgInstall: win_pkg_url = f"https://repo.saltproject.io/windows/{win_pkg}" pkg_path = pathlib.Path(r"C:\TEMP", win_pkg) pkg_path.parent.mkdir(exist_ok=True) - ret = requests.get(win_pkg_url) + download_file(win_pkg_url, pkg_path) - with open(pkg_path, "wb") as fp: - fp.write(ret.content) if self.file_ext == "msi": # Write a batch file to run the installer. It is impossible to # perform escaping of the START_MINION property that the MSI diff --git a/tools/utils.py b/tools/utils.py index 64d19bc4290..48dc4a17314 100644 --- a/tools/utils.py +++ b/tools/utils.py @@ -161,9 +161,6 @@ def get_salt_releases(ctx: Context, repository: str) -> list[Version]: name = tag["name"] if name.startswith("v"): name = name[1:] - if "-" in name: - # We're not going to parse dash tags - continue if "docs" in name: # We're not going to consider doc tags continue From 0d622479b28f86f7569944b670b9a07d44720a6a Mon Sep 17 00:00:00 2001 From: MKLeb Date: Wed, 21 Jun 2023 18:35:42 -0400 Subject: [PATCH 12/16] Additional fixes for mac and windows upgrade tests --- pkg/tests/support/helpers.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/pkg/tests/support/helpers.py b/pkg/tests/support/helpers.py index 1b627ba5d1e..e27237e408d 100644 --- a/pkg/tests/support/helpers.py +++ b/pkg/tests/support/helpers.py @@ -758,9 +758,11 @@ class SaltPkgInstall: win_pkg_url = f"https://repo.saltproject.io/salt/py3/windows/{full_version}/{win_pkg}" else: if self.file_ext == "msi": - win_pkg = f"Salt-Minion-{self.prev_version}-1-Py3-AMD64.{self.file_ext}" + win_pkg = ( + f"Salt-Minion-{self.prev_version}-Py3-AMD64.{self.file_ext}" + ) elif self.file_ext == "exe": - win_pkg = f"Salt-Minion-{self.prev_version}-1-Py3-AMD64-Setup.{self.file_ext}" + win_pkg = f"Salt-Minion-{self.prev_version}-Py3-AMD64-Setup.{self.file_ext}" win_pkg_url = f"https://repo.saltproject.io/salt/py3/windows/{major_ver}/{win_pkg}" else: if self.file_ext == "msi": @@ -803,7 +805,7 @@ class SaltPkgInstall: mac_pkg = f"salt-{self.prev_version}-macos-x86_64.pkg" mac_pkg_url = f"https://repo.saltproject.io/salt/py3/macos/{self.prev_version}/{mac_pkg}" else: - mac_pkg = f"salt-{self.prev_version}-x86_64.pkg" + mac_pkg = f"salt-{self.prev_version}-py3-x86_64.pkg" mac_pkg_url = f"https://repo.saltproject.io/salt/py3/macos/{major_ver}/{mac_pkg}" mac_pkg_path = f"/tmp/{mac_pkg}" From d007ebd8d9015e401f52642596d73327fc6daef2 Mon Sep 17 00:00:00 2001 From: MKLeb Date: Tue, 27 Jun 2023 14:19:26 -0400 Subject: [PATCH 13/16] Some more fixes for the NSIS package tests --- pkg/tests/support/helpers.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkg/tests/support/helpers.py b/pkg/tests/support/helpers.py index e27237e408d..11bfdb6185b 100644 --- a/pkg/tests/support/helpers.py +++ b/pkg/tests/support/helpers.py @@ -749,13 +749,13 @@ class SaltPkgInstall: self.bin_dir = self.install_dir / "bin" self.run_root = self.bin_dir / f"salt.exe" self.ssm_bin = self.bin_dir / "ssm.exe" - if self.file_ext == "msi": + if self.file_ext == "msi" or relenv: self.ssm_bin = self.install_dir / "ssm.exe" if not self.classic: if not relenv: - win_pkg = f"salt-{full_version}-windows-amd64.{self.file_ext}" - win_pkg_url = f"https://repo.saltproject.io/salt/py3/windows/{full_version}/{win_pkg}" + win_pkg = f"salt-{self.prev_version}-windows-amd64.{self.file_ext}" + win_pkg_url = f"https://repo.saltproject.io/salt/py3/windows/{self.prev_version}/{win_pkg}" else: if self.file_ext == "msi": win_pkg = ( From e11d6a478a17576a9026ba565947f966a2b97d39 Mon Sep 17 00:00:00 2001 From: MKLeb Date: Wed, 28 Jun 2023 16:45:19 -0400 Subject: [PATCH 14/16] More fixes for upgrades of NSIS packages from relenv-based previous versions --- pkg/tests/conftest.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkg/tests/conftest.py b/pkg/tests/conftest.py index 0bcf2252227..5eba84bb4aa 100644 --- a/pkg/tests/conftest.py +++ b/pkg/tests/conftest.py @@ -363,6 +363,8 @@ def salt_master(salt_factories, install_salt, state_tree, pillar_tree): master_script = True # this check will need to be changed to install_salt.relenv # once the package version returns 3006 and not 3005 on master + if install_salt.relenv: + master_script = True elif not install_salt.upgrade: master_script = True @@ -375,6 +377,8 @@ def salt_master(salt_factories, install_salt, state_tree, pillar_tree): python_executable = install_salt.bin_dir / "Scripts" / "python.exe" if install_salt.classic: python_executable = install_salt.bin_dir / "python.exe" + if install_salt.relenv: + python_executable = install_salt.install_dir / "Scripts" / "python.exe" factory = salt_factories.salt_master_daemon( random_string("master-"), defaults=config_defaults, From 89e41f31558dccf67dc493871f385c9d6075c470 Mon Sep 17 00:00:00 2001 From: cmcmarrow Date: Thu, 29 Jun 2023 18:38:01 -0500 Subject: [PATCH 15/16] unflip no-fast --- tests/conftest.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/conftest.py b/tests/conftest.py index 1bb55aabee3..b90346ed558 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -605,7 +605,7 @@ def pytest_runtest_setup(item): "Slow tests are disabled, pass '--run-slow' to enable them.", _use_item_location=True, ) - if test_group_count == 0 and item.config.getoption("--no-fast-tests"): + if test_group_count == 0 and not item.config.getoption("--no-fast-tests"): raise pytest.skip.Exception( "Fast tests have been disabled by '--no-fast-tests'.", _use_item_location=True, From 9eac9cdef51bebd3f7aa9788a80f4f469259f78e Mon Sep 17 00:00:00 2001 From: cmcmarrow Date: Thu, 29 Jun 2023 18:56:31 -0500 Subject: [PATCH 16/16] flip default on --no-fast --- tests/conftest.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/conftest.py b/tests/conftest.py index b90346ed558..361076e0e17 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -171,8 +171,8 @@ def pytest_addoption(parser): "--no-fast", "--no-fast-tests", dest="fast", - action="store_false", - default=True, + action="store_true", + default=False, help="Don't run salt-fast tests. Default: %(default)s", ) test_selection_group.addoption( @@ -605,7 +605,7 @@ def pytest_runtest_setup(item): "Slow tests are disabled, pass '--run-slow' to enable them.", _use_item_location=True, ) - if test_group_count == 0 and not item.config.getoption("--no-fast-tests"): + if test_group_count == 0 and item.config.getoption("--no-fast-tests"): raise pytest.skip.Exception( "Fast tests have been disabled by '--no-fast-tests'.", _use_item_location=True,