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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -59,7 +59,7 @@ repos:
- id: tools
alias: generate-workflows
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
args:
- pre-commit

View file

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

View file

@ -968,7 +968,13 @@ def get_pr_test_labels(
if TYPE_CHECKING:
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:
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")

View file

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

View file

@ -10,6 +10,7 @@ import sys
from enum import IntEnum
from functools import cache
import attr
import packaging.version
import yaml
from ptscripts import Context
@ -37,6 +38,36 @@ class ExitCode(IntEnum):
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):
if file_progress:
return Progress(