diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 66be59467e6..ccb90c44072 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -2119,13 +2119,13 @@ jobs: with: payload: | { - "text": "Nightly Workflow build result: ${{ job.status }}\n${{ github.event.head_commit.url }}", + "text": "Nightly Workflow build result for the ${{ github.ref_name }} branch: ${{ steps.get-workflow-info.outputs.conclusion }}\n${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}", "blocks": [ { "type": "section", "text": { "type": "mrkdwn", - "text": "GitHub Action build result: ${{ job.status }}\n${{ github.event.head_commit.url }}" + "text": "Nightly Workflow build result for the ${{ github.ref_name }} branch: ${{ steps.get-workflow-info.outputs.conclusion }}\n${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}" } } ] diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f121d380e0a..fa0a019a496 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -220,8 +220,8 @@ jobs: run: | tools pkg repo publish release ${{ needs.prepare-workflow.outputs.salt-version }} - almalinux-8-pkg-download-tests: - name: Test Alma Linux 8 Package Downloads + almalinux-8-package-download-tests: + name: Test Alma Linux 8 package Downloads if: ${{ inputs.skip-salt-pkg-download-test-suite == false }} needs: - prepare-workflow @@ -237,10 +237,11 @@ jobs: environment: release skip-code-coverage: true latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + pkg-type: package secrets: inherit - almalinux-8-arm64-pkg-download-tests: - name: Test Alma Linux 8 Arm64 Package Downloads + almalinux-8-arm64-package-download-tests: + name: Test Alma Linux 8 Arm64 package Downloads if: ${{ inputs.skip-salt-pkg-download-test-suite == false }} needs: - prepare-workflow @@ -256,10 +257,11 @@ jobs: environment: release skip-code-coverage: true latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + pkg-type: package secrets: inherit - almalinux-9-pkg-download-tests: - name: Test Alma Linux 9 Package Downloads + almalinux-9-package-download-tests: + name: Test Alma Linux 9 package Downloads if: ${{ inputs.skip-salt-pkg-download-test-suite == false }} needs: - prepare-workflow @@ -275,10 +277,11 @@ jobs: environment: release skip-code-coverage: true latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + pkg-type: package secrets: inherit - almalinux-9-arm64-pkg-download-tests: - name: Test Alma Linux 9 Arm64 Package Downloads + almalinux-9-arm64-package-download-tests: + name: Test Alma Linux 9 Arm64 package Downloads if: ${{ inputs.skip-salt-pkg-download-test-suite == false }} needs: - prepare-workflow @@ -294,10 +297,11 @@ jobs: environment: release skip-code-coverage: true latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + pkg-type: package secrets: inherit - amazonlinux-2-pkg-download-tests: - name: Test Amazon Linux 2 Package Downloads + amazonlinux-2-package-download-tests: + name: Test Amazon Linux 2 package Downloads if: ${{ inputs.skip-salt-pkg-download-test-suite == false }} needs: - prepare-workflow @@ -313,10 +317,11 @@ jobs: environment: release skip-code-coverage: true latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + pkg-type: package secrets: inherit - amazonlinux-2-arm64-pkg-download-tests: - name: Test Amazon Linux 2 Arm64 Package Downloads + amazonlinux-2-arm64-package-download-tests: + name: Test Amazon Linux 2 Arm64 package Downloads if: ${{ inputs.skip-salt-pkg-download-test-suite == false }} needs: - prepare-workflow @@ -332,10 +337,11 @@ jobs: environment: release skip-code-coverage: true latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + pkg-type: package secrets: inherit - centos-7-pkg-download-tests: - name: Test CentOS 7 Package Downloads + centos-7-package-download-tests: + name: Test CentOS 7 package Downloads if: ${{ inputs.skip-salt-pkg-download-test-suite == false }} needs: - prepare-workflow @@ -351,10 +357,11 @@ jobs: environment: release skip-code-coverage: true latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + pkg-type: package secrets: inherit - centos-7-arm64-pkg-download-tests: - name: Test CentOS 7 Arm64 Package Downloads + centos-7-arm64-package-download-tests: + name: Test CentOS 7 Arm64 package Downloads if: ${{ inputs.skip-salt-pkg-download-test-suite == false }} needs: - prepare-workflow @@ -370,10 +377,11 @@ jobs: environment: release skip-code-coverage: true latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + pkg-type: package secrets: inherit - centosstream-8-pkg-download-tests: - name: Test CentOS Stream 8 Package Downloads + centosstream-8-package-download-tests: + name: Test CentOS Stream 8 package Downloads if: ${{ inputs.skip-salt-pkg-download-test-suite == false }} needs: - prepare-workflow @@ -389,10 +397,11 @@ jobs: environment: release skip-code-coverage: true latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + pkg-type: package secrets: inherit - centosstream-8-arm64-pkg-download-tests: - name: Test CentOS Stream 8 Arm64 Package Downloads + centosstream-8-arm64-package-download-tests: + name: Test CentOS Stream 8 Arm64 package Downloads if: ${{ inputs.skip-salt-pkg-download-test-suite == false }} needs: - prepare-workflow @@ -408,10 +417,11 @@ jobs: environment: release skip-code-coverage: true latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + pkg-type: package secrets: inherit - centosstream-9-pkg-download-tests: - name: Test CentOS Stream 9 Package Downloads + centosstream-9-package-download-tests: + name: Test CentOS Stream 9 package Downloads if: ${{ inputs.skip-salt-pkg-download-test-suite == false }} needs: - prepare-workflow @@ -427,10 +437,11 @@ jobs: environment: release skip-code-coverage: true latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + pkg-type: package secrets: inherit - centosstream-9-arm64-pkg-download-tests: - name: Test CentOS Stream 9 Arm64 Package Downloads + centosstream-9-arm64-package-download-tests: + name: Test CentOS Stream 9 Arm64 package Downloads if: ${{ inputs.skip-salt-pkg-download-test-suite == false }} needs: - prepare-workflow @@ -446,10 +457,11 @@ jobs: environment: release skip-code-coverage: true latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + pkg-type: package secrets: inherit - debian-10-pkg-download-tests: - name: Test Debian 10 Package Downloads + debian-10-package-download-tests: + name: Test Debian 10 package Downloads if: ${{ inputs.skip-salt-pkg-download-test-suite == false }} needs: - prepare-workflow @@ -465,10 +477,11 @@ jobs: environment: release skip-code-coverage: true latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + pkg-type: package secrets: inherit - debian-11-pkg-download-tests: - name: Test Debian 11 Package Downloads + debian-11-package-download-tests: + name: Test Debian 11 package Downloads if: ${{ inputs.skip-salt-pkg-download-test-suite == false }} needs: - prepare-workflow @@ -484,10 +497,11 @@ jobs: environment: release skip-code-coverage: true latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + pkg-type: package secrets: inherit - debian-11-arm64-pkg-download-tests: - name: Test Debian 11 Arm64 Package Downloads + debian-11-arm64-package-download-tests: + name: Test Debian 11 Arm64 package Downloads if: ${{ inputs.skip-salt-pkg-download-test-suite == false }} needs: - prepare-workflow @@ -503,10 +517,11 @@ jobs: environment: release skip-code-coverage: true latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + pkg-type: package secrets: inherit - fedora-37-pkg-download-tests: - name: Test Fedora 37 Package Downloads + fedora-37-package-download-tests: + name: Test Fedora 37 package Downloads if: ${{ inputs.skip-salt-pkg-download-test-suite == false }} needs: - prepare-workflow @@ -522,10 +537,11 @@ jobs: environment: release skip-code-coverage: true latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + pkg-type: package secrets: inherit - fedora-37-arm64-pkg-download-tests: - name: Test Fedora 37 Arm64 Package Downloads + fedora-37-arm64-package-download-tests: + name: Test Fedora 37 Arm64 package Downloads if: ${{ inputs.skip-salt-pkg-download-test-suite == false }} needs: - prepare-workflow @@ -541,10 +557,11 @@ jobs: environment: release skip-code-coverage: true latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + pkg-type: package secrets: inherit - fedora-38-pkg-download-tests: - name: Test Fedora 38 Package Downloads + fedora-38-package-download-tests: + name: Test Fedora 38 package Downloads if: ${{ inputs.skip-salt-pkg-download-test-suite == false }} needs: - prepare-workflow @@ -560,10 +577,11 @@ jobs: environment: release skip-code-coverage: true latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + pkg-type: package secrets: inherit - fedora-38-arm64-pkg-download-tests: - name: Test Fedora 38 Arm64 Package Downloads + fedora-38-arm64-package-download-tests: + name: Test Fedora 38 Arm64 package Downloads if: ${{ inputs.skip-salt-pkg-download-test-suite == false }} needs: - prepare-workflow @@ -579,10 +597,11 @@ jobs: environment: release skip-code-coverage: true latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + pkg-type: package secrets: inherit - photonos-3-pkg-download-tests: - name: Test Photon OS 3 Package Downloads + photonos-3-package-download-tests: + name: Test Photon OS 3 package Downloads if: ${{ inputs.skip-salt-pkg-download-test-suite == false }} needs: - prepare-workflow @@ -598,10 +617,11 @@ jobs: environment: release skip-code-coverage: true latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + pkg-type: package secrets: inherit - photonos-4-pkg-download-tests: - name: Test Photon OS 4 Package Downloads + photonos-4-package-download-tests: + name: Test Photon OS 4 package Downloads if: ${{ inputs.skip-salt-pkg-download-test-suite == false }} needs: - prepare-workflow @@ -617,10 +637,11 @@ jobs: environment: release skip-code-coverage: true latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + pkg-type: package secrets: inherit - ubuntu-2004-pkg-download-tests: - name: Test Ubuntu 20.04 Package Downloads + ubuntu-2004-package-download-tests: + name: Test Ubuntu 20.04 package Downloads if: ${{ inputs.skip-salt-pkg-download-test-suite == false }} needs: - prepare-workflow @@ -636,10 +657,11 @@ jobs: environment: release skip-code-coverage: true latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + pkg-type: package secrets: inherit - ubuntu-2004-arm64-pkg-download-tests: - name: Test Ubuntu 20.04 Arm64 Package Downloads + ubuntu-2004-arm64-package-download-tests: + name: Test Ubuntu 20.04 Arm64 package Downloads if: ${{ inputs.skip-salt-pkg-download-test-suite == false }} needs: - prepare-workflow @@ -655,10 +677,11 @@ jobs: environment: release skip-code-coverage: true latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + pkg-type: package secrets: inherit - ubuntu-2204-pkg-download-tests: - name: Test Ubuntu 22.04 Package Downloads + ubuntu-2204-package-download-tests: + name: Test Ubuntu 22.04 package Downloads if: ${{ inputs.skip-salt-pkg-download-test-suite == false }} needs: - prepare-workflow @@ -674,10 +697,11 @@ jobs: environment: release skip-code-coverage: true latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + pkg-type: package secrets: inherit - ubuntu-2204-arm64-pkg-download-tests: - name: Test Ubuntu 22.04 Arm64 Package Downloads + ubuntu-2204-arm64-package-download-tests: + name: Test Ubuntu 22.04 Arm64 package Downloads if: ${{ inputs.skip-salt-pkg-download-test-suite == false }} needs: - prepare-workflow @@ -693,9 +717,50 @@ jobs: environment: release skip-code-coverage: true latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + pkg-type: package secrets: inherit - macos-12-pkg-download-tests: + ubuntu-2204-onedir-download-tests: + name: Test Ubuntu 22.04 onedir Downloads + if: ${{ inputs.skip-salt-pkg-download-test-suite == false }} + needs: + - prepare-workflow + - publish-repositories + - download-onedir-artifact + uses: ./.github/workflows/test-package-downloads-action-linux.yml + with: + distro-slug: ubuntu-22.04 + platform: linux + arch: x86_64 + cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 + salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" + environment: release + skip-code-coverage: true + latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + pkg-type: onedir + secrets: inherit + + ubuntu-2204-arm64-onedir-download-tests: + name: Test Ubuntu 22.04 Arm64 onedir Downloads + if: ${{ inputs.skip-salt-pkg-download-test-suite == false }} + needs: + - prepare-workflow + - publish-repositories + - download-onedir-artifact + uses: ./.github/workflows/test-package-downloads-action-linux.yml + with: + distro-slug: ubuntu-22.04-arm64 + platform: linux + arch: aarch64 + cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 + salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" + environment: release + skip-code-coverage: true + latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + pkg-type: onedir + secrets: inherit + + macos-12-Package-download-tests: name: Test macOS 12 Package Downloads if: ${{ inputs.skip-salt-pkg-download-test-suite == false }} needs: @@ -712,9 +777,30 @@ jobs: environment: release skip-code-coverage: true latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + pkg-type: package secrets: inherit - windows-2022-nsis-amd64-pkg-download-tests: + macos-12-Onedir-download-tests: + name: Test macOS 12 Onedir Downloads + if: ${{ inputs.skip-salt-pkg-download-test-suite == false }} + needs: + - prepare-workflow + - publish-repositories + - download-onedir-artifact + uses: ./.github/workflows/test-package-downloads-action-macos.yml + with: + distro-slug: macos-12 + platform: darwin + arch: x86_64 + cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 + salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" + environment: release + skip-code-coverage: true + latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + pkg-type: onedir + secrets: inherit + + windows-2022-NSIS-amd64-download-tests: if: ${{ inputs.skip-salt-pkg-download-test-suite == false }} name: Test Windows 2022 amd64 NSIS Package Downloads needs: @@ -726,7 +812,7 @@ jobs: distro-slug: windows-2022 platform: windows arch: amd64 - pkg-type: NSIS + pkg-type: nsis cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" environment: release @@ -734,7 +820,7 @@ jobs: latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" secrets: inherit - windows-2022-msi-amd64-pkg-download-tests: + windows-2022-MSI-amd64-download-tests: if: ${{ inputs.skip-salt-pkg-download-test-suite == false }} name: Test Windows 2022 amd64 MSI Package Downloads needs: @@ -746,7 +832,27 @@ jobs: distro-slug: windows-2022 platform: windows arch: amd64 - pkg-type: MSI + pkg-type: msi + cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 + salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" + environment: release + skip-code-coverage: true + latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + secrets: inherit + + windows-2022-Onedir-amd64-download-tests: + if: ${{ inputs.skip-salt-pkg-download-test-suite == false }} + name: Test Windows 2022 amd64 Onedir Package Downloads + needs: + - prepare-workflow + - publish-repositories + - download-onedir-artifact + uses: ./.github/workflows/test-package-downloads-action-windows.yml + with: + distro-slug: windows-2022 + platform: windows + arch: amd64 + pkg-type: onedir cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" environment: release @@ -765,34 +871,38 @@ jobs: - prepare-workflow - backup - publish-repositories - - almalinux-8-pkg-download-tests - - almalinux-8-arm64-pkg-download-tests - - almalinux-9-pkg-download-tests - - almalinux-9-arm64-pkg-download-tests - - amazonlinux-2-pkg-download-tests - - amazonlinux-2-arm64-pkg-download-tests - - centos-7-pkg-download-tests - - centos-7-arm64-pkg-download-tests - - centosstream-8-pkg-download-tests - - centosstream-8-arm64-pkg-download-tests - - centosstream-9-pkg-download-tests - - centosstream-9-arm64-pkg-download-tests - - debian-10-pkg-download-tests - - debian-11-pkg-download-tests - - debian-11-arm64-pkg-download-tests - - fedora-37-pkg-download-tests - - fedora-37-arm64-pkg-download-tests - - fedora-38-pkg-download-tests - - fedora-38-arm64-pkg-download-tests - - photonos-3-pkg-download-tests - - photonos-4-pkg-download-tests - - ubuntu-2004-pkg-download-tests - - ubuntu-2004-arm64-pkg-download-tests - - ubuntu-2204-pkg-download-tests - - ubuntu-2204-arm64-pkg-download-tests - - macos-12-pkg-download-tests - - windows-2022-nsis-amd64-pkg-download-tests - - windows-2022-msi-amd64-pkg-download-tests + - almalinux-8-package-download-tests + - almalinux-8-arm64-package-download-tests + - almalinux-9-package-download-tests + - almalinux-9-arm64-package-download-tests + - amazonlinux-2-package-download-tests + - amazonlinux-2-arm64-package-download-tests + - centos-7-package-download-tests + - centos-7-arm64-package-download-tests + - centosstream-8-package-download-tests + - centosstream-8-arm64-package-download-tests + - centosstream-9-package-download-tests + - centosstream-9-arm64-package-download-tests + - debian-10-package-download-tests + - debian-11-package-download-tests + - debian-11-arm64-package-download-tests + - fedora-37-package-download-tests + - fedora-37-arm64-package-download-tests + - fedora-38-package-download-tests + - fedora-38-arm64-package-download-tests + - photonos-3-package-download-tests + - photonos-4-package-download-tests + - ubuntu-2004-package-download-tests + - ubuntu-2004-arm64-package-download-tests + - ubuntu-2204-package-download-tests + - ubuntu-2204-arm64-package-download-tests + - ubuntu-2204-onedir-download-tests + - ubuntu-2204-arm64-onedir-download-tests + - macos-12-Package-download-tests + - macos-12-Onedir-download-tests + - windows-2022-NSIS-amd64-download-tests + - windows-2022-MSI-amd64-download-tests + - windows-2022-Onedir-amd64-download-tests environment: release steps: - name: Clone The Salt Repository diff --git a/.github/workflows/staging.yml b/.github/workflows/staging.yml index 7e7a492dfd4..3fc537231b2 100644 --- a/.github/workflows/staging.yml +++ b/.github/workflows/staging.yml @@ -2105,8 +2105,8 @@ jobs: retention-days: 7 if-no-files-found: error - almalinux-8-pkg-download-tests: - name: Test Alma Linux 8 Package Downloads + almalinux-8-package-download-tests: + name: Test Alma Linux 8 package Downloads if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg-download'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow @@ -2121,10 +2121,11 @@ jobs: environment: staging skip-code-coverage: true latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + pkg-type: package secrets: inherit - almalinux-8-arm64-pkg-download-tests: - name: Test Alma Linux 8 Arm64 Package Downloads + almalinux-8-arm64-package-download-tests: + name: Test Alma Linux 8 Arm64 package Downloads if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg-download'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow @@ -2139,10 +2140,11 @@ jobs: environment: staging skip-code-coverage: true latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + pkg-type: package secrets: inherit - almalinux-9-pkg-download-tests: - name: Test Alma Linux 9 Package Downloads + almalinux-9-package-download-tests: + name: Test Alma Linux 9 package Downloads if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg-download'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow @@ -2157,10 +2159,11 @@ jobs: environment: staging skip-code-coverage: true latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + pkg-type: package secrets: inherit - almalinux-9-arm64-pkg-download-tests: - name: Test Alma Linux 9 Arm64 Package Downloads + almalinux-9-arm64-package-download-tests: + name: Test Alma Linux 9 Arm64 package Downloads if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg-download'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow @@ -2175,10 +2178,11 @@ jobs: environment: staging skip-code-coverage: true latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + pkg-type: package secrets: inherit - amazonlinux-2-pkg-download-tests: - name: Test Amazon Linux 2 Package Downloads + amazonlinux-2-package-download-tests: + name: Test Amazon Linux 2 package Downloads if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg-download'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow @@ -2193,10 +2197,11 @@ jobs: environment: staging skip-code-coverage: true latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + pkg-type: package secrets: inherit - amazonlinux-2-arm64-pkg-download-tests: - name: Test Amazon Linux 2 Arm64 Package Downloads + amazonlinux-2-arm64-package-download-tests: + name: Test Amazon Linux 2 Arm64 package Downloads if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg-download'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow @@ -2211,10 +2216,11 @@ jobs: environment: staging skip-code-coverage: true latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + pkg-type: package secrets: inherit - centos-7-pkg-download-tests: - name: Test CentOS 7 Package Downloads + centos-7-package-download-tests: + name: Test CentOS 7 package Downloads if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg-download'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow @@ -2229,10 +2235,11 @@ jobs: environment: staging skip-code-coverage: true latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + pkg-type: package secrets: inherit - centos-7-arm64-pkg-download-tests: - name: Test CentOS 7 Arm64 Package Downloads + centos-7-arm64-package-download-tests: + name: Test CentOS 7 Arm64 package Downloads if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg-download'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow @@ -2247,10 +2254,11 @@ jobs: environment: staging skip-code-coverage: true latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + pkg-type: package secrets: inherit - centosstream-8-pkg-download-tests: - name: Test CentOS Stream 8 Package Downloads + centosstream-8-package-download-tests: + name: Test CentOS Stream 8 package Downloads if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg-download'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow @@ -2265,10 +2273,11 @@ jobs: environment: staging skip-code-coverage: true latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + pkg-type: package secrets: inherit - centosstream-8-arm64-pkg-download-tests: - name: Test CentOS Stream 8 Arm64 Package Downloads + centosstream-8-arm64-package-download-tests: + name: Test CentOS Stream 8 Arm64 package Downloads if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg-download'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow @@ -2283,10 +2292,11 @@ jobs: environment: staging skip-code-coverage: true latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + pkg-type: package secrets: inherit - centosstream-9-pkg-download-tests: - name: Test CentOS Stream 9 Package Downloads + centosstream-9-package-download-tests: + name: Test CentOS Stream 9 package Downloads if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg-download'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow @@ -2301,10 +2311,11 @@ jobs: environment: staging skip-code-coverage: true latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + pkg-type: package secrets: inherit - centosstream-9-arm64-pkg-download-tests: - name: Test CentOS Stream 9 Arm64 Package Downloads + centosstream-9-arm64-package-download-tests: + name: Test CentOS Stream 9 Arm64 package Downloads if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg-download'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow @@ -2319,10 +2330,11 @@ jobs: environment: staging skip-code-coverage: true latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + pkg-type: package secrets: inherit - debian-10-pkg-download-tests: - name: Test Debian 10 Package Downloads + debian-10-package-download-tests: + name: Test Debian 10 package Downloads if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg-download'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow @@ -2337,10 +2349,11 @@ jobs: environment: staging skip-code-coverage: true latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + pkg-type: package secrets: inherit - debian-11-pkg-download-tests: - name: Test Debian 11 Package Downloads + debian-11-package-download-tests: + name: Test Debian 11 package Downloads if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg-download'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow @@ -2355,10 +2368,11 @@ jobs: environment: staging skip-code-coverage: true latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + pkg-type: package secrets: inherit - debian-11-arm64-pkg-download-tests: - name: Test Debian 11 Arm64 Package Downloads + debian-11-arm64-package-download-tests: + name: Test Debian 11 Arm64 package Downloads if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg-download'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow @@ -2373,10 +2387,11 @@ jobs: environment: staging skip-code-coverage: true latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + pkg-type: package secrets: inherit - fedora-37-pkg-download-tests: - name: Test Fedora 37 Package Downloads + fedora-37-package-download-tests: + name: Test Fedora 37 package Downloads if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg-download'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow @@ -2391,10 +2406,11 @@ jobs: environment: staging skip-code-coverage: true latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + pkg-type: package secrets: inherit - fedora-37-arm64-pkg-download-tests: - name: Test Fedora 37 Arm64 Package Downloads + fedora-37-arm64-package-download-tests: + name: Test Fedora 37 Arm64 package Downloads if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg-download'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow @@ -2409,10 +2425,11 @@ jobs: environment: staging skip-code-coverage: true latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + pkg-type: package secrets: inherit - fedora-38-pkg-download-tests: - name: Test Fedora 38 Package Downloads + fedora-38-package-download-tests: + name: Test Fedora 38 package Downloads if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg-download'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow @@ -2427,10 +2444,11 @@ jobs: environment: staging skip-code-coverage: true latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + pkg-type: package secrets: inherit - fedora-38-arm64-pkg-download-tests: - name: Test Fedora 38 Arm64 Package Downloads + fedora-38-arm64-package-download-tests: + name: Test Fedora 38 Arm64 package Downloads if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg-download'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow @@ -2445,10 +2463,11 @@ jobs: environment: staging skip-code-coverage: true latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + pkg-type: package secrets: inherit - photonos-3-pkg-download-tests: - name: Test Photon OS 3 Package Downloads + photonos-3-package-download-tests: + name: Test Photon OS 3 package Downloads if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg-download'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow @@ -2463,10 +2482,11 @@ jobs: environment: staging skip-code-coverage: true latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + pkg-type: package secrets: inherit - photonos-4-pkg-download-tests: - name: Test Photon OS 4 Package Downloads + photonos-4-package-download-tests: + name: Test Photon OS 4 package Downloads if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg-download'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow @@ -2481,10 +2501,11 @@ jobs: environment: staging skip-code-coverage: true latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + pkg-type: package secrets: inherit - ubuntu-2004-pkg-download-tests: - name: Test Ubuntu 20.04 Package Downloads + ubuntu-2004-package-download-tests: + name: Test Ubuntu 20.04 package Downloads if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg-download'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow @@ -2499,10 +2520,11 @@ jobs: environment: staging skip-code-coverage: true latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + pkg-type: package secrets: inherit - ubuntu-2004-arm64-pkg-download-tests: - name: Test Ubuntu 20.04 Arm64 Package Downloads + ubuntu-2004-arm64-package-download-tests: + name: Test Ubuntu 20.04 Arm64 package Downloads if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg-download'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow @@ -2517,10 +2539,11 @@ jobs: environment: staging skip-code-coverage: true latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + pkg-type: package secrets: inherit - ubuntu-2204-pkg-download-tests: - name: Test Ubuntu 22.04 Package Downloads + ubuntu-2204-package-download-tests: + name: Test Ubuntu 22.04 package Downloads if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg-download'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow @@ -2535,10 +2558,11 @@ jobs: environment: staging skip-code-coverage: true latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + pkg-type: package secrets: inherit - ubuntu-2204-arm64-pkg-download-tests: - name: Test Ubuntu 22.04 Arm64 Package Downloads + ubuntu-2204-arm64-package-download-tests: + name: Test Ubuntu 22.04 Arm64 package Downloads if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg-download'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: - prepare-workflow @@ -2553,9 +2577,48 @@ jobs: environment: staging skip-code-coverage: true latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + pkg-type: package secrets: inherit - macos-12-pkg-download-tests: + ubuntu-2204-onedir-download-tests: + name: Test Ubuntu 22.04 onedir Downloads + if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg-download'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} + needs: + - prepare-workflow + - publish-repositories + uses: ./.github/workflows/test-package-downloads-action-linux.yml + with: + distro-slug: ubuntu-22.04 + platform: linux + arch: x86_64 + cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 + salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" + environment: staging + skip-code-coverage: true + latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + pkg-type: onedir + secrets: inherit + + ubuntu-2204-arm64-onedir-download-tests: + name: Test Ubuntu 22.04 Arm64 onedir Downloads + if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg-download'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} + needs: + - prepare-workflow + - publish-repositories + uses: ./.github/workflows/test-package-downloads-action-linux.yml + with: + distro-slug: ubuntu-22.04-arm64 + platform: linux + arch: aarch64 + cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 + salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" + environment: staging + skip-code-coverage: true + latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + pkg-type: onedir + secrets: inherit + + macos-12-Package-download-tests: name: Test macOS 12 Package Downloads if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg-download'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} needs: @@ -2571,9 +2634,29 @@ jobs: environment: staging skip-code-coverage: true latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + pkg-type: package secrets: inherit - windows-2022-nsis-amd64-pkg-download-tests: + macos-12-Onedir-download-tests: + name: Test macOS 12 Onedir Downloads + if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg-download'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} + needs: + - prepare-workflow + - publish-repositories + uses: ./.github/workflows/test-package-downloads-action-macos.yml + with: + distro-slug: macos-12 + platform: darwin + arch: x86_64 + cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 + salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" + environment: staging + skip-code-coverage: true + latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + pkg-type: onedir + secrets: inherit + + windows-2022-NSIS-amd64-download-tests: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg-download'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} name: Test Windows 2022 amd64 NSIS Package Downloads needs: @@ -2584,7 +2667,7 @@ jobs: distro-slug: windows-2022 platform: windows arch: amd64 - pkg-type: NSIS + pkg-type: nsis cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" environment: staging @@ -2592,7 +2675,7 @@ jobs: latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" secrets: inherit - windows-2022-msi-amd64-pkg-download-tests: + windows-2022-MSI-amd64-download-tests: if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg-download'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} name: Test Windows 2022 amd64 MSI Package Downloads needs: @@ -2603,7 +2686,26 @@ jobs: distro-slug: windows-2022 platform: windows arch: amd64 - pkg-type: MSI + pkg-type: msi + cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 + salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" + environment: staging + skip-code-coverage: true + latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + secrets: inherit + + windows-2022-Onedir-amd64-download-tests: + if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg-download'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} + name: Test Windows 2022 amd64 Onedir Package Downloads + needs: + - prepare-workflow + - publish-repositories + uses: ./.github/workflows/test-package-downloads-action-windows.yml + with: + distro-slug: windows-2022 + platform: windows + arch: amd64 + pkg-type: onedir cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|3.10.11 salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" environment: staging @@ -2660,34 +2762,38 @@ jobs: - windows-2019-msi-pkg-tests - windows-2022-nsis-pkg-tests - windows-2022-msi-pkg-tests - - almalinux-8-pkg-download-tests - - almalinux-8-arm64-pkg-download-tests - - almalinux-9-pkg-download-tests - - almalinux-9-arm64-pkg-download-tests - - amazonlinux-2-pkg-download-tests - - amazonlinux-2-arm64-pkg-download-tests - - centos-7-pkg-download-tests - - centos-7-arm64-pkg-download-tests - - centosstream-8-pkg-download-tests - - centosstream-8-arm64-pkg-download-tests - - centosstream-9-pkg-download-tests - - centosstream-9-arm64-pkg-download-tests - - debian-10-pkg-download-tests - - debian-11-pkg-download-tests - - debian-11-arm64-pkg-download-tests - - fedora-37-pkg-download-tests - - fedora-37-arm64-pkg-download-tests - - fedora-38-pkg-download-tests - - fedora-38-arm64-pkg-download-tests - - photonos-3-pkg-download-tests - - photonos-4-pkg-download-tests - - ubuntu-2004-pkg-download-tests - - ubuntu-2004-arm64-pkg-download-tests - - ubuntu-2204-pkg-download-tests - - ubuntu-2204-arm64-pkg-download-tests - - macos-12-pkg-download-tests - - windows-2022-nsis-amd64-pkg-download-tests - - windows-2022-msi-amd64-pkg-download-tests + - almalinux-8-package-download-tests + - almalinux-8-arm64-package-download-tests + - almalinux-9-package-download-tests + - almalinux-9-arm64-package-download-tests + - amazonlinux-2-package-download-tests + - amazonlinux-2-arm64-package-download-tests + - centos-7-package-download-tests + - centos-7-arm64-package-download-tests + - centosstream-8-package-download-tests + - centosstream-8-arm64-package-download-tests + - centosstream-9-package-download-tests + - centosstream-9-arm64-package-download-tests + - debian-10-package-download-tests + - debian-11-package-download-tests + - debian-11-arm64-package-download-tests + - fedora-37-package-download-tests + - fedora-37-arm64-package-download-tests + - fedora-38-package-download-tests + - fedora-38-arm64-package-download-tests + - photonos-3-package-download-tests + - photonos-4-package-download-tests + - ubuntu-2004-package-download-tests + - ubuntu-2004-arm64-package-download-tests + - ubuntu-2204-package-download-tests + - ubuntu-2204-arm64-package-download-tests + - ubuntu-2204-onedir-download-tests + - ubuntu-2204-arm64-onedir-download-tests + - macos-12-Package-download-tests + - macos-12-Onedir-download-tests + - windows-2022-NSIS-amd64-download-tests + - windows-2022-MSI-amd64-download-tests + - windows-2022-Onedir-amd64-download-tests environment: staging runs-on: - self-hosted diff --git a/.github/workflows/templates/nightly.yml.jinja b/.github/workflows/templates/nightly.yml.jinja index 7e45a21f4f6..0aa970a27ae 100644 --- a/.github/workflows/templates/nightly.yml.jinja +++ b/.github/workflows/templates/nightly.yml.jinja @@ -127,13 +127,13 @@ concurrency: with: payload: | { - "text": "Nightly Workflow build result: ${{ job.status }}\n${{ github.event.head_commit.url }}", + "text": "Nightly Workflow build result for the ${{ github.ref_name }} branch: ${{ steps.get-workflow-info.outputs.conclusion }}\n${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}", "blocks": [ { "type": "section", "text": { "type": "mrkdwn", - "text": "GitHub Action build result: ${{ job.status }}\n${{ github.event.head_commit.url }}" + "text": "Nightly Workflow build result for the ${{ github.ref_name }} branch: ${{ steps.get-workflow-info.outputs.conclusion }}\n${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}" } } ] diff --git a/.github/workflows/templates/test-pkg-repo-downloads.yml.jinja b/.github/workflows/templates/test-pkg-repo-downloads.yml.jinja index 8ea9bfed3b7..964d7dce3c6 100644 --- a/.github/workflows/templates/test-pkg-repo-downloads.yml.jinja +++ b/.github/workflows/templates/test-pkg-repo-downloads.yml.jinja @@ -1,39 +1,41 @@ <%- set linux_pkg_tests = ( - ("almalinux-8", "Alma Linux 8", "x86_64"), - ("almalinux-8-arm64", "Alma Linux 8 Arm64", "aarch64"), - ("almalinux-9", "Alma Linux 9", "x86_64"), - ("almalinux-9-arm64", "Alma Linux 9 Arm64", "aarch64"), - ("amazonlinux-2", "Amazon Linux 2", "x86_64"), - ("amazonlinux-2-arm64", "Amazon Linux 2 Arm64", "aarch64"), - ("centos-7", "CentOS 7", "x86_64"), - ("centos-7-arm64", "CentOS 7 Arm64", "aarch64"), - ("centosstream-8", "CentOS Stream 8", "x86_64"), - ("centosstream-8-arm64", "CentOS Stream 8 Arm64", "aarch64"), - ("centosstream-9", "CentOS Stream 9", "x86_64"), - ("centosstream-9-arm64", "CentOS Stream 9 Arm64", "aarch64"), - ("debian-10", "Debian 10", "x86_64"), - ("debian-11", "Debian 11", "x86_64"), - ("debian-11-arm64", "Debian 11 Arm64", "aarch64"), - ("fedora-37", "Fedora 37", "x86_64"), - ("fedora-37-arm64", "Fedora 37 Arm64", "aarch64"), - ("fedora-38", "Fedora 38", "x86_64"), - ("fedora-38-arm64", "Fedora 38 Arm64", "aarch64"), - ("photonos-3", "Photon OS 3", "x86_64"), - ("photonos-4", "Photon OS 4", "x86_64"), - ("ubuntu-20.04", "Ubuntu 20.04", "x86_64"), - ("ubuntu-20.04-arm64", "Ubuntu 20.04 Arm64", "aarch64"), - ("ubuntu-22.04", "Ubuntu 22.04", "x86_64"), - ("ubuntu-22.04-arm64", "Ubuntu 22.04 Arm64", "aarch64") + ("almalinux-8", "Alma Linux 8", "x86_64", "package"), + ("almalinux-8-arm64", "Alma Linux 8 Arm64", "aarch64", "package"), + ("almalinux-9", "Alma Linux 9", "x86_64", "package"), + ("almalinux-9-arm64", "Alma Linux 9 Arm64", "aarch64", "package"), + ("amazonlinux-2", "Amazon Linux 2", "x86_64", "package"), + ("amazonlinux-2-arm64", "Amazon Linux 2 Arm64", "aarch64", "package"), + ("centos-7", "CentOS 7", "x86_64", "package"), + ("centos-7-arm64", "CentOS 7 Arm64", "aarch64", "package"), + ("centosstream-8", "CentOS Stream 8", "x86_64", "package"), + ("centosstream-8-arm64", "CentOS Stream 8 Arm64", "aarch64", "package"), + ("centosstream-9", "CentOS Stream 9", "x86_64", "package"), + ("centosstream-9-arm64", "CentOS Stream 9 Arm64", "aarch64", "package"), + ("debian-10", "Debian 10", "x86_64", "package"), + ("debian-11", "Debian 11", "x86_64", "package"), + ("debian-11-arm64", "Debian 11 Arm64", "aarch64", "package"), + ("fedora-37", "Fedora 37", "x86_64", "package"), + ("fedora-37-arm64", "Fedora 37 Arm64", "aarch64", "package"), + ("fedora-38", "Fedora 38", "x86_64", "package"), + ("fedora-38-arm64", "Fedora 38 Arm64", "aarch64", "package"), + ("photonos-3", "Photon OS 3", "x86_64", "package"), + ("photonos-4", "Photon OS 4", "x86_64", "package"), + ("ubuntu-20.04", "Ubuntu 20.04", "x86_64", "package"), + ("ubuntu-20.04-arm64", "Ubuntu 20.04 Arm64", "aarch64", "package"), + ("ubuntu-22.04", "Ubuntu 22.04", "x86_64", "package"), + ("ubuntu-22.04-arm64", "Ubuntu 22.04 Arm64", "aarch64", "package"), + ("ubuntu-22.04", "Ubuntu 22.04", "x86_64", "onedir"), + ("ubuntu-22.04-arm64", "Ubuntu 22.04 Arm64", "aarch64", "onedir") ) %> - <%- for slug, display_name, arch in linux_pkg_tests %> - <%- set job_name = "{}-pkg-download-tests".format(slug.replace(".", "")) %> + <%- for slug, display_name, arch, pkg_type in linux_pkg_tests %> + <%- set job_name = "{}-{}-download-tests".format(slug.replace(".", ""), pkg_type) %> <{ job_name }>: <%- do test_repo_needs.append(job_name) %> - name: Test <{ display_name }> Package Downloads + name: Test <{ display_name }> <{ pkg_type }> Downloads <%- if gh_environment == "staging" %> if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg-download'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} <%- else %> @@ -55,19 +57,21 @@ environment: <{ gh_environment }> skip-code-coverage: true latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + pkg-type: <{ pkg_type.lower() }> secrets: inherit <%- endfor %> - <%- for slug, display_name, arch in ( - ("macos-12", "macOS 12", "x86_64"), + <%- for slug, display_name, arch, pkg_type in ( + ("macos-12", "macOS 12", "x86_64", "Package"), + ("macos-12", "macOS 12", "x86_64", "Onedir"), ) %> - <%- set job_name = "{}-pkg-download-tests".format(slug.replace(".", "")) %> + <%- set job_name = "{}-{}-download-tests".format(slug.replace(".", ""), pkg_type) %> <{ job_name }>: <%- do test_repo_needs.append(job_name) %> - name: Test <{ display_name }> Package Downloads + name: Test <{ display_name }> <{ pkg_type }> Downloads <%- if gh_environment == "staging" %> if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg-download'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} <%- else %> @@ -89,15 +93,16 @@ environment: <{ gh_environment }> skip-code-coverage: true latest-release: "${{ needs.prepare-workflow.outputs.latest-release }}" + pkg-type: <{ pkg_type.lower() }> secrets: inherit - <%- endfor %> + <%- endfor %> <%- for slug, display_name, arch in ( ("windows-2022", "Windows 2022", "amd64"), ) %> - <%- for pkg_type in ("NSIS", "MSI") %> - <%- set job_name = "{}-{}-{}-pkg-download-tests".format(slug.replace(".", ""), pkg_type.lower(), arch.lower()) %> + <%- for pkg_type in ("NSIS", "MSI", "Onedir") %> + <%- set job_name = "{}-{}-{}-download-tests".format(slug.replace(".", ""), pkg_type, arch.lower()) %> <{ job_name }>: <%- do test_repo_needs.append(job_name) %> @@ -118,7 +123,7 @@ distro-slug: <{ slug }> platform: windows arch: <{ arch }> - pkg-type: <{ pkg_type }> + pkg-type: <{ pkg_type.lower() }> cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|<{ python_version_windows }> salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" environment: <{ gh_environment }> diff --git a/.github/workflows/test-package-downloads-action-linux.yml b/.github/workflows/test-package-downloads-action-linux.yml index 7df9ec1c8f3..7aa5f65c04a 100644 --- a/.github/workflows/test-package-downloads-action-linux.yml +++ b/.github/workflows/test-package-downloads-action-linux.yml @@ -31,6 +31,10 @@ on: required: true type: string description: The latest salt release + pkg-type: + required: true + type: string + description: The type of artifact to download package-name: required: false type: string @@ -221,10 +225,11 @@ jobs: SALT_REPO_DOMAIN_STAGING: ${{ vars.SALT_REPO_DOMAIN_STAGING || 'staging.repo.saltproject.io' }} SKIP_CODE_COVERAGE: "${{ inputs.skip-code-coverage && '1' || '0' }}" LATEST_SALT_RELEASE: "${{ inputs.latest-release }}" + DOWNLOAD_TEST_PACKAGE_TYPE: ${{ inputs.pkg-type }} run: | tools --timestamps --timeout-secs=1800 vm testplan --skip-requirements-install \ -E INSTALL_TYPE -E SALT_RELEASE -E SALT_REPO_ARCH -E SALT_REPO_TYPE -E SALT_REPO_USER -E SALT_REPO_PASS \ - -E SALT_REPO_DOMAIN_RELEASE -E SALT_REPO_DOMAIN_STAGING -E LATEST_SALT_RELEASE \ + -E SALT_REPO_DOMAIN_RELEASE -E SALT_REPO_DOMAIN_STAGING -E LATEST_SALT_RELEASE -E DOWNLOAD_TEST_PACKAGE_TYPE \ --nox-session=${{ inputs.nox-session }} ${{ inputs.distro-slug }} -- download-pkgs - name: Run Package Download Tests @@ -238,10 +243,11 @@ jobs: SALT_REPO_DOMAIN_STAGING: ${{ vars.SALT_REPO_DOMAIN_STAGING || 'staging.repo.saltproject.io' }} SKIP_CODE_COVERAGE: "${{ inputs.skip-code-coverage && '1' || '0' }}" LATEST_SALT_RELEASE: "${{ inputs.latest-release }}" + DOWNLOAD_TEST_PACKAGE_TYPE: ${{ inputs.pkg-type }} run: | tools --timestamps --no-output-timeout-secs=1800 --timeout-secs=14400 vm test --skip-requirements-install \ -E INSTALL_TYPE -E SALT_RELEASE -E SALT_REPO_ARCH -E SALT_REPO_TYPE -E SALT_REPO_USER -E SALT_REPO_PASS \ - -E SALT_REPO_DOMAIN_RELEASE -E SALT_REPO_DOMAIN_STAGING -E LATEST_SALT_RELEASE \ + -E SALT_REPO_DOMAIN_RELEASE -E SALT_REPO_DOMAIN_STAGING -E LATEST_SALT_RELEASE -E DOWNLOAD_TEST_PACKAGE_TYPE \ --nox-session=${{ inputs.nox-session }} --rerun-failures ${{ inputs.distro-slug }} -- download-pkgs - name: Combine Coverage Reports diff --git a/.github/workflows/test-package-downloads-action-macos.yml b/.github/workflows/test-package-downloads-action-macos.yml index ec985efbcee..fdd1ce63991 100644 --- a/.github/workflows/test-package-downloads-action-macos.yml +++ b/.github/workflows/test-package-downloads-action-macos.yml @@ -31,6 +31,10 @@ on: required: true type: string description: The latest salt release + pkg-type: + required: true + type: string + description: The type of artifact to download python-version: required: false type: string @@ -199,6 +203,7 @@ jobs: SKIP_INITIAL_GH_ACTIONS_FAILURES: "1" SKIP_CODE_COVERAGE: "${{ inputs.skip-code-coverage && '1' || '0' }}" LATEST_SALT_RELEASE: "${{ inputs.latest-release }}" + DOWNLOAD_TEST_PACKAGE_TYPE: ${{ inputs.pkg-type }} run: | sudo -E nox --force-color -e ${{ inputs.nox-session }} -- download-pkgs @@ -220,6 +225,7 @@ jobs: SALT_REPO_PASS: ${{ secrets.SALT_REPO_PASS }} SALT_REPO_DOMAIN_RELEASE: ${{ vars.SALT_REPO_DOMAIN_RELEASE || 'repo.saltproject.io' }} SALT_REPO_DOMAIN_STAGING: ${{ vars.SALT_REPO_DOMAIN_STAGING || 'staging.repo.saltproject.io' }} + DOWNLOAD_TEST_PACKAGE_TYPE: ${{ inputs.pkg-type }} run: | sudo -E nox --force-color -e ${{ inputs.nox-session }} -- download-pkgs diff --git a/.github/workflows/test-package-downloads-action-windows.yml b/.github/workflows/test-package-downloads-action-windows.yml index 963372925d2..0e585f97e70 100644 --- a/.github/workflows/test-package-downloads-action-windows.yml +++ b/.github/workflows/test-package-downloads-action-windows.yml @@ -221,7 +221,6 @@ jobs: - name: Show System Info & Test Plan env: - INSTALL_TYPE: ${{ inputs.pkg-type }} SALT_RELEASE: "${{ inputs.salt-version }}" SALT_REPO_ARCH: ${{ inputs.arch }} LATEST_SALT_RELEASE: "${{ inputs.latest-release }}" @@ -231,15 +230,15 @@ jobs: SALT_REPO_DOMAIN_RELEASE: ${{ vars.SALT_REPO_DOMAIN_RELEASE || 'repo.saltproject.io' }} SALT_REPO_DOMAIN_STAGING: ${{ vars.SALT_REPO_DOMAIN_STAGING || 'staging.repo.saltproject.io' }} SKIP_CODE_COVERAGE: "${{ inputs.skip-code-coverage && '1' || '0' }}" + DOWNLOAD_TEST_PACKAGE_TYPE: ${{ inputs.pkg-type }} run: | tools --timestamps --timeout-secs=1800 vm testplan --skip-requirements-install \ -E INSTALL_TYPE -E SALT_RELEASE -E SALT_REPO_ARCH -E SALT_REPO_TYPE -E SALT_REPO_USER -E SALT_REPO_PASS \ - -E SALT_REPO_DOMAIN_RELEASE -E SALT_REPO_DOMAIN_STAGING -E LATEST_SALT_RELEASE \ + -E SALT_REPO_DOMAIN_RELEASE -E SALT_REPO_DOMAIN_STAGING -E LATEST_SALT_RELEASE -E DOWNLOAD_TEST_PACKAGE_TYPE \ --nox-session=${{ inputs.nox-session }} ${{ inputs.distro-slug }} -- download-pkgs - name: Run Package Download Tests env: - INSTALL_TYPE: ${{ inputs.pkg-type }} SALT_RELEASE: "${{ inputs.salt-version }}" SALT_REPO_ARCH: ${{ inputs.arch }} LATEST_SALT_RELEASE: "${{ inputs.latest-release }}" @@ -249,10 +248,11 @@ jobs: SALT_REPO_DOMAIN_RELEASE: ${{ vars.SALT_REPO_DOMAIN_RELEASE || 'repo.saltproject.io' }} SALT_REPO_DOMAIN_STAGING: ${{ vars.SALT_REPO_DOMAIN_STAGING || 'staging.repo.saltproject.io' }} SKIP_CODE_COVERAGE: "${{ inputs.skip-code-coverage && '1' || '0' }}" + DOWNLOAD_TEST_PACKAGE_TYPE: ${{ inputs.pkg-type }} run: | tools --timestamps --no-output-timeout-secs=1800 --timeout-secs=14400 vm test --skip-requirements-install \ -E INSTALL_TYPE -E SALT_RELEASE -E SALT_REPO_ARCH -E SALT_REPO_TYPE -E SALT_REPO_USER -E SALT_REPO_PASS \ - -E SALT_REPO_DOMAIN_RELEASE -E SALT_REPO_DOMAIN_STAGING -E LATEST_SALT_RELEASE \ + -E SALT_REPO_DOMAIN_RELEASE -E SALT_REPO_DOMAIN_STAGING -E LATEST_SALT_RELEASE -E DOWNLOAD_TEST_PACKAGE_TYPE \ --nox-session=${{ inputs.nox-session }} --rerun-failures ${{ inputs.distro-slug }} -- download-pkgs - name: Combine Coverage Reports diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 40d8e0dc43c..3394c12f9cd 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1190,7 +1190,7 @@ repos: - repo: https://github.com/s0undt3ch/salt-rewrite # Automatically rewrite code with known rules - rev: 2.4.3 + rev: 2.4.4 hooks: - id: salt-rewrite alias: rewrite-docstrings diff --git a/pkg/tests/download/test_pkg_download.py b/pkg/tests/download/test_pkg_download.py index 5bb0e3a96a4..25b2bd89051 100644 --- a/pkg/tests/download/test_pkg_download.py +++ b/pkg/tests/download/test_pkg_download.py @@ -81,6 +81,11 @@ def root_url(salt_release): return _root_url +@pytest.fixture(scope="module") +def package_type(): + return os.environ.get("DOWNLOAD_TEST_PACKAGE_TYPE") + + def get_salt_release(): salt_release = os.environ.get("SALT_RELEASE") pkg_test_type = os.environ.get("PKG_TEST_TYPE", "install") @@ -130,9 +135,24 @@ def salt_release(): yield get_salt_release() +@pytest.fixture(scope="module") +def onedir_install_path(tmp_path_factory): + install_path = tmp_path_factory.mktemp("onedir_install") + yield install_path + shutil.rmtree(install_path, ignore_errors=True) + + @pytest.fixture(scope="module") def _setup_system( - tmp_path_factory, grains, shell, root_url, salt_release, gpg_key_name, repo_subpath + grains, + shell, + root_url, + salt_release, + gpg_key_name, + repo_subpath, + package_type, + tmp_path_factory, + onedir_install_path, ): downloads_path = tmp_path_factory.mktemp("downloads") try: @@ -144,6 +164,8 @@ def _setup_system( salt_release=salt_release, downloads_path=downloads_path, repo_subpath=repo_subpath, + package_type=package_type, + onedir_install_path=onedir_install_path, ): yield else: @@ -154,6 +176,8 @@ def _setup_system( salt_release=salt_release, downloads_path=downloads_path, repo_subpath=repo_subpath, + package_type=package_type, + onedir_install_path=onedir_install_path, ) elif grains["os"] == "Amazon": setup_redhat_family( @@ -210,6 +234,8 @@ def _setup_system( downloads_path=downloads_path, gpg_key_name=gpg_key_name, repo_subpath=repo_subpath, + package_type=package_type, + onedir_install_path=onedir_install_path, ) else: pytest.fail("Don't know how to handle %s", grains["osfinger"]) @@ -286,152 +312,237 @@ def setup_debian_family( downloads_path, gpg_key_name, repo_subpath, + package_type, + onedir_install_path, ): arch = os.environ.get("SALT_REPO_ARCH") or "amd64" - if arch == "aarch64": - arch = "arm64" - elif arch == "x86_64": - arch = "amd64" - ret = shell.run("apt-get", "update", "-y", check=False) if ret.returncode != 0: pytest.fail(str(ret)) - if repo_subpath == "minor": - repo_url_base = ( - f"{root_url}/{os_name}/{os_version}/{arch}/{repo_subpath}/{salt_release}" - ) - else: - repo_url_base = f"{root_url}/{os_name}/{os_version}/{arch}/{repo_subpath}" - gpg_file_url = f"{root_url}/{os_name}/{os_version}/{arch}/{gpg_key_name}" + if package_type == "package": + if arch == "aarch64": + arch = "arm64" + elif arch == "x86_64": + arch = "amd64" - try: - pytest.helpers.download_file(gpg_file_url, downloads_path / gpg_key_name) - except Exception as exc: - pytest.fail(f"Failed to download {gpg_file_url}: {exc}") - - salt_sources_path = downloads_path / "salt.list" - salt_sources_path.write_text( - f"deb [signed-by=/usr/share/keyrings/{gpg_key_name} arch={arch}] {repo_url_base} {os_codename} main\n" - ) - commands = [ - ( - "mv", - str(downloads_path / gpg_key_name), - f"/usr/share/keyrings/{gpg_key_name}", - ), - ( - "mv", - str(salt_sources_path), - "/etc/apt/sources.list.d/salt.list", - ), - ("apt-get", "install", "-y", "ca-certificates"), - ("update-ca-certificates",), - ("apt-get", "update"), - ( - "apt-get", - "install", - "-y", - "salt-master", - "salt-minion", - "salt-ssh", - "salt-syndic", - "salt-cloud", - "salt-api", - ), - ] - for cmd in commands: - ret = shell.run(*cmd) - if ret.returncode != 0: - pytest.fail(str(ret)) - - -def setup_macos(shell, root_url, salt_release, downloads_path, repo_subpath): - arch = os.environ.get("SALT_REPO_ARCH") or "x86_64" - if arch == "aarch64": - arch = "arm64" - - if packaging.version.parse(salt_release) > packaging.version.parse("3005"): - mac_pkg = f"salt-{salt_release}-py3-{arch}.pkg" if repo_subpath == "minor": - mac_pkg_url = f"{root_url}/macos/{repo_subpath}/{salt_release}/{mac_pkg}" + repo_url_base = f"{root_url}/{os_name}/{os_version}/{arch}/{repo_subpath}/{salt_release}" else: - mac_pkg_url = f"{root_url}/macos/{repo_subpath}/{mac_pkg}" + repo_url_base = f"{root_url}/{os_name}/{os_version}/{arch}/{repo_subpath}" + gpg_file_url = f"{root_url}/{os_name}/{os_version}/{arch}/{gpg_key_name}" + + try: + pytest.helpers.download_file(gpg_file_url, downloads_path / gpg_key_name) + except Exception as exc: + pytest.fail(f"Failed to download {gpg_file_url}: {exc}") + + salt_sources_path = downloads_path / "salt.list" + salt_sources_path.write_text( + f"deb [signed-by=/usr/share/keyrings/{gpg_key_name} arch={arch}] {repo_url_base} {os_codename} main\n" + ) + commands = [ + ( + "mv", + str(downloads_path / gpg_key_name), + f"/usr/share/keyrings/{gpg_key_name}", + ), + ( + "mv", + str(salt_sources_path), + "/etc/apt/sources.list.d/salt.list", + ), + ("apt-get", "install", "-y", "ca-certificates"), + ("update-ca-certificates",), + ("apt-get", "update"), + ( + "apt-get", + "install", + "-y", + "salt-master", + "salt-minion", + "salt-ssh", + "salt-syndic", + "salt-cloud", + "salt-api", + ), + ] + for cmd in commands: + ret = shell.run(*cmd) + if ret.returncode != 0: + pytest.fail(str(ret)) else: - mac_pkg_url = f"{root_url}/macos/{salt_release}/{mac_pkg}" - mac_pkg = f"salt-{salt_release}-macos-{arch}.pkg" + # We are testing the onedir download + onedir_name = f"salt-{salt_release}-onedir-linux-{arch}.tar.xz" + if repo_subpath == "minor": + repo_url_base = f"{root_url}/onedir/{repo_subpath}/{salt_release}" + else: + repo_url_base = f"{root_url}/onedir/{repo_subpath}" + onedir_url = f"{repo_url_base}/{onedir_name}" + onedir_location = downloads_path / onedir_name + onedir_extracted = onedir_install_path - mac_pkg_path = downloads_path / mac_pkg - pytest.helpers.download_file(mac_pkg_url, mac_pkg_path) + try: + pytest.helpers.download_file(onedir_url, onedir_location) + except Exception as exc: + pytest.fail(f"Failed to download {onedir_url}: {exc}") - ret = shell.run( - "installer", - "-pkg", - str(mac_pkg_path), - "-target", - "/", - check=False, - ) - assert ret.returncode == 0, ret + shell.run("tar", "xvf", str(onedir_location), "-C", str(onedir_extracted)) + + +def setup_macos( + shell, + root_url, + salt_release, + downloads_path, + repo_subpath, + package_type, + onedir_install_path, +): + arch = os.environ.get("SALT_REPO_ARCH") or "x86_64" + if package_type == "package": + if arch == "aarch64": + arch = "arm64" + + if packaging.version.parse(salt_release) > packaging.version.parse("3005"): + mac_pkg = f"salt-{salt_release}-py3-{arch}.pkg" + if repo_subpath == "minor": + mac_pkg_url = ( + f"{root_url}/macos/{repo_subpath}/{salt_release}/{mac_pkg}" + ) + else: + mac_pkg_url = f"{root_url}/macos/{repo_subpath}/{mac_pkg}" + else: + mac_pkg_url = f"{root_url}/macos/{salt_release}/{mac_pkg}" + mac_pkg = f"salt-{salt_release}-macos-{arch}.pkg" + + mac_pkg_path = downloads_path / mac_pkg + pytest.helpers.download_file(mac_pkg_url, mac_pkg_path) + + ret = shell.run( + "installer", + "-pkg", + str(mac_pkg_path), + "-target", + "/", + check=False, + ) + assert ret.returncode == 0, ret + else: + # We are testing the onedir download + onedir_name = f"salt-{salt_release}-onedir-darwin-{arch}.tar.xz" + if repo_subpath == "minor": + repo_url_base = f"{root_url}/onedir/{repo_subpath}/{salt_release}" + else: + repo_url_base = f"{root_url}/onedir/{repo_subpath}" + onedir_url = f"{repo_url_base}/{onedir_name}" + onedir_location = downloads_path / onedir_name + onedir_extracted = onedir_install_path + + try: + pytest.helpers.download_file(onedir_url, onedir_location) + except Exception as exc: + pytest.fail(f"Failed to download {onedir_url}: {exc}") + + shell.run("tar", "xvf", str(onedir_location), "-C", str(onedir_extracted)) @contextlib.contextmanager -def setup_windows(shell, root_url, salt_release, downloads_path, repo_subpath): +def setup_windows( + shell, + root_url, + salt_release, + downloads_path, + repo_subpath, + package_type, + onedir_install_path, +): try: - root_dir = pathlib.Path(r"C:\Program Files\Salt Project\Salt") - arch = os.environ.get("SALT_REPO_ARCH") or "amd64" - install_type = os.environ.get("INSTALL_TYPE") or "msi" - if packaging.version.parse(salt_release) > packaging.version.parse("3005"): - if install_type.lower() == "nsis": - if arch.lower() != "x86": - arch = arch.upper() - win_pkg = f"Salt-Minion-{salt_release}-Py3-{arch}-Setup.exe" + if package_type != "onedir": + root_dir = pathlib.Path(r"C:\Program Files\Salt Project\Salt") + + if packaging.version.parse(salt_release) > packaging.version.parse("3005"): + if package_type.lower() == "nsis": + if arch.lower() != "x86": + arch = arch.upper() + win_pkg = f"Salt-Minion-{salt_release}-Py3-{arch}-Setup.exe" + else: + if arch.lower() != "x86": + arch = arch.upper() + win_pkg = f"Salt-Minion-{salt_release}-Py3-{arch}.msi" + if repo_subpath == "minor": + win_pkg_url = ( + f"{root_url}/windows/{repo_subpath}/{salt_release}/{win_pkg}" + ) + else: + win_pkg_url = f"{root_url}/windows/{repo_subpath}/{win_pkg}" + ssm_bin = root_dir / "ssm.exe" else: - if arch.lower() != "x86": - arch = arch.upper() - win_pkg = f"Salt-Minion-{salt_release}-Py3-{arch}.msi" - if repo_subpath == "minor": - win_pkg_url = ( - f"{root_url}/windows/{repo_subpath}/{salt_release}/{win_pkg}" + win_pkg = f"salt-{salt_release}-windows-{arch}.exe" + win_pkg_url = f"{root_url}/windows/{salt_release}/{win_pkg}" + ssm_bin = root_dir / "bin" / "ssm_bin" + + pkg_path = downloads_path / win_pkg + + pytest.helpers.download_file(win_pkg_url, pkg_path) + if package_type.lower() == "nsis": + ret = shell.run(str(pkg_path), "/start-minion=0", "/S", check=False) + else: + ret = shell.run( + "msiexec", "/qn", "/i", str(pkg_path), 'START_MINION=""' ) + assert ret.returncode == 0, ret + + log.debug("Removing installed salt-minion service") + ret = shell.run( + "cmd", + "/c", + str(ssm_bin), + "remove", + "salt-minion", + "confirm", + check=False, + ) + assert ret.returncode == 0, ret + else: + # We are testing the onedir download + onedir_name = f"salt-{salt_release}-onedir-windows-{arch}.zip" + if repo_subpath == "minor": + repo_url_base = f"{root_url}/onedir/{repo_subpath}/{salt_release}" else: - win_pkg_url = f"{root_url}/windows/{repo_subpath}/{win_pkg}" - ssm_bin = root_dir / "ssm.exe" - else: - win_pkg = f"salt-{salt_release}-windows-{arch}.exe" - win_pkg_url = f"{root_url}/windows/{salt_release}/{win_pkg}" - ssm_bin = root_dir / "bin" / "ssm_bin" + repo_url_base = f"{root_url}/onedir/{repo_subpath}" + onedir_url = f"{repo_url_base}/{onedir_name}" + onedir_location = downloads_path / onedir_name + onedir_extracted = onedir_install_path - pkg_path = downloads_path / win_pkg + try: + pytest.helpers.download_file(onedir_url, onedir_location) + except Exception as exc: + pytest.fail(f"Failed to download {onedir_url}: {exc}") - pytest.helpers.download_file(win_pkg_url, pkg_path) - if install_type.lower() == "nsis": - ret = shell.run(str(pkg_path), "/start-minion=0", "/S", check=False) - else: - ret = shell.run("msiexec", "/qn", "/i", str(pkg_path), 'START_MINION=""') - assert ret.returncode == 0, ret - - log.debug("Removing installed salt-minion service") - ret = shell.run( - "cmd", "/c", str(ssm_bin), "remove", "salt-minion", "confirm", check=False - ) - assert ret.returncode == 0, ret + shell.run("unzip", str(onedir_location), "-d", str(onedir_extracted)) yield finally: # We need to uninstall the MSI packages, otherwise they will not install correctly - if install_type.lower() == "msi": + if package_type.lower() == "msi": ret = shell.run("msiexec", "/qn", "/x", str(pkg_path)) assert ret.returncode == 0, ret @pytest.fixture(scope="module") -def install_dir(_setup_system): - if platform.is_windows(): - return pathlib.Path(os.getenv("ProgramFiles"), "Salt Project", "Salt").resolve() - if platform.is_darwin(): - return pathlib.Path("/opt", "salt") - return pathlib.Path("/opt", "saltstack", "salt") +def install_dir(_setup_system, package_type, onedir_install_path): + if package_type != "onedir": + if platform.is_windows(): + return pathlib.Path( + os.getenv("ProgramFiles"), "Salt Project", "Salt" + ).resolve() + if platform.is_darwin(): + return pathlib.Path("/opt", "salt") + return pathlib.Path("/opt", "saltstack", "salt") + else: + # We are testing the onedir + return onedir_install_path / "salt" @pytest.fixture(scope="module")