diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9fca5f3f44b..d7e16ce4f6d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -47,6 +47,7 @@ jobs: latest-release: ${{ steps.get-salt-releases.outputs.latest-release }} releases: ${{ steps.get-salt-releases.outputs.releases }} release-changelog-target: ${{ steps.get-release-changelog-target.outputs.release-changelog-target }} + testing-releases: ${{ steps.get-testing-releases.outputs.testing-releases }} steps: - uses: actions/checkout@v3 with: @@ -199,10 +200,18 @@ jobs: run: | tools ci get-releases + - name: Get Latest Salt Releases for Testing + id: get-testing-releases + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + 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 @@ -537,6 +546,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -554,6 +564,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -571,6 +582,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -588,6 +600,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -605,6 +618,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -622,6 +636,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -639,6 +654,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -656,6 +672,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -673,6 +690,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -690,6 +708,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -707,6 +726,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -724,6 +744,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -741,6 +762,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -758,6 +780,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -775,6 +798,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -792,6 +816,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -809,6 +834,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -826,6 +852,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -843,6 +870,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -860,6 +888,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 31b6b95c2e5..0594529ed13 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -93,6 +93,7 @@ jobs: latest-release: ${{ steps.get-salt-releases.outputs.latest-release }} releases: ${{ steps.get-salt-releases.outputs.releases }} release-changelog-target: ${{ steps.get-release-changelog-target.outputs.release-changelog-target }} + testing-releases: ${{ steps.get-testing-releases.outputs.testing-releases }} steps: - uses: actions/checkout@v3 with: @@ -245,10 +246,18 @@ jobs: run: | tools ci get-releases + - name: Get Latest Salt Releases for Testing + id: get-testing-releases + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + 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 @@ -589,6 +598,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -606,6 +616,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -623,6 +634,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -640,6 +652,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -657,6 +670,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -674,6 +688,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -691,6 +706,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -708,6 +724,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -725,6 +742,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -742,6 +760,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -759,6 +778,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -776,6 +796,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -793,6 +814,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -810,6 +832,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -827,6 +850,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -844,6 +868,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -861,6 +886,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -878,6 +904,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -895,6 +922,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -912,6 +940,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 545d60d983c..f6bdf2a577a 100644 --- a/.github/workflows/scheduled.yml +++ b/.github/workflows/scheduled.yml @@ -83,6 +83,7 @@ jobs: latest-release: ${{ steps.get-salt-releases.outputs.latest-release }} releases: ${{ steps.get-salt-releases.outputs.releases }} release-changelog-target: ${{ steps.get-release-changelog-target.outputs.release-changelog-target }} + testing-releases: ${{ steps.get-testing-releases.outputs.testing-releases }} steps: - uses: actions/checkout@v3 with: @@ -235,10 +236,18 @@ jobs: run: | tools ci get-releases + - name: Get Latest Salt Releases for Testing + id: get-testing-releases + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + 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 @@ -573,6 +582,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -590,6 +600,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -607,6 +618,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -624,6 +636,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -641,6 +654,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -658,6 +672,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -675,6 +690,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -692,6 +708,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -709,6 +726,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -726,6 +744,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -743,6 +762,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -760,6 +780,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -777,6 +798,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -794,6 +816,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -811,6 +834,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -828,6 +852,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -845,6 +870,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -862,6 +888,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -879,6 +906,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -896,6 +924,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 ddff261b578..b68d73fa1e3 100644 --- a/.github/workflows/staging.yml +++ b/.github/workflows/staging.yml @@ -73,6 +73,7 @@ jobs: latest-release: ${{ steps.get-salt-releases.outputs.latest-release }} releases: ${{ steps.get-salt-releases.outputs.releases }} release-changelog-target: ${{ steps.get-release-changelog-target.outputs.release-changelog-target }} + testing-releases: ${{ steps.get-testing-releases.outputs.testing-releases }} steps: - uses: actions/checkout@v3 with: @@ -231,10 +232,18 @@ jobs: run: | tools ci get-releases + - name: Get Latest Salt Releases for Testing + id: get-testing-releases + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + 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 @@ -579,6 +588,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -596,6 +606,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -613,6 +624,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -630,6 +642,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -647,6 +660,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -664,6 +678,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -681,6 +696,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -698,6 +714,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -715,6 +732,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -732,6 +750,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -749,6 +768,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -766,6 +786,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -783,6 +804,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -800,6 +822,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -817,6 +840,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -834,6 +858,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -851,6 +876,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -868,6 +894,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -885,6 +912,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 @@ -902,6 +930,7 @@ jobs: cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.11.3 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 089c621b714..c1575aec60b 100644 --- a/.github/workflows/templates/layout.yml.jinja +++ b/.github/workflows/templates/layout.yml.jinja @@ -92,6 +92,7 @@ jobs: latest-release: ${{ steps.get-salt-releases.outputs.latest-release }} releases: ${{ steps.get-salt-releases.outputs.releases }} release-changelog-target: ${{ steps.get-release-changelog-target.outputs.release-changelog-target }} + testing-releases: ${{ steps.get-testing-releases.outputs.testing-releases }} steps: - uses: actions/checkout@v3 with: @@ -256,10 +257,18 @@ jobs: run: | tools ci get-releases + - name: Get Latest Salt Releases for Testing + id: get-testing-releases + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + 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 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..b517c53745c 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 @@ -79,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 @@ -230,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: @@ -242,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 cadaa2e834a..3e31045c6f7 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 @@ -77,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 @@ -260,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 }} + 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) || ''}} - name: Download Test Run Artifacts id: download-artifacts-from-vm 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, diff --git a/pkg/tests/support/helpers.py b/pkg/tests/support/helpers.py index 9853c441870..11bfdb6185b 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 = int(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") @@ -740,12 +749,21 @@ 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: - 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-{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 = ( + f"Salt-Minion-{self.prev_version}-Py3-AMD64.{self.file_ext}" + ) + elif self.file_ext == "exe": + 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": win_pkg = f"Salt-Minion-{min_ver}-1-Py3-AMD64.{self.file_ext}" @@ -754,10 +772,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 @@ -782,11 +798,16 @@ 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: - 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-{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}-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}" if not os.path.exists(mac_pkg_path): download_file( diff --git a/tests/conftest.py b/tests/conftest.py index 5818f95790a..c076ca2b471 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( diff --git a/tools/ci.py b/tools/ci.py index 1bc05a9647c..8264cb37019 100644 --- a/tools/ci.py +++ b/tools/ci.py @@ -647,18 +647,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", @@ -675,11 +686,12 @@ 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 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 [ @@ -695,11 +707,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) @@ -898,3 +921,70 @@ 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-testing-releases", + arguments={ + "releases": { + "help": "The list of releases of salt", + "nargs": "*", + }, + "salt_version": { + "help": "The version of salt being tested against", + "required": True, + }, + }, +) +def get_testing_releases( + ctx: Context, + releases: list[tools.utils.Version], + salt_version: str = None, +): + """ + 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) + # 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]) + + # 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(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"] + testing_releases = [version] + testing_releases + + str_releases = [str(version) for version in testing_releases] + + with open(github_output, "a", encoding="utf-8") as wfh: + wfh.write(f"testing-releases={json.dumps(str_releases)}\n") + + ctx.exit(0) diff --git a/tools/utils.py b/tools/utils.py index 8369d25eafe..b2f6192aac0 100644 --- a/tools/utils.py +++ b/tools/utils.py @@ -135,6 +135,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)) @@ -161,9 +164,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 @@ -180,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)