Use `attrs` to simplify OS definitions

This commit is contained in:
Pedro Algarvio 2024-03-26 18:07:35 +00:00
parent 8d51ca91f2
commit d6ff5005da
17 changed files with 597 additions and 269 deletions

View file

@ -163,7 +163,7 @@ jobs:
macos-dependencies: macos-dependencies:
name: MacOS name: MacOS
runs-on: ${{ matrix.distro-slug }} runs-on: ${{ matrix.distro-slug == 'macos-13-arm64' && 'macos-13-xlarge' || matrix.distro-slug }}
timeout-minutes: 90 timeout-minutes: 90
strategy: strategy:
fail-fast: false fail-fast: false
@ -171,7 +171,7 @@ jobs:
include: include:
- distro-slug: macos-12 - distro-slug: macos-12
arch: x86_64 arch: x86_64
- distro-slug: macos-13-xlarge - distro-slug: macos-13-arm64
arch: arm64 arch: arm64
steps: steps:

View file

@ -491,7 +491,7 @@ jobs:
almalinux-8-pkg-tests: almalinux-8-pkg-tests:
name: Alma Linux 8 Package Test name: Alma Linux 8 Package Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["almalinux-8", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["all", "almalinux-8"]'), needs.prepare-workflow.outputs.os-labels) }}
needs: needs:
- prepare-workflow - prepare-workflow
- build-pkgs-onedir - build-pkgs-onedir
@ -512,7 +512,7 @@ jobs:
almalinux-8-arm64-pkg-tests: almalinux-8-arm64-pkg-tests:
name: Alma Linux 8 Arm64 Package Test name: Alma Linux 8 Arm64 Package Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["almalinux-8-arm64", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["all", "almalinux-8-arm64"]'), needs.prepare-workflow.outputs.os-labels) }}
needs: needs:
- prepare-workflow - prepare-workflow
- build-pkgs-onedir - build-pkgs-onedir
@ -533,7 +533,7 @@ jobs:
almalinux-9-pkg-tests: almalinux-9-pkg-tests:
name: Alma Linux 9 Package Test name: Alma Linux 9 Package Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["almalinux-9", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }}
needs: needs:
- prepare-workflow - prepare-workflow
- build-pkgs-onedir - build-pkgs-onedir
@ -554,7 +554,7 @@ jobs:
almalinux-9-arm64-pkg-tests: almalinux-9-arm64-pkg-tests:
name: Alma Linux 9 Arm64 Package Test name: Alma Linux 9 Arm64 Package Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["almalinux-9-arm64", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["all", "almalinux-9-arm64"]'), needs.prepare-workflow.outputs.os-labels) }}
needs: needs:
- prepare-workflow - prepare-workflow
- build-pkgs-onedir - build-pkgs-onedir
@ -575,7 +575,7 @@ jobs:
amazonlinux-2-pkg-tests: amazonlinux-2-pkg-tests:
name: Amazon Linux 2 Package Test name: Amazon Linux 2 Package Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["amazonlinux-2", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["all", "amazonlinux-2"]'), needs.prepare-workflow.outputs.os-labels) }}
needs: needs:
- prepare-workflow - prepare-workflow
- build-pkgs-onedir - build-pkgs-onedir
@ -596,7 +596,7 @@ jobs:
amazonlinux-2-arm64-pkg-tests: amazonlinux-2-arm64-pkg-tests:
name: Amazon Linux 2 Arm64 Package Test name: Amazon Linux 2 Arm64 Package Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["amazonlinux-2-arm64", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["all", "amazonlinux-2-arm64"]'), needs.prepare-workflow.outputs.os-labels) }}
needs: needs:
- prepare-workflow - prepare-workflow
- build-pkgs-onedir - build-pkgs-onedir
@ -617,7 +617,7 @@ jobs:
amazonlinux-2023-pkg-tests: amazonlinux-2023-pkg-tests:
name: Amazon Linux 2023 Package Test name: Amazon Linux 2023 Package Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["amazonlinux-2023", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["all", "amazonlinux-2023"]'), needs.prepare-workflow.outputs.os-labels) }}
needs: needs:
- prepare-workflow - prepare-workflow
- build-pkgs-onedir - build-pkgs-onedir
@ -638,7 +638,7 @@ jobs:
amazonlinux-2023-arm64-pkg-tests: amazonlinux-2023-arm64-pkg-tests:
name: Amazon Linux 2023 Arm64 Package Test name: Amazon Linux 2023 Arm64 Package Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["amazonlinux-2023-arm64", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }}
needs: needs:
- prepare-workflow - prepare-workflow
- build-pkgs-onedir - build-pkgs-onedir
@ -659,7 +659,7 @@ jobs:
centos-7-pkg-tests: centos-7-pkg-tests:
name: CentOS 7 Package Test name: CentOS 7 Package Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["centos-7", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["all", "centos-7"]'), needs.prepare-workflow.outputs.os-labels) }}
needs: needs:
- prepare-workflow - prepare-workflow
- build-pkgs-onedir - build-pkgs-onedir
@ -680,7 +680,7 @@ jobs:
debian-10-pkg-tests: debian-10-pkg-tests:
name: Debian 10 Package Test name: Debian 10 Package Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["debian-10", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["all", "debian-10"]'), needs.prepare-workflow.outputs.os-labels) }}
needs: needs:
- prepare-workflow - prepare-workflow
- build-pkgs-onedir - build-pkgs-onedir
@ -701,7 +701,7 @@ jobs:
debian-11-pkg-tests: debian-11-pkg-tests:
name: Debian 11 Package Test name: Debian 11 Package Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["debian-11", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["all", "debian-11"]'), needs.prepare-workflow.outputs.os-labels) }}
needs: needs:
- prepare-workflow - prepare-workflow
- build-pkgs-onedir - build-pkgs-onedir
@ -722,7 +722,7 @@ jobs:
debian-11-arm64-pkg-tests: debian-11-arm64-pkg-tests:
name: Debian 11 Arm64 Package Test name: Debian 11 Arm64 Package Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["debian-11-arm64", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["all", "debian-11-arm64"]'), needs.prepare-workflow.outputs.os-labels) }}
needs: needs:
- prepare-workflow - prepare-workflow
- build-pkgs-onedir - build-pkgs-onedir
@ -743,7 +743,7 @@ jobs:
debian-12-pkg-tests: debian-12-pkg-tests:
name: Debian 12 Package Test name: Debian 12 Package Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["debian-12", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["all", "debian-12"]'), needs.prepare-workflow.outputs.os-labels) }}
needs: needs:
- prepare-workflow - prepare-workflow
- build-pkgs-onedir - build-pkgs-onedir
@ -764,7 +764,7 @@ jobs:
debian-12-arm64-pkg-tests: debian-12-arm64-pkg-tests:
name: Debian 12 Arm64 Package Test name: Debian 12 Arm64 Package Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["debian-12-arm64", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["all", "debian-12-arm64"]'), needs.prepare-workflow.outputs.os-labels) }}
needs: needs:
- prepare-workflow - prepare-workflow
- build-pkgs-onedir - build-pkgs-onedir
@ -785,7 +785,7 @@ jobs:
photonos-4-pkg-tests: photonos-4-pkg-tests:
name: Photon OS 4 Package Test name: Photon OS 4 Package Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["photonos-4", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["all", "photonos-4"]'), needs.prepare-workflow.outputs.os-labels) }}
needs: needs:
- prepare-workflow - prepare-workflow
- build-pkgs-onedir - build-pkgs-onedir
@ -807,7 +807,7 @@ jobs:
photonos-4-arm64-pkg-tests: photonos-4-arm64-pkg-tests:
name: Photon OS 4 Arm64 Package Test name: Photon OS 4 Arm64 Package Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["photonos-4-arm64", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["all", "photonos-4-arm64"]'), needs.prepare-workflow.outputs.os-labels) }}
needs: needs:
- prepare-workflow - prepare-workflow
- build-pkgs-onedir - build-pkgs-onedir
@ -829,7 +829,7 @@ jobs:
photonos-5-pkg-tests: photonos-5-pkg-tests:
name: Photon OS 5 Package Test name: Photon OS 5 Package Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["photonos-5", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["all", "photonos-5"]'), needs.prepare-workflow.outputs.os-labels) }}
needs: needs:
- prepare-workflow - prepare-workflow
- build-pkgs-onedir - build-pkgs-onedir
@ -851,7 +851,7 @@ jobs:
photonos-5-arm64-pkg-tests: photonos-5-arm64-pkg-tests:
name: Photon OS 5 Arm64 Package Test name: Photon OS 5 Arm64 Package Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["photonos-5-arm64", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["all", "photonos-5-arm64"]'), needs.prepare-workflow.outputs.os-labels) }}
needs: needs:
- prepare-workflow - prepare-workflow
- build-pkgs-onedir - build-pkgs-onedir
@ -873,7 +873,7 @@ jobs:
ubuntu-2004-pkg-tests: ubuntu-2004-pkg-tests:
name: Ubuntu 20.04 Package Test name: Ubuntu 20.04 Package Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["ubuntu-20.04", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["all", "ubuntu-20.04"]'), needs.prepare-workflow.outputs.os-labels) }}
needs: needs:
- prepare-workflow - prepare-workflow
- build-pkgs-onedir - build-pkgs-onedir
@ -894,7 +894,7 @@ jobs:
ubuntu-2004-arm64-pkg-tests: ubuntu-2004-arm64-pkg-tests:
name: Ubuntu 20.04 Arm64 Package Test name: Ubuntu 20.04 Arm64 Package Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["ubuntu-20.04-arm64", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["all", "ubuntu-20.04-arm64"]'), needs.prepare-workflow.outputs.os-labels) }}
needs: needs:
- prepare-workflow - prepare-workflow
- build-pkgs-onedir - build-pkgs-onedir
@ -915,7 +915,7 @@ jobs:
ubuntu-2204-pkg-tests: ubuntu-2204-pkg-tests:
name: Ubuntu 22.04 Package Test name: Ubuntu 22.04 Package Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["ubuntu-22.04", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["all", "ubuntu-22.04"]'), needs.prepare-workflow.outputs.os-labels) }}
needs: needs:
- prepare-workflow - prepare-workflow
- build-pkgs-onedir - build-pkgs-onedir
@ -936,7 +936,7 @@ jobs:
ubuntu-2204-arm64-pkg-tests: ubuntu-2204-arm64-pkg-tests:
name: Ubuntu 22.04 Arm64 Package Test name: Ubuntu 22.04 Arm64 Package Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["ubuntu-22.04-arm64", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }}
needs: needs:
- prepare-workflow - prepare-workflow
- build-pkgs-onedir - build-pkgs-onedir
@ -957,7 +957,7 @@ jobs:
macos-12-pkg-tests: macos-12-pkg-tests:
name: macOS 12 Package Test name: macOS 12 Package Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] && contains(fromJSON('["macos-12", "macos-12", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] && contains(fromJSON('["all", "macos-12"]'), needs.prepare-workflow.outputs.os-labels) }}
needs: needs:
- prepare-workflow - prepare-workflow
- build-pkgs-onedir - build-pkgs-onedir
@ -965,6 +965,7 @@ jobs:
uses: ./.github/workflows/test-packages-action-macos.yml uses: ./.github/workflows/test-packages-action-macos.yml
with: with:
distro-slug: macos-12 distro-slug: macos-12
runner: macos-12
nox-session: ci-test-onedir nox-session: ci-test-onedir
platform: macos platform: macos
arch: x86_64 arch: x86_64
@ -978,7 +979,7 @@ jobs:
macos-13-pkg-tests: macos-13-pkg-tests:
name: macOS 13 Package Test name: macOS 13 Package Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] && contains(fromJSON('["macos-13", "macos-13", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] && contains(fromJSON('["all", "macos-13"]'), needs.prepare-workflow.outputs.os-labels) }}
needs: needs:
- prepare-workflow - prepare-workflow
- build-pkgs-onedir - build-pkgs-onedir
@ -986,6 +987,7 @@ jobs:
uses: ./.github/workflows/test-packages-action-macos.yml uses: ./.github/workflows/test-packages-action-macos.yml
with: with:
distro-slug: macos-13 distro-slug: macos-13
runner: macos-13
nox-session: ci-test-onedir nox-session: ci-test-onedir
platform: macos platform: macos
arch: x86_64 arch: x86_64
@ -997,16 +999,17 @@ jobs:
skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }} skip-code-coverage: ${{ fromJSON(needs.prepare-workflow.outputs.testrun)['skip_code_coverage'] }}
testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }}
macos-13-xlarge-pkg-tests: macos-13-arm64-pkg-tests:
name: macOS 13 Arm64 Package Test name: macOS 13 Arm64 Package Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] && contains(fromJSON('["macos-13-xlarge", "macos-13-arm64", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }}
needs: needs:
- prepare-workflow - prepare-workflow
- build-pkgs-onedir - build-pkgs-onedir
- build-ci-deps - build-ci-deps
uses: ./.github/workflows/test-packages-action-macos.yml uses: ./.github/workflows/test-packages-action-macos.yml
with: with:
distro-slug: macos-13-xlarge distro-slug: macos-13-arm64
runner: macos-13-xlarge
nox-session: ci-test-onedir nox-session: ci-test-onedir
platform: macos platform: macos
arch: arm64 arch: arm64
@ -1020,7 +1023,7 @@ jobs:
windows-2016-nsis-pkg-tests: windows-2016-nsis-pkg-tests:
name: Windows 2016 NSIS Package Test name: Windows 2016 NSIS Package Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["windows-2016", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["all", "windows-2016"]'), needs.prepare-workflow.outputs.os-labels) }}
needs: needs:
- prepare-workflow - prepare-workflow
- build-pkgs-onedir - build-pkgs-onedir
@ -1041,7 +1044,7 @@ jobs:
windows-2016-msi-pkg-tests: windows-2016-msi-pkg-tests:
name: Windows 2016 MSI Package Test name: Windows 2016 MSI Package Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["windows-2016", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["all", "windows-2016"]'), needs.prepare-workflow.outputs.os-labels) }}
needs: needs:
- prepare-workflow - prepare-workflow
- build-pkgs-onedir - build-pkgs-onedir
@ -1062,7 +1065,7 @@ jobs:
windows-2019-nsis-pkg-tests: windows-2019-nsis-pkg-tests:
name: Windows 2019 NSIS Package Test name: Windows 2019 NSIS Package Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["windows-2019", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["all", "windows-2019"]'), needs.prepare-workflow.outputs.os-labels) }}
needs: needs:
- prepare-workflow - prepare-workflow
- build-pkgs-onedir - build-pkgs-onedir
@ -1083,7 +1086,7 @@ jobs:
windows-2019-msi-pkg-tests: windows-2019-msi-pkg-tests:
name: Windows 2019 MSI Package Test name: Windows 2019 MSI Package Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["windows-2019", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["all", "windows-2019"]'), needs.prepare-workflow.outputs.os-labels) }}
needs: needs:
- prepare-workflow - prepare-workflow
- build-pkgs-onedir - build-pkgs-onedir
@ -1104,7 +1107,7 @@ jobs:
windows-2022-nsis-pkg-tests: windows-2022-nsis-pkg-tests:
name: Windows 2022 NSIS Package Test name: Windows 2022 NSIS Package Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["windows-2022", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }}
needs: needs:
- prepare-workflow - prepare-workflow
- build-pkgs-onedir - build-pkgs-onedir
@ -1125,7 +1128,7 @@ jobs:
windows-2022-msi-pkg-tests: windows-2022-msi-pkg-tests:
name: Windows 2022 MSI Package Test name: Windows 2022 MSI Package Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["windows-2022", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }}
needs: needs:
- prepare-workflow - prepare-workflow
- build-pkgs-onedir - build-pkgs-onedir
@ -1146,7 +1149,7 @@ jobs:
windows-2016: windows-2016:
name: Windows 2016 Test name: Windows 2016 Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["windows-2016", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["all", "windows-2016"]'), needs.prepare-workflow.outputs.os-labels) }}
needs: needs:
- prepare-workflow - prepare-workflow
- build-ci-deps - build-ci-deps
@ -1167,7 +1170,7 @@ jobs:
windows-2019: windows-2019:
name: Windows 2019 Test name: Windows 2019 Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["windows-2019", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["all", "windows-2019"]'), needs.prepare-workflow.outputs.os-labels) }}
needs: needs:
- prepare-workflow - prepare-workflow
- build-ci-deps - build-ci-deps
@ -1188,7 +1191,7 @@ jobs:
windows-2022: windows-2022:
name: Windows 2022 Test name: Windows 2022 Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["windows-2022", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }}
needs: needs:
- prepare-workflow - prepare-workflow
- build-ci-deps - build-ci-deps
@ -1209,13 +1212,14 @@ jobs:
macos-12: macos-12:
name: macOS 12 Test name: macOS 12 Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] && contains(fromJSON('["macos-12", "macos-12", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] && contains(fromJSON('["all", "macos-12"]'), needs.prepare-workflow.outputs.os-labels) }}
needs: needs:
- prepare-workflow - prepare-workflow
- build-ci-deps - build-ci-deps
uses: ./.github/workflows/test-action-macos.yml uses: ./.github/workflows/test-action-macos.yml
with: with:
distro-slug: macos-12 distro-slug: macos-12
runner: macos-12
nox-session: ci-test-onedir nox-session: ci-test-onedir
platform: macos platform: macos
arch: x86_64 arch: x86_64
@ -1230,13 +1234,14 @@ jobs:
macos-13: macos-13:
name: macOS 13 Test name: macOS 13 Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] && contains(fromJSON('["macos-13", "macos-13", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] && contains(fromJSON('["all", "macos-13"]'), needs.prepare-workflow.outputs.os-labels) }}
needs: needs:
- prepare-workflow - prepare-workflow
- build-ci-deps - build-ci-deps
uses: ./.github/workflows/test-action-macos.yml uses: ./.github/workflows/test-action-macos.yml
with: with:
distro-slug: macos-13 distro-slug: macos-13
runner: macos-13
nox-session: ci-test-onedir nox-session: ci-test-onedir
platform: macos platform: macos
arch: x86_64 arch: x86_64
@ -1249,15 +1254,16 @@ jobs:
workflow-slug: ci workflow-slug: ci
default-timeout: 180 default-timeout: 180
macos-13-xlarge: macos-13-arm64:
name: macOS 13 Arm64 Test name: macOS 13 Arm64 Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] && contains(fromJSON('["macos-13-xlarge", "macos-13-arm64", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }}
needs: needs:
- prepare-workflow - prepare-workflow
- build-ci-deps - build-ci-deps
uses: ./.github/workflows/test-action-macos.yml uses: ./.github/workflows/test-action-macos.yml
with: with:
distro-slug: macos-13-xlarge distro-slug: macos-13-arm64
runner: macos-13-xlarge
nox-session: ci-test-onedir nox-session: ci-test-onedir
platform: macos platform: macos
arch: arm64 arch: arm64
@ -1272,7 +1278,7 @@ jobs:
almalinux-8: almalinux-8:
name: Alma Linux 8 Test name: Alma Linux 8 Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["almalinux-8", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["all", "almalinux-8"]'), needs.prepare-workflow.outputs.os-labels) }}
needs: needs:
- prepare-workflow - prepare-workflow
- build-ci-deps - build-ci-deps
@ -1293,7 +1299,7 @@ jobs:
almalinux-8-arm64: almalinux-8-arm64:
name: Alma Linux 8 Arm64 Test name: Alma Linux 8 Arm64 Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["almalinux-8-arm64", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["all", "almalinux-8-arm64"]'), needs.prepare-workflow.outputs.os-labels) }}
needs: needs:
- prepare-workflow - prepare-workflow
- build-ci-deps - build-ci-deps
@ -1314,7 +1320,7 @@ jobs:
almalinux-9: almalinux-9:
name: Alma Linux 9 Test name: Alma Linux 9 Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["almalinux-9", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }}
needs: needs:
- prepare-workflow - prepare-workflow
- build-ci-deps - build-ci-deps
@ -1335,7 +1341,7 @@ jobs:
almalinux-9-arm64: almalinux-9-arm64:
name: Alma Linux 9 Arm64 Test name: Alma Linux 9 Arm64 Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["almalinux-9-arm64", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["all", "almalinux-9-arm64"]'), needs.prepare-workflow.outputs.os-labels) }}
needs: needs:
- prepare-workflow - prepare-workflow
- build-ci-deps - build-ci-deps
@ -1356,7 +1362,7 @@ jobs:
amazonlinux-2: amazonlinux-2:
name: Amazon Linux 2 Test name: Amazon Linux 2 Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["amazonlinux-2", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["all", "amazonlinux-2"]'), needs.prepare-workflow.outputs.os-labels) }}
needs: needs:
- prepare-workflow - prepare-workflow
- build-ci-deps - build-ci-deps
@ -1377,7 +1383,7 @@ jobs:
amazonlinux-2-arm64: amazonlinux-2-arm64:
name: Amazon Linux 2 Arm64 Test name: Amazon Linux 2 Arm64 Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["amazonlinux-2-arm64", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["all", "amazonlinux-2-arm64"]'), needs.prepare-workflow.outputs.os-labels) }}
needs: needs:
- prepare-workflow - prepare-workflow
- build-ci-deps - build-ci-deps
@ -1398,7 +1404,7 @@ jobs:
amazonlinux-2023: amazonlinux-2023:
name: Amazon Linux 2023 Test name: Amazon Linux 2023 Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["amazonlinux-2023", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["all", "amazonlinux-2023"]'), needs.prepare-workflow.outputs.os-labels) }}
needs: needs:
- prepare-workflow - prepare-workflow
- build-ci-deps - build-ci-deps
@ -1419,7 +1425,7 @@ jobs:
amazonlinux-2023-arm64: amazonlinux-2023-arm64:
name: Amazon Linux 2023 Arm64 Test name: Amazon Linux 2023 Arm64 Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["amazonlinux-2023-arm64", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }}
needs: needs:
- prepare-workflow - prepare-workflow
- build-ci-deps - build-ci-deps
@ -1440,7 +1446,7 @@ jobs:
archlinux-lts: archlinux-lts:
name: Arch Linux LTS Test name: Arch Linux LTS Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["archlinux-lts", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }}
needs: needs:
- prepare-workflow - prepare-workflow
- build-ci-deps - build-ci-deps
@ -1461,7 +1467,7 @@ jobs:
centos-7: centos-7:
name: CentOS 7 Test name: CentOS 7 Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["centos-7", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["all", "centos-7"]'), needs.prepare-workflow.outputs.os-labels) }}
needs: needs:
- prepare-workflow - prepare-workflow
- build-ci-deps - build-ci-deps
@ -1482,7 +1488,7 @@ jobs:
debian-10: debian-10:
name: Debian 10 Test name: Debian 10 Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["debian-10", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["all", "debian-10"]'), needs.prepare-workflow.outputs.os-labels) }}
needs: needs:
- prepare-workflow - prepare-workflow
- build-ci-deps - build-ci-deps
@ -1503,7 +1509,7 @@ jobs:
debian-11: debian-11:
name: Debian 11 Test name: Debian 11 Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["debian-11", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["all", "debian-11"]'), needs.prepare-workflow.outputs.os-labels) }}
needs: needs:
- prepare-workflow - prepare-workflow
- build-ci-deps - build-ci-deps
@ -1524,7 +1530,7 @@ jobs:
debian-11-arm64: debian-11-arm64:
name: Debian 11 Arm64 Test name: Debian 11 Arm64 Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["debian-11-arm64", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["all", "debian-11-arm64"]'), needs.prepare-workflow.outputs.os-labels) }}
needs: needs:
- prepare-workflow - prepare-workflow
- build-ci-deps - build-ci-deps
@ -1545,7 +1551,7 @@ jobs:
debian-12: debian-12:
name: Debian 12 Test name: Debian 12 Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["debian-12", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["all", "debian-12"]'), needs.prepare-workflow.outputs.os-labels) }}
needs: needs:
- prepare-workflow - prepare-workflow
- build-ci-deps - build-ci-deps
@ -1566,7 +1572,7 @@ jobs:
debian-12-arm64: debian-12-arm64:
name: Debian 12 Arm64 Test name: Debian 12 Arm64 Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["debian-12-arm64", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["all", "debian-12-arm64"]'), needs.prepare-workflow.outputs.os-labels) }}
needs: needs:
- prepare-workflow - prepare-workflow
- build-ci-deps - build-ci-deps
@ -1587,7 +1593,7 @@ jobs:
fedora-39: fedora-39:
name: Fedora 39 Test name: Fedora 39 Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["fedora-39", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["all", "fedora-39"]'), needs.prepare-workflow.outputs.os-labels) }}
needs: needs:
- prepare-workflow - prepare-workflow
- build-ci-deps - build-ci-deps
@ -1608,7 +1614,7 @@ jobs:
opensuse-15: opensuse-15:
name: Opensuse 15 Test name: Opensuse 15 Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["opensuse-15", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["all", "opensuse-15"]'), needs.prepare-workflow.outputs.os-labels) }}
needs: needs:
- prepare-workflow - prepare-workflow
- build-ci-deps - build-ci-deps
@ -1629,7 +1635,7 @@ jobs:
photonos-4: photonos-4:
name: Photon OS 4 Test name: Photon OS 4 Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["photonos-4", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["all", "photonos-4"]'), needs.prepare-workflow.outputs.os-labels) }}
needs: needs:
- prepare-workflow - prepare-workflow
- build-ci-deps - build-ci-deps
@ -1651,7 +1657,7 @@ jobs:
photonos-4-arm64: photonos-4-arm64:
name: Photon OS 4 Arm64 Test name: Photon OS 4 Arm64 Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["photonos-4-arm64", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["all", "photonos-4-arm64"]'), needs.prepare-workflow.outputs.os-labels) }}
needs: needs:
- prepare-workflow - prepare-workflow
- build-ci-deps - build-ci-deps
@ -1673,7 +1679,7 @@ jobs:
photonos-5: photonos-5:
name: Photon OS 5 Test name: Photon OS 5 Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["photonos-5", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["all", "photonos-5"]'), needs.prepare-workflow.outputs.os-labels) }}
needs: needs:
- prepare-workflow - prepare-workflow
- build-ci-deps - build-ci-deps
@ -1695,7 +1701,7 @@ jobs:
photonos-5-arm64: photonos-5-arm64:
name: Photon OS 5 Arm64 Test name: Photon OS 5 Arm64 Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["photonos-5-arm64", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["all", "photonos-5-arm64"]'), needs.prepare-workflow.outputs.os-labels) }}
needs: needs:
- prepare-workflow - prepare-workflow
- build-ci-deps - build-ci-deps
@ -1717,7 +1723,7 @@ jobs:
ubuntu-2004: ubuntu-2004:
name: Ubuntu 20.04 Test name: Ubuntu 20.04 Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["ubuntu-20.04", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["all", "ubuntu-20.04"]'), needs.prepare-workflow.outputs.os-labels) }}
needs: needs:
- prepare-workflow - prepare-workflow
- build-ci-deps - build-ci-deps
@ -1738,7 +1744,7 @@ jobs:
ubuntu-2004-arm64: ubuntu-2004-arm64:
name: Ubuntu 20.04 Arm64 Test name: Ubuntu 20.04 Arm64 Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["ubuntu-20.04-arm64", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["all", "ubuntu-20.04-arm64"]'), needs.prepare-workflow.outputs.os-labels) }}
needs: needs:
- prepare-workflow - prepare-workflow
- build-ci-deps - build-ci-deps
@ -1759,7 +1765,7 @@ jobs:
ubuntu-2204: ubuntu-2204:
name: Ubuntu 22.04 Test name: Ubuntu 22.04 Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["ubuntu-22.04", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["all", "ubuntu-22.04"]'), needs.prepare-workflow.outputs.os-labels) }}
needs: needs:
- prepare-workflow - prepare-workflow
- build-ci-deps - build-ci-deps
@ -1780,7 +1786,7 @@ jobs:
ubuntu-2204-arm64: ubuntu-2204-arm64:
name: Ubuntu 22.04 Arm64 Test name: Ubuntu 22.04 Arm64 Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["ubuntu-22.04-arm64", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }}
needs: needs:
- prepare-workflow - prepare-workflow
- build-ci-deps - build-ci-deps
@ -1811,7 +1817,7 @@ jobs:
- windows-2022 - windows-2022
- macos-12 - macos-12
- macos-13 - macos-13
- macos-13-xlarge - macos-13-arm64
- almalinux-8 - almalinux-8
- almalinux-8-arm64 - almalinux-8-arm64
- almalinux-9 - almalinux-9
@ -1965,7 +1971,7 @@ jobs:
- windows-2022 - windows-2022
- macos-12 - macos-12
- macos-13 - macos-13
- macos-13-xlarge - macos-13-arm64
- almalinux-8 - almalinux-8
- almalinux-8-arm64 - almalinux-8-arm64
- almalinux-9 - almalinux-9
@ -2015,7 +2021,7 @@ jobs:
- ubuntu-2204-arm64-pkg-tests - ubuntu-2204-arm64-pkg-tests
- macos-12-pkg-tests - macos-12-pkg-tests
- macos-13-pkg-tests - macos-13-pkg-tests
- macos-13-xlarge-pkg-tests - macos-13-arm64-pkg-tests
- windows-2016-nsis-pkg-tests - windows-2016-nsis-pkg-tests
- windows-2016-msi-pkg-tests - windows-2016-msi-pkg-tests
- windows-2019-nsis-pkg-tests - windows-2019-nsis-pkg-tests

View file

@ -1022,6 +1022,7 @@ jobs:
uses: ./.github/workflows/test-packages-action-macos.yml uses: ./.github/workflows/test-packages-action-macos.yml
with: with:
distro-slug: macos-12 distro-slug: macos-12
runner: macos-12
nox-session: ci-test-onedir nox-session: ci-test-onedir
platform: macos platform: macos
arch: x86_64 arch: x86_64
@ -1043,6 +1044,7 @@ jobs:
uses: ./.github/workflows/test-packages-action-macos.yml uses: ./.github/workflows/test-packages-action-macos.yml
with: with:
distro-slug: macos-13 distro-slug: macos-13
runner: macos-13
nox-session: ci-test-onedir nox-session: ci-test-onedir
platform: macos platform: macos
arch: x86_64 arch: x86_64
@ -1054,7 +1056,7 @@ jobs:
skip-code-coverage: false skip-code-coverage: false
testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }}
macos-13-xlarge-pkg-tests: macos-13-arm64-pkg-tests:
name: macOS 13 Arm64 Package Test name: macOS 13 Arm64 Package Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }}
needs: needs:
@ -1063,7 +1065,8 @@ jobs:
- build-ci-deps - build-ci-deps
uses: ./.github/workflows/test-packages-action-macos.yml uses: ./.github/workflows/test-packages-action-macos.yml
with: with:
distro-slug: macos-13-xlarge distro-slug: macos-13-arm64
runner: macos-13-xlarge
nox-session: ci-test-onedir nox-session: ci-test-onedir
platform: macos platform: macos
arch: arm64 arch: arm64
@ -1273,6 +1276,7 @@ jobs:
uses: ./.github/workflows/test-action-macos.yml uses: ./.github/workflows/test-action-macos.yml
with: with:
distro-slug: macos-12 distro-slug: macos-12
runner: macos-12
nox-session: ci-test-onedir nox-session: ci-test-onedir
platform: macos platform: macos
arch: x86_64 arch: x86_64
@ -1294,6 +1298,7 @@ jobs:
uses: ./.github/workflows/test-action-macos.yml uses: ./.github/workflows/test-action-macos.yml
with: with:
distro-slug: macos-13 distro-slug: macos-13
runner: macos-13
nox-session: ci-test-onedir nox-session: ci-test-onedir
platform: macos platform: macos
arch: x86_64 arch: x86_64
@ -1306,7 +1311,7 @@ jobs:
workflow-slug: nightly workflow-slug: nightly
default-timeout: 360 default-timeout: 360
macos-13-xlarge: macos-13-arm64:
name: macOS 13 Arm64 Test name: macOS 13 Arm64 Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }}
needs: needs:
@ -1314,7 +1319,8 @@ jobs:
- build-ci-deps - build-ci-deps
uses: ./.github/workflows/test-action-macos.yml uses: ./.github/workflows/test-action-macos.yml
with: with:
distro-slug: macos-13-xlarge distro-slug: macos-13-arm64
runner: macos-13-xlarge
nox-session: ci-test-onedir nox-session: ci-test-onedir
platform: macos platform: macos
arch: arm64 arch: arm64
@ -1868,7 +1874,7 @@ jobs:
- windows-2022 - windows-2022
- macos-12 - macos-12
- macos-13 - macos-13
- macos-13-xlarge - macos-13-arm64
- almalinux-8 - almalinux-8
- almalinux-8-arm64 - almalinux-8-arm64
- almalinux-9 - almalinux-9
@ -2778,7 +2784,7 @@ jobs:
- windows-2022 - windows-2022
- macos-12 - macos-12
- macos-13 - macos-13
- macos-13-xlarge - macos-13-arm64
- almalinux-8 - almalinux-8
- almalinux-8-arm64 - almalinux-8-arm64
- almalinux-9 - almalinux-9
@ -2886,7 +2892,7 @@ jobs:
- ubuntu-2204-arm64-pkg-tests - ubuntu-2204-arm64-pkg-tests
- macos-12-pkg-tests - macos-12-pkg-tests
- macos-13-pkg-tests - macos-13-pkg-tests
- macos-13-xlarge-pkg-tests - macos-13-arm64-pkg-tests
- windows-2016-nsis-pkg-tests - windows-2016-nsis-pkg-tests
- windows-2016-msi-pkg-tests - windows-2016-msi-pkg-tests
- windows-2019-nsis-pkg-tests - windows-2019-nsis-pkg-tests

View file

@ -999,6 +999,7 @@ jobs:
uses: ./.github/workflows/test-packages-action-macos.yml uses: ./.github/workflows/test-packages-action-macos.yml
with: with:
distro-slug: macos-12 distro-slug: macos-12
runner: macos-12
nox-session: ci-test-onedir nox-session: ci-test-onedir
platform: macos platform: macos
arch: x86_64 arch: x86_64
@ -1020,6 +1021,7 @@ jobs:
uses: ./.github/workflows/test-packages-action-macos.yml uses: ./.github/workflows/test-packages-action-macos.yml
with: with:
distro-slug: macos-13 distro-slug: macos-13
runner: macos-13
nox-session: ci-test-onedir nox-session: ci-test-onedir
platform: macos platform: macos
arch: x86_64 arch: x86_64
@ -1031,7 +1033,7 @@ jobs:
skip-code-coverage: false skip-code-coverage: false
testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }}
macos-13-xlarge-pkg-tests: macos-13-arm64-pkg-tests:
name: macOS 13 Arm64 Package Test name: macOS 13 Arm64 Package Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }}
needs: needs:
@ -1040,7 +1042,8 @@ jobs:
- build-ci-deps - build-ci-deps
uses: ./.github/workflows/test-packages-action-macos.yml uses: ./.github/workflows/test-packages-action-macos.yml
with: with:
distro-slug: macos-13-xlarge distro-slug: macos-13-arm64
runner: macos-13-xlarge
nox-session: ci-test-onedir nox-session: ci-test-onedir
platform: macos platform: macos
arch: arm64 arch: arm64
@ -1250,6 +1253,7 @@ jobs:
uses: ./.github/workflows/test-action-macos.yml uses: ./.github/workflows/test-action-macos.yml
with: with:
distro-slug: macos-12 distro-slug: macos-12
runner: macos-12
nox-session: ci-test-onedir nox-session: ci-test-onedir
platform: macos platform: macos
arch: x86_64 arch: x86_64
@ -1271,6 +1275,7 @@ jobs:
uses: ./.github/workflows/test-action-macos.yml uses: ./.github/workflows/test-action-macos.yml
with: with:
distro-slug: macos-13 distro-slug: macos-13
runner: macos-13
nox-session: ci-test-onedir nox-session: ci-test-onedir
platform: macos platform: macos
arch: x86_64 arch: x86_64
@ -1283,7 +1288,7 @@ jobs:
workflow-slug: scheduled workflow-slug: scheduled
default-timeout: 360 default-timeout: 360
macos-13-xlarge: macos-13-arm64:
name: macOS 13 Arm64 Test name: macOS 13 Arm64 Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }}
needs: needs:
@ -1291,7 +1296,8 @@ jobs:
- build-ci-deps - build-ci-deps
uses: ./.github/workflows/test-action-macos.yml uses: ./.github/workflows/test-action-macos.yml
with: with:
distro-slug: macos-13-xlarge distro-slug: macos-13-arm64
runner: macos-13-xlarge
nox-session: ci-test-onedir nox-session: ci-test-onedir
platform: macos platform: macos
arch: arm64 arch: arm64
@ -1845,7 +1851,7 @@ jobs:
- windows-2022 - windows-2022
- macos-12 - macos-12
- macos-13 - macos-13
- macos-13-xlarge - macos-13-arm64
- almalinux-8 - almalinux-8
- almalinux-8-arm64 - almalinux-8-arm64
- almalinux-9 - almalinux-9
@ -2001,7 +2007,7 @@ jobs:
- windows-2022 - windows-2022
- macos-12 - macos-12
- macos-13 - macos-13
- macos-13-xlarge - macos-13-arm64
- almalinux-8 - almalinux-8
- almalinux-8-arm64 - almalinux-8-arm64
- almalinux-9 - almalinux-9
@ -2051,7 +2057,7 @@ jobs:
- ubuntu-2204-arm64-pkg-tests - ubuntu-2204-arm64-pkg-tests
- macos-12-pkg-tests - macos-12-pkg-tests
- macos-13-pkg-tests - macos-13-pkg-tests
- macos-13-xlarge-pkg-tests - macos-13-arm64-pkg-tests
- windows-2016-nsis-pkg-tests - windows-2016-nsis-pkg-tests
- windows-2016-msi-pkg-tests - windows-2016-msi-pkg-tests
- windows-2019-nsis-pkg-tests - windows-2019-nsis-pkg-tests

View file

@ -1012,6 +1012,7 @@ jobs:
uses: ./.github/workflows/test-packages-action-macos.yml uses: ./.github/workflows/test-packages-action-macos.yml
with: with:
distro-slug: macos-12 distro-slug: macos-12
runner: macos-12
nox-session: ci-test-onedir nox-session: ci-test-onedir
platform: macos platform: macos
arch: x86_64 arch: x86_64
@ -1033,6 +1034,7 @@ jobs:
uses: ./.github/workflows/test-packages-action-macos.yml uses: ./.github/workflows/test-packages-action-macos.yml
with: with:
distro-slug: macos-13 distro-slug: macos-13
runner: macos-13
nox-session: ci-test-onedir nox-session: ci-test-onedir
platform: macos platform: macos
arch: x86_64 arch: x86_64
@ -1044,7 +1046,7 @@ jobs:
skip-code-coverage: true skip-code-coverage: true
testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }}
macos-13-xlarge-pkg-tests: macos-13-arm64-pkg-tests:
name: macOS 13 Arm64 Package Test name: macOS 13 Arm64 Package Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }}
needs: needs:
@ -1053,7 +1055,8 @@ jobs:
- build-ci-deps - build-ci-deps
uses: ./.github/workflows/test-packages-action-macos.yml uses: ./.github/workflows/test-packages-action-macos.yml
with: with:
distro-slug: macos-13-xlarge distro-slug: macos-13-arm64
runner: macos-13-xlarge
nox-session: ci-test-onedir nox-session: ci-test-onedir
platform: macos platform: macos
arch: arm64 arch: arm64
@ -1263,6 +1266,7 @@ jobs:
uses: ./.github/workflows/test-action-macos.yml uses: ./.github/workflows/test-action-macos.yml
with: with:
distro-slug: macos-12 distro-slug: macos-12
runner: macos-12
nox-session: ci-test-onedir nox-session: ci-test-onedir
platform: macos platform: macos
arch: x86_64 arch: x86_64
@ -1284,6 +1288,7 @@ jobs:
uses: ./.github/workflows/test-action-macos.yml uses: ./.github/workflows/test-action-macos.yml
with: with:
distro-slug: macos-13 distro-slug: macos-13
runner: macos-13
nox-session: ci-test-onedir nox-session: ci-test-onedir
platform: macos platform: macos
arch: x86_64 arch: x86_64
@ -1296,7 +1301,7 @@ jobs:
workflow-slug: staging workflow-slug: staging
default-timeout: 180 default-timeout: 180
macos-13-xlarge: macos-13-arm64:
name: macOS 13 Arm64 Test name: macOS 13 Arm64 Test
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }}
needs: needs:
@ -1304,7 +1309,8 @@ jobs:
- build-ci-deps - build-ci-deps
uses: ./.github/workflows/test-action-macos.yml uses: ./.github/workflows/test-action-macos.yml
with: with:
distro-slug: macos-13-xlarge distro-slug: macos-13-arm64
runner: macos-13-xlarge
nox-session: ci-test-onedir nox-session: ci-test-onedir
platform: macos platform: macos
arch: arm64 arch: arm64
@ -2757,7 +2763,7 @@ jobs:
- windows-2022 - windows-2022
- macos-12 - macos-12
- macos-13 - macos-13
- macos-13-xlarge - macos-13-arm64
- almalinux-8 - almalinux-8
- almalinux-8-arm64 - almalinux-8-arm64
- almalinux-9 - almalinux-9
@ -2807,7 +2813,7 @@ jobs:
- ubuntu-2204-arm64-pkg-tests - ubuntu-2204-arm64-pkg-tests
- macos-12-pkg-tests - macos-12-pkg-tests
- macos-13-pkg-tests - macos-13-pkg-tests
- macos-13-xlarge-pkg-tests - macos-13-arm64-pkg-tests
- windows-2016-nsis-pkg-tests - windows-2016-nsis-pkg-tests
- windows-2016-msi-pkg-tests - windows-2016-msi-pkg-tests
- windows-2019-nsis-pkg-tests - windows-2019-nsis-pkg-tests

View file

@ -163,7 +163,7 @@ jobs:
macos-dependencies: macos-dependencies:
name: MacOS name: MacOS
runs-on: ${{ matrix.distro-slug }} runs-on: ${{ matrix.distro-slug == 'macos-13-arm64' && 'macos-13-xlarge' || matrix.distro-slug }}
timeout-minutes: 90 timeout-minutes: 90
strategy: strategy:
fail-fast: false fail-fast: false

View file

@ -69,10 +69,10 @@ jobs:
fail-fast: false fail-fast: false
matrix: matrix:
include: include:
<%- for slug, arch, pkg_type in test_salt_pkg_downloads_listing["linux"] %> <%- for os in test_salt_pkg_downloads_listing["linux"] %>
- distro-slug: <{ slug }> - distro-slug: <{ os.slug }>
arch: <{ arch }> arch: <{ os.arch }>
pkg-type: <{ pkg_type }> pkg-type: <{ os.pkg_type }>
<%- endfor %> <%- endfor %>
steps: steps:
@ -271,7 +271,7 @@ jobs:
macos: macos:
name: MacOS name: MacOS
runs-on: ${{ matrix.distro-slug }} runs-on: ${{ matrix.distro-slug == 'macos-13-arm64' && 'macos-13-xlarge' || matrix.distro-slug }}
env: env:
USE_S3_CACHE: 'false' USE_S3_CACHE: 'false'
environment: ${{ inputs.environment }} environment: ${{ inputs.environment }}
@ -280,10 +280,10 @@ jobs:
fail-fast: false fail-fast: false
matrix: matrix:
include: include:
<%- for slug, arch, pkg_type in test_salt_pkg_downloads_listing["macos"] %> <%- for os in test_salt_pkg_downloads_listing["macos"] %>
- distro-slug: <{ slug }> - distro-slug: <{ os.slug }>
arch: <{ arch }> arch: <{ os.arch }>
pkg-type: <{ pkg_type }> pkg-type: <{ os.pkg_type }>
<%- endfor %> <%- endfor %>
steps: steps:
@ -485,10 +485,10 @@ jobs:
fail-fast: false fail-fast: false
matrix: matrix:
include: include:
<%- for slug, arch, pkg_type in test_salt_pkg_downloads_listing["windows"] %> <%- for os in test_salt_pkg_downloads_listing["windows"] %>
- distro-slug: <{ slug }> - distro-slug: <{ os.slug }>
arch: <{ arch }> arch: <{ os.arch }>
pkg-type: <{ pkg_type }> pkg-type: <{ os.pkg_type }>
<%- endfor %> <%- endfor %>
steps: steps:

View file

@ -1,13 +1,13 @@
<%- for slug, display_name, arch, pkg_type, fips in test_salt_pkg_listing["linux"] %> <%- for os in test_salt_pkg_listing["linux"] %>
<%- set job_name = "{}-pkg-tests".format(slug.replace(".", "")) %> <%- set job_name = "{}-pkg-tests".format(os.slug.replace(".", "")) %>
<{ job_name }>: <{ job_name }>:
<%- do test_salt_pkg_needs.append(job_name) %> <%- do test_salt_pkg_needs.append(job_name) %>
name: <{ display_name }> Package Test name: <{ os.display_name }> Package Test
<%- if workflow_slug != "ci" or slug in mandatory_os %> <%- if workflow_slug != "ci" or os.slug in mandatory_os_slugs %>
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }}
<%- else %> <%- else %>
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["<{ slug }>", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('<{ os.os_labels_json() }>'), needs.prepare-workflow.outputs.os-labels) }}
<%- endif %> <%- endif %>
needs: needs:
- prepare-workflow - prepare-workflow
@ -15,18 +15,18 @@
- build-ci-deps - build-ci-deps
uses: ./.github/workflows/test-packages-action-linux.yml uses: ./.github/workflows/test-packages-action-linux.yml
with: with:
distro-slug: <{ slug }> distro-slug: <{ os.slug }>
nox-session: ci-test-onedir nox-session: ci-test-onedir
platform: linux platform: linux
arch: <{ arch }> arch: <{ os.arch }>
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}"
pkg-type: <{ pkg_type }> pkg-type: <{ os.pkg_type }>
nox-version: <{ nox_version }> nox-version: <{ nox_version }>
python-version: "<{ gh_actions_workflows_python_version }>" python-version: "<{ gh_actions_workflows_python_version }>"
cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|<{ python_version }> cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|<{ python_version }>
skip-code-coverage: <{ skip_test_coverage_check }> skip-code-coverage: <{ skip_test_coverage_check }>
testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }}
<%- if fips == "fips" %> <%- if os.fips %>
fips: true fips: true
<%- endif %> <%- endif %>
@ -34,16 +34,16 @@
<%- for slug, display_name, arch in test_salt_pkg_listing["macos"] %> <%- for os in test_salt_pkg_listing["macos"] %>
<%- set job_name = "{}-pkg-tests".format(slug.replace(".", "")) %> <%- set job_name = "{}-pkg-tests".format(os.slug.replace(".", "")) %>
<{ job_name }>: <{ job_name }>:
<%- do test_salt_pkg_needs.append(job_name) %> <%- do test_salt_pkg_needs.append(job_name) %>
name: <{ display_name }> Package Test name: <{ os.display_name }> Package Test
<%- if workflow_slug != "ci" or slug in mandatory_os %> <%- if workflow_slug != "ci" or os.slug in mandatory_os_slugs %>
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }}
<%- else %> <%- else %>
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] && contains(fromJSON('["<{ slug }>", "<{ slug.replace('xlarge', 'arm64') }>", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] && contains(fromJSON('<{ os.os_labels_json() }>'), needs.prepare-workflow.outputs.os-labels) }}
<%- endif %> <%- endif %>
needs: needs:
- prepare-workflow - prepare-workflow
@ -51,10 +51,11 @@
- build-ci-deps - build-ci-deps
uses: ./.github/workflows/test-packages-action-macos.yml uses: ./.github/workflows/test-packages-action-macos.yml
with: with:
distro-slug: <{ slug }> distro-slug: <{ os.slug }>
runner: <{ os.runner }>
nox-session: ci-test-onedir nox-session: ci-test-onedir
platform: macos platform: macos
arch: <{ arch }> arch: <{ os.arch }>
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}"
pkg-type: macos pkg-type: macos
nox-version: <{ nox_version }> nox-version: <{ nox_version }>
@ -66,17 +67,16 @@
<%- endfor %> <%- endfor %>
<%- for slug, display_name, arch in test_salt_pkg_listing["windows"] %> <%- for os in test_salt_pkg_listing["windows"] %>
<%- for pkg_type in ("NSIS", "MSI") %> <%- set job_name = "{}-{}-pkg-tests".format(os.slug.replace(".", ""), os.pkg_type.lower()) %>
<%- set job_name = "{}-{}-pkg-tests".format(slug.replace(".", ""), pkg_type.lower()) %>
<{ job_name }>: <{ job_name }>:
<%- do test_salt_pkg_needs.append(job_name) %> <%- do test_salt_pkg_needs.append(job_name) %>
name: <{ display_name }> <{ pkg_type }> Package Test name: <{ os.display_name }> <{ os.pkg_type }> Package Test
<%- if workflow_slug != "ci" or slug in mandatory_os %> <%- if workflow_slug != "ci" or os.slug in mandatory_os_slugs %>
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }}
<%- else %> <%- else %>
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["<{ slug }>", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test-pkg'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('<{ os.os_labels_json() }>'), needs.prepare-workflow.outputs.os-labels) }}
<%- endif %> <%- endif %>
needs: needs:
- prepare-workflow - prepare-workflow
@ -84,12 +84,12 @@
- build-ci-deps - build-ci-deps
uses: ./.github/workflows/test-packages-action-windows.yml uses: ./.github/workflows/test-packages-action-windows.yml
with: with:
distro-slug: <{ slug }> distro-slug: <{ os.slug }>
nox-session: ci-test-onedir nox-session: ci-test-onedir
platform: windows platform: windows
arch: <{ arch }> arch: <{ os.arch }>
salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}" salt-version: "${{ needs.prepare-workflow.outputs.salt-version }}"
pkg-type: <{ pkg_type }> pkg-type: <{ os.pkg_type }>
nox-version: <{ nox_version }> nox-version: <{ nox_version }>
python-version: "<{ gh_actions_workflows_python_version }>" python-version: "<{ gh_actions_workflows_python_version }>"
cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|<{ python_version }> cache-prefix: ${{ needs.prepare-workflow.outputs.cache-seed }}|<{ python_version }>
@ -97,4 +97,3 @@
testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }} testing-releases: ${{ needs.prepare-workflow.outputs.testing-releases }}
<%- endfor %> <%- endfor %>
<%- endfor %>

View file

@ -4,22 +4,22 @@
<%- set timeout_value = 180 %> <%- set timeout_value = 180 %>
<%- endif %> <%- endif %>
<%- for slug, display_name, arch in test_salt_listing["windows"] %> <%- for os in test_salt_listing["windows"] %>
<{ slug.replace(".", "") }>: <{ os.slug.replace(".", "") }>:
<%- do test_salt_needs.append(slug.replace(".", "")) %> <%- do test_salt_needs.append(os.slug.replace(".", "")) %>
name: <{ display_name }> Test name: <{ os.display_name }> Test
<%- if workflow_slug != "ci" or slug in mandatory_os %> <%- if workflow_slug != "ci" or os.slug in mandatory_os_slugs %>
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }}
<%- else %> <%- else %>
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["<{ slug }>", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('<{ os.os_labels_json() }>'), needs.prepare-workflow.outputs.os-labels) }}
<%- endif %> <%- endif %>
needs: needs:
- prepare-workflow - prepare-workflow
- build-ci-deps - build-ci-deps
uses: ./.github/workflows/test-action-windows.yml uses: ./.github/workflows/test-action-windows.yml
with: with:
distro-slug: <{ slug }> distro-slug: <{ os.slug }>
nox-session: ci-test-onedir nox-session: ci-test-onedir
platform: windows platform: windows
arch: amd64 arch: amd64
@ -35,25 +35,26 @@
<%- endfor %> <%- endfor %>
<%- for slug, display_name, arch in test_salt_listing["macos"] %> <%- for os in test_salt_listing["macos"] %>
<{ slug.replace(".", "") }>: <{ os.slug.replace(".", "") }>:
<%- do test_salt_needs.append(slug.replace(".", "")) %> <%- do test_salt_needs.append(os.slug.replace(".", "")) %>
name: <{ display_name }> Test name: <{ os.display_name }> Test
<%- if workflow_slug != "ci" or slug in mandatory_os %> <%- if workflow_slug != "ci" or os.slug in mandatory_os_slugs %>
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] }}
<%- else %> <%- else %>
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] && contains(fromJSON('["<{ slug }>", "<{ slug.replace('xlarge', 'arm64') }>", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['github-hosted'] && contains(fromJSON('<{ os.os_labels_json() }>'), needs.prepare-workflow.outputs.os-labels) }}
<%- endif %> <%- endif %>
needs: needs:
- prepare-workflow - prepare-workflow
- build-ci-deps - build-ci-deps
uses: ./.github/workflows/test-action-macos.yml uses: ./.github/workflows/test-action-macos.yml
with: with:
distro-slug: <{ slug }> distro-slug: <{ os.slug }>
runner: <{ os.runner }>
nox-session: ci-test-onedir nox-session: ci-test-onedir
platform: macos platform: macos
arch: <{ arch }> arch: <{ os.arch }>
nox-version: <{ nox_version }> nox-version: <{ nox_version }>
gh-actions-python-version: "<{ gh_actions_workflows_python_version }>" gh-actions-python-version: "<{ gh_actions_workflows_python_version }>"
testrun: ${{ needs.prepare-workflow.outputs.testrun }} testrun: ${{ needs.prepare-workflow.outputs.testrun }}
@ -65,25 +66,25 @@
<%- endfor %> <%- endfor %>
<%- for slug, display_name, arch, fips in test_salt_listing["linux"] %> <%- for os in test_salt_listing["linux"] %>
<{ slug.replace(".", "") }>: <{ os.slug.replace(".", "") }>:
<%- do test_salt_needs.append(slug.replace(".", "")) %> <%- do test_salt_needs.append(os.slug.replace(".", "")) %>
name: <{ display_name }> Test name: <{ os.display_name }> Test
<%- if workflow_slug != "ci" or slug in mandatory_os %> <%- if workflow_slug != "ci" or os.slug in mandatory_os_slugs %>
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] }}
<%- else %> <%- else %>
if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('["<{ slug }>", "all"]'), needs.prepare-workflow.outputs.os-labels) }} if: ${{ fromJSON(needs.prepare-workflow.outputs.jobs)['test'] && fromJSON(needs.prepare-workflow.outputs.runners)['self-hosted'] && contains(fromJSON('<{ os.os_labels_json() }>'), needs.prepare-workflow.outputs.os-labels) }}
<%- endif %> <%- endif %>
needs: needs:
- prepare-workflow - prepare-workflow
- build-ci-deps - build-ci-deps
uses: ./.github/workflows/test-action-linux.yml uses: ./.github/workflows/test-action-linux.yml
with: with:
distro-slug: <{ slug }> distro-slug: <{ os.slug }>
nox-session: ci-test-onedir nox-session: ci-test-onedir
platform: linux platform: linux
arch: <{ arch }> arch: <{ os.arch }>
nox-version: <{ nox_version }> nox-version: <{ nox_version }>
gh-actions-python-version: "<{ gh_actions_workflows_python_version }>" gh-actions-python-version: "<{ gh_actions_workflows_python_version }>"
testrun: ${{ needs.prepare-workflow.outputs.testrun }} testrun: ${{ needs.prepare-workflow.outputs.testrun }}
@ -92,7 +93,7 @@
skip-code-coverage: <{ skip_test_coverage_check }> skip-code-coverage: <{ skip_test_coverage_check }>
workflow-slug: <{ workflow_slug }> workflow-slug: <{ workflow_slug }>
default-timeout: <{ timeout_value }> default-timeout: <{ timeout_value }>
<%- if fips == "fips" %> <%- if os.fips %>
fips: true fips: true
<%- endif %> <%- endif %>

View file

@ -8,6 +8,10 @@ on:
required: true required: true
type: string type: string
description: The OS slug to run tests against description: The OS slug to run tests against
runner:
required: true
type: string
description: The GitHub runner name
nox-session: nox-session:
required: true required: true
type: string type: string
@ -98,7 +102,7 @@ jobs:
test: test:
name: Test name: Test
runs-on: ${{ inputs.distro-slug }} runs-on: ${{ inputs.runner }}
# Full test runs. Each chunk should never take more than 2 hours. # Full test runs. Each chunk should never take more than 2 hours.
# Partial test runs(no chunk parallelization), 6 Hours # Partial test runs(no chunk parallelization), 6 Hours
timeout-minutes: ${{ fromJSON(inputs.testrun)['type'] == 'full' && inputs.default-timeout || 360 }} timeout-minutes: ${{ fromJSON(inputs.testrun)['type'] == 'full' && inputs.default-timeout || 360 }}

View file

@ -380,7 +380,7 @@ jobs:
macos: macos:
name: MacOS name: MacOS
runs-on: ${{ matrix.distro-slug }} runs-on: ${{ matrix.distro-slug == 'macos-13-arm64' && 'macos-13-xlarge' || matrix.distro-slug }}
env: env:
USE_S3_CACHE: 'false' USE_S3_CACHE: 'false'
environment: ${{ inputs.environment }} environment: ${{ inputs.environment }}
@ -395,10 +395,10 @@ jobs:
- distro-slug: macos-13 - distro-slug: macos-13
arch: x86_64 arch: x86_64
pkg-type: package pkg-type: package
- distro-slug: macos-13-xlarge - distro-slug: macos-13-arm64
arch: arm64 arch: arm64
pkg-type: package pkg-type: package
- distro-slug: macos-13-xlarge - distro-slug: macos-13-arm64
arch: arm64 arch: arm64
pkg-type: onedir pkg-type: onedir

View file

@ -7,6 +7,10 @@ on:
required: true required: true
type: string type: string
description: The OS slug to run tests against description: The OS slug to run tests against
runner:
required: true
type: string
description: The GitHub runner name
platform: platform:
required: true required: true
type: string type: string
@ -98,7 +102,7 @@ jobs:
test: test:
name: Test name: Test
runs-on: ${{ inputs.distro-slug }} runs-on: ${{ inputs.runner }}
timeout-minutes: 120 # 2 Hours - More than this and something is wrong timeout-minutes: 120 # 2 Hours - More than this and something is wrong
needs: needs:
- generate-matrix - generate-matrix

View file

@ -59,7 +59,7 @@ repos:
- id: tools - id: tools
alias: generate-workflows alias: generate-workflows
name: Generate GitHub Workflow Templates name: Generate GitHub Workflow Templates
files: ^(cicd/shared-gh-workflows-context\.yml|tools/precommit/workflows\.py|.github/workflows/templates/.*)$ files: ^(cicd/shared-gh-workflows-context\.yml|tools/precommit/workflows\.py|.github/workflows/.*)$
pass_filenames: false pass_filenames: false
args: args:
- pre-commit - pre-commit

View file

@ -5,6 +5,6 @@ mandatory_os_slugs:
- almalinux-9 - almalinux-9
- amazonlinux-2023-arm64 - amazonlinux-2023-arm64
- archlinux-lts - archlinux-lts
- macos-13 - macos-13-arm64
- ubuntu-22.04-arm64 - ubuntu-22.04-arm64
- windows-2022 - windows-2022

View file

@ -968,7 +968,13 @@ def get_pr_test_labels(
if TYPE_CHECKING: if TYPE_CHECKING:
assert github_output is not None assert github_output is not None
ctx.info("Writing 'labels' to the github outputs file") ctx.info("Writing 'labels' to the github outputs file...")
ctx.info("Test Labels:")
for label in sorted(test_labels):
ctx.info(f" * [yellow]{label}[/yellow]")
ctx.info("* OS Labels:")
for slug in sorted(selected):
ctx.info(f" * [yellow]{slug}[/yellow]")
with open(github_output, "a", encoding="utf-8") as wfh: with open(github_output, "a", encoding="utf-8") as wfh:
wfh.write(f"os-labels={json.dumps([label for label in os_labels])}\n") wfh.write(f"os-labels={json.dumps([label for label in os_labels])}\n")
wfh.write(f"test-labels={json.dumps([label for label in test_labels])}\n") wfh.write(f"test-labels={json.dumps([label for label in test_labels])}\n")

View file

@ -7,12 +7,19 @@ from __future__ import annotations
import logging import logging
import shutil import shutil
import sys
from typing import TYPE_CHECKING, cast from typing import TYPE_CHECKING, cast
from jinja2 import Environment, FileSystemLoader, StrictUndefined from jinja2 import Environment, FileSystemLoader, StrictUndefined
from ptscripts import Context, command_group from ptscripts import Context, command_group
import tools.utils import tools.utils
from tools.utils import Linux, MacOS, Windows
if sys.version_info < (3, 11):
from typing_extensions import TypedDict
else:
from typing import TypedDict # pylint: disable=no-name-in-module
log = logging.getLogger(__name__) log = logging.getLogger(__name__)
@ -20,6 +27,12 @@ WORKFLOWS = tools.utils.REPO_ROOT / ".github" / "workflows"
TEMPLATES = WORKFLOWS / "templates" TEMPLATES = WORKFLOWS / "templates"
class PlatformDefinitions(TypedDict):
linux: list[Linux]
macos: list[MacOS]
windows: list[Windows]
# Define the command group # Define the command group
cgroup = command_group( cgroup = command_group(
name="workflows", name="workflows",
@ -91,94 +104,299 @@ def generate_workflows(ctx: Context):
"template": "build-deps-ci-action.yml", "template": "build-deps-ci-action.yml",
}, },
} }
test_salt_listing: dict[str, list[tuple[str, ...]]] = { test_salt_listing = PlatformDefinitions(
{
"linux": [ "linux": [
("almalinux-8", "Alma Linux 8", "x86_64", "no-fips"), Linux(slug="almalinux-8", display_name="Alma Linux 8", arch="x86_64"),
("almalinux-8-arm64", "Alma Linux 8 Arm64", "arm64", "no-fips"), Linux(
("almalinux-9", "Alma Linux 9", "x86_64", "no-fips"), slug="almalinux-8-arm64",
("almalinux-9-arm64", "Alma Linux 9 Arm64", "arm64", "no-fips"), display_name="Alma Linux 8 Arm64",
("amazonlinux-2", "Amazon Linux 2", "x86_64", "no-fips"), arch="arm64",
("amazonlinux-2-arm64", "Amazon Linux 2 Arm64", "arm64", "no-fips"), ),
("amazonlinux-2023", "Amazon Linux 2023", "x86_64", "no-fips"), Linux(slug="almalinux-9", display_name="Alma Linux 9", arch="x86_64"),
("amazonlinux-2023-arm64", "Amazon Linux 2023 Arm64", "arm64", "no-fips"), Linux(
("archlinux-lts", "Arch Linux LTS", "x86_64", "no-fips"), slug="almalinux-9-arm64",
("centos-7", "CentOS 7", "x86_64", "no-fips"), display_name="Alma Linux 9 Arm64",
("debian-10", "Debian 10", "x86_64", "no-fips"), arch="arm64",
("debian-11", "Debian 11", "x86_64", "no-fips"), ),
("debian-11-arm64", "Debian 11 Arm64", "arm64", "no-fips"), Linux(
("debian-12", "Debian 12", "x86_64", "no-fips"), slug="amazonlinux-2", display_name="Amazon Linux 2", arch="x86_64"
("debian-12-arm64", "Debian 12 Arm64", "arm64", "no-fips"), ),
("fedora-39", "Fedora 39", "x86_64", "no-fips"), Linux(
("opensuse-15", "Opensuse 15", "x86_64", "no-fips"), slug="amazonlinux-2-arm64",
("photonos-4", "Photon OS 4", "x86_64", "fips"), display_name="Amazon Linux 2 Arm64",
("photonos-4-arm64", "Photon OS 4 Arm64", "arm64", "fips"), arch="arm64",
("photonos-5", "Photon OS 5", "x86_64", "fips"), ),
("photonos-5-arm64", "Photon OS 5 Arm64", "arm64", "fips"), Linux(
("ubuntu-20.04", "Ubuntu 20.04", "x86_64", "no-fips"), slug="amazonlinux-2023",
("ubuntu-20.04-arm64", "Ubuntu 20.04 Arm64", "arm64", "no-fips"), display_name="Amazon Linux 2023",
("ubuntu-22.04", "Ubuntu 22.04", "x86_64", "no-fips"), arch="x86_64",
("ubuntu-22.04-arm64", "Ubuntu 22.04 Arm64", "arm64", "no-fips"), ),
Linux(
slug="amazonlinux-2023-arm64",
display_name="Amazon Linux 2023 Arm64",
arch="arm64",
),
Linux(
slug="archlinux-lts", display_name="Arch Linux LTS", arch="x86_64"
),
Linux(slug="centos-7", display_name="CentOS 7", arch="x86_64"),
Linux(slug="debian-10", display_name="Debian 10", arch="x86_64"),
Linux(slug="debian-11", display_name="Debian 11", arch="x86_64"),
Linux(
slug="debian-11-arm64", display_name="Debian 11 Arm64", arch="arm64"
),
Linux(slug="debian-12", display_name="Debian 12", arch="x86_64"),
Linux(
slug="debian-12-arm64", display_name="Debian 12 Arm64", arch="arm64"
),
Linux(slug="fedora-39", display_name="Fedora 39", arch="x86_64"),
Linux(slug="opensuse-15", display_name="Opensuse 15", arch="x86_64"),
Linux(
slug="photonos-4",
display_name="Photon OS 4",
arch="x86_64",
fips=True,
),
Linux(
slug="photonos-4-arm64",
display_name="Photon OS 4 Arm64",
arch="arm64",
fips=True,
),
Linux(
slug="photonos-5",
display_name="Photon OS 5",
arch="x86_64",
fips=True,
),
Linux(
slug="photonos-5-arm64",
display_name="Photon OS 5 Arm64",
arch="arm64",
fips=True,
),
Linux(slug="ubuntu-20.04", display_name="Ubuntu 20.04", arch="x86_64"),
Linux(
slug="ubuntu-20.04-arm64",
display_name="Ubuntu 20.04 Arm64",
arch="arm64",
),
Linux(slug="ubuntu-22.04", display_name="Ubuntu 22.04", arch="x86_64"),
Linux(
slug="ubuntu-22.04-arm64",
display_name="Ubuntu 22.04 Arm64",
arch="arm64",
),
], ],
"macos": [ "macos": [
("macos-12", "macOS 12", "x86_64"), MacOS(slug="macos-12", display_name="macOS 12", arch="x86_64"),
("macos-13", "macOS 13", "x86_64"), MacOS(slug="macos-13", display_name="macOS 13", arch="x86_64"),
("macos-13-xlarge", "macOS 13 Arm64", "arm64"), MacOS(
slug="macos-13-arm64",
display_name="macOS 13 Arm64",
arch="arm64",
runner="macos-13-xlarge",
),
], ],
"windows": [ "windows": [
("windows-2016", "Windows 2016", "amd64"), Windows(slug="windows-2016", display_name="Windows 2016", arch="amd64"),
("windows-2019", "Windows 2019", "amd64"), Windows(slug="windows-2019", display_name="Windows 2019", arch="amd64"),
("windows-2022", "Windows 2022", "amd64"), Windows(slug="windows-2022", display_name="Windows 2022", arch="amd64"),
], ],
} }
)
test_salt_pkg_listing = { test_salt_pkg_listing = PlatformDefinitions(
{
"linux": [ "linux": [
("almalinux-8", "Alma Linux 8", "x86_64", "rpm", "no-fips"), Linux(
("almalinux-8-arm64", "Alma Linux 8 Arm64", "arm64", "rpm", "no-fips"), slug="almalinux-8",
("almalinux-9", "Alma Linux 9", "x86_64", "rpm", "no-fips"), display_name="Alma Linux 8",
("almalinux-9-arm64", "Alma Linux 9 Arm64", "arm64", "rpm", "no-fips"), arch="x86_64",
("amazonlinux-2", "Amazon Linux 2", "x86_64", "rpm", "no-fips"), pkg_type="rpm",
(
"amazonlinux-2-arm64",
"Amazon Linux 2 Arm64",
"arm64",
"rpm",
"no-fips",
), ),
("amazonlinux-2023", "Amazon Linux 2023", "x86_64", "rpm", "no-fips"), Linux(
( slug="almalinux-8-arm64",
"amazonlinux-2023-arm64", display_name="Alma Linux 8 Arm64",
"Amazon Linux 2023 Arm64", arch="arm64",
"arm64", pkg_type="rpm",
"rpm", ),
"no-fips", Linux(
slug="almalinux-9",
display_name="Alma Linux 9",
arch="x86_64",
pkg_type="rpm",
),
Linux(
slug="almalinux-9-arm64",
display_name="Alma Linux 9 Arm64",
arch="arm64",
pkg_type="rpm",
),
Linux(
slug="amazonlinux-2",
display_name="Amazon Linux 2",
arch="x86_64",
pkg_type="rpm",
),
Linux(
slug="amazonlinux-2-arm64",
display_name="Amazon Linux 2 Arm64",
arch="arm64",
pkg_type="rpm",
),
Linux(
slug="amazonlinux-2023",
display_name="Amazon Linux 2023",
arch="x86_64",
pkg_type="rpm",
),
Linux(
slug="amazonlinux-2023-arm64",
display_name="Amazon Linux 2023 Arm64",
arch="arm64",
pkg_type="rpm",
),
Linux(
slug="centos-7",
display_name="CentOS 7",
arch="x86_64",
pkg_type="rpm",
),
Linux(
slug="debian-10",
display_name="Debian 10",
arch="x86_64",
pkg_type="deb",
),
Linux(
slug="debian-11",
display_name="Debian 11",
arch="x86_64",
pkg_type="deb",
),
Linux(
slug="debian-11-arm64",
display_name="Debian 11 Arm64",
arch="arm64",
pkg_type="deb",
),
Linux(
slug="debian-12",
display_name="Debian 12",
arch="x86_64",
pkg_type="deb",
),
Linux(
slug="debian-12-arm64",
display_name="Debian 12 Arm64",
arch="arm64",
pkg_type="deb",
),
Linux(
slug="photonos-4",
display_name="Photon OS 4",
arch="x86_64",
pkg_type="rpm",
fips=True,
),
Linux(
slug="photonos-4-arm64",
display_name="Photon OS 4 Arm64",
arch="arm64",
pkg_type="rpm",
fips=True,
),
Linux(
slug="photonos-5",
display_name="Photon OS 5",
arch="x86_64",
pkg_type="rpm",
fips=True,
),
Linux(
slug="photonos-5-arm64",
display_name="Photon OS 5 Arm64",
arch="arm64",
pkg_type="rpm",
fips=True,
),
Linux(
slug="ubuntu-20.04",
display_name="Ubuntu 20.04",
arch="x86_64",
pkg_type="deb",
),
Linux(
slug="ubuntu-20.04-arm64",
display_name="Ubuntu 20.04 Arm64",
arch="arm64",
pkg_type="deb",
),
Linux(
slug="ubuntu-22.04",
display_name="Ubuntu 22.04",
arch="x86_64",
pkg_type="deb",
),
Linux(
slug="ubuntu-22.04-arm64",
display_name="Ubuntu 22.04 Arm64",
arch="arm64",
pkg_type="deb",
), ),
("centos-7", "CentOS 7", "x86_64", "rpm", "no-fips"),
("debian-10", "Debian 10", "x86_64", "deb", "no-fips"),
("debian-11", "Debian 11", "x86_64", "deb", "no-fips"),
("debian-11-arm64", "Debian 11 Arm64", "arm64", "deb", "no-fips"),
("debian-12", "Debian 12", "x86_64", "deb", "no-fips"),
("debian-12-arm64", "Debian 12 Arm64", "arm64", "deb", "no-fips"),
("photonos-4", "Photon OS 4", "x86_64", "rpm", "fips"),
("photonos-4-arm64", "Photon OS 4 Arm64", "arm64", "rpm", "fips"),
("photonos-5", "Photon OS 5", "x86_64", "rpm", "fips"),
("photonos-5-arm64", "Photon OS 5 Arm64", "arm64", "rpm", "fips"),
("ubuntu-20.04", "Ubuntu 20.04", "x86_64", "deb", "no-fips"),
("ubuntu-20.04-arm64", "Ubuntu 20.04 Arm64", "arm64", "deb", "no-fips"),
("ubuntu-22.04", "Ubuntu 22.04", "x86_64", "deb", "no-fips"),
("ubuntu-22.04-arm64", "Ubuntu 22.04 Arm64", "arm64", "deb", "no-fips"),
], ],
"macos": [ "macos": [
("macos-12", "macOS 12", "x86_64"), MacOS(slug="macos-12", display_name="macOS 12", arch="x86_64"),
("macos-13", "macOS 13", "x86_64"), MacOS(slug="macos-13", display_name="macOS 13", arch="x86_64"),
("macos-13-xlarge", "macOS 13 Arm64", "arm64"), MacOS(
slug="macos-13-arm64",
display_name="macOS 13 Arm64",
arch="arm64",
runner="macos-13-xlarge",
),
], ],
"windows": [ "windows": [
("windows-2016", "Windows 2016", "amd64"), Windows(
("windows-2019", "Windows 2019", "amd64"), slug="windows-2016",
("windows-2022", "Windows 2022", "amd64"), display_name="Windows 2016",
arch="amd64",
pkg_type="NSIS",
),
Windows(
slug="windows-2016",
display_name="Windows 2016",
arch="amd64",
pkg_type="MSI",
),
Windows(
slug="windows-2019",
display_name="Windows 2019",
arch="amd64",
pkg_type="NSIS",
),
Windows(
slug="windows-2019",
display_name="Windows 2019",
arch="amd64",
pkg_type="MSI",
),
Windows(
slug="windows-2022",
display_name="Windows 2022",
arch="amd64",
pkg_type="NSIS",
),
Windows(
slug="windows-2022",
display_name="Windows 2022",
arch="amd64",
pkg_type="MSI",
),
], ],
} }
)
build_ci_deps_listing = { build_ci_deps_listing = {
"linux": [ "linux": [
@ -187,17 +405,19 @@ def generate_workflows(ctx: Context):
], ],
"macos": [ "macos": [
("x86_64", "macos-12"), ("x86_64", "macos-12"),
("arm64", "macos-13-xlarge"), ("arm64", "macos-13-arm64"),
], ],
"windows": [ "windows": [
("amd64", "windows-2022"), ("amd64", "windows-2022"),
], ],
} }
test_salt_pkg_downloads_listing: dict[str, list[tuple[str, str, str]]] = { test_salt_pkg_downloads_listing = PlatformDefinitions(
{
"linux": [], "linux": [],
"macos": [], "macos": [],
"windows": [], "windows": [],
} }
)
rpm_slugs = ( rpm_slugs = (
"almalinux", "almalinux",
"amazonlinux", "amazonlinux",
@ -220,23 +440,62 @@ def generate_workflows(ctx: Context):
if slug.startswith(rpm_slugs) and arch == "arm64": if slug.startswith(rpm_slugs) and arch == "arm64":
# While we maintain backwards compatible urls # While we maintain backwards compatible urls
test_salt_pkg_downloads_listing["linux"].append( test_salt_pkg_downloads_listing["linux"].append(
(slug, "aarch64", "package") Linux(
slug=slug,
arch="aarch64",
pkg_type="package",
)
)
test_salt_pkg_downloads_listing["linux"].append(
Linux(
slug=slug,
arch=arch,
pkg_type="package",
)
) )
test_salt_pkg_downloads_listing["linux"].append((slug, arch, "package"))
if slug.startswith("ubuntu-22"): if slug.startswith("ubuntu-22"):
test_salt_pkg_downloads_listing["linux"].append((slug, arch, "onedir")) test_salt_pkg_downloads_listing["linux"].append(
for slug, display_name, arch in test_salt_listing["macos"]: Linux(
test_salt_pkg_downloads_listing["macos"].append((slug, arch, "package")) slug=slug,
for slug, display_name, arch in test_salt_listing["macos"][-1:]: arch=arch,
test_salt_pkg_downloads_listing["macos"].append((slug, arch, "onedir")) pkg_type="onedir",
for slug, display_name, arch in test_salt_listing["windows"][-1:]: )
)
for mac in test_salt_listing["macos"]:
test_salt_pkg_downloads_listing["macos"].append(
MacOS(
slug=mac.slug,
arch=mac.arch,
display_name=mac.display_name,
pkg_type="package",
runner=mac.runner,
)
)
for mac in test_salt_listing["macos"][-1:]:
test_salt_pkg_downloads_listing["macos"].append(
MacOS(
slug=mac.slug,
arch=mac.arch,
display_name=mac.display_name,
pkg_type="onedir",
runner=mac.runner,
)
)
for win in test_salt_listing["windows"][-1:]:
for pkg_type in ("nsis", "msi", "onedir"): for pkg_type in ("nsis", "msi", "onedir"):
test_salt_pkg_downloads_listing["windows"].append((slug, arch, pkg_type)) test_salt_pkg_downloads_listing["windows"].append(
Windows(
slug=win.slug,
arch=win.arch,
display_name=win.display_name,
pkg_type=pkg_type,
)
)
test_salt_pkg_downloads_needs_slugs = set() test_salt_pkg_downloads_needs_slugs = {"build-ci-deps"}
for platform in test_salt_pkg_downloads_listing: # for platform in test_salt_pkg_downloads_listing:
for _, arch, _ in test_salt_pkg_downloads_listing[platform]: # for _, arch, _ in test_salt_pkg_downloads_listing[platform]:
test_salt_pkg_downloads_needs_slugs.add("build-ci-deps") # test_salt_pkg_downloads_needs_slugs.add("build-ci-deps")
build_rpms_listing = [] build_rpms_listing = []
rpm_os_versions: dict[str, list[str]] = { rpm_os_versions: dict[str, list[str]] = {

View file

@ -10,6 +10,7 @@ import sys
from enum import IntEnum from enum import IntEnum
from functools import cache from functools import cache
import attr
import packaging.version import packaging.version
import yaml import yaml
from ptscripts import Context from ptscripts import Context
@ -37,6 +38,36 @@ class ExitCode(IntEnum):
SOFT_FAIL = 2 SOFT_FAIL = 2
@attr.s(frozen=True, slots=True)
class OS:
platform: str = attr.ib()
slug: str = attr.ib()
display_name: str = attr.ib(default=None)
arch: str = attr.ib(default=None)
pkg_type: str = attr.ib(default=None)
@attr.s(frozen=True, slots=True)
class Linux(OS):
platform: str = attr.ib(default="linux")
fips: bool = attr.ib(default=False)
@attr.s(frozen=True, slots=True)
class MacOS(OS):
runner: str = attr.ib()
platform: str = attr.ib(default="macos")
@runner.default
def _default_runner(self):
return self.slug
@attr.s(frozen=True, slots=True)
class Windows(OS):
platform: str = attr.ib(default="windows")
def create_progress_bar(file_progress: bool = False, **kwargs): def create_progress_bar(file_progress: bool = False, **kwargs):
if file_progress: if file_progress:
return Progress( return Progress(