diff --git a/.github/workflows/build-deps-ci-action.yml b/.github/workflows/build-deps-ci-action.yml index b16ec5e6ee8..58ef83be4f1 100644 --- a/.github/workflows/build-deps-ci-action.yml +++ b/.github/workflows/build-deps-ci-action.yml @@ -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: diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4afcf1c8041..0b5b9a5f8bc 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -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 diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 95c0332458e..1ff3ccb7db5 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -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 diff --git a/.github/workflows/scheduled.yml b/.github/workflows/scheduled.yml index c1108976d7b..524ffc4613b 100644 --- a/.github/workflows/scheduled.yml +++ b/.github/workflows/scheduled.yml @@ -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 diff --git a/.github/workflows/staging.yml b/.github/workflows/staging.yml index 0961f55aa8c..3812b70ea9e 100644 --- a/.github/workflows/staging.yml +++ b/.github/workflows/staging.yml @@ -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 diff --git a/.github/workflows/templates/build-deps-ci-action.yml.jinja b/.github/workflows/templates/build-deps-ci-action.yml.jinja index de6dc03ba3c..a08f02b0d3d 100644 --- a/.github/workflows/templates/build-deps-ci-action.yml.jinja +++ b/.github/workflows/templates/build-deps-ci-action.yml.jinja @@ -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 diff --git a/.github/workflows/templates/test-package-downloads-action.yml.jinja b/.github/workflows/templates/test-package-downloads-action.yml.jinja index ee5f5fbfc1b..469509e979f 100644 --- a/.github/workflows/templates/test-package-downloads-action.yml.jinja +++ b/.github/workflows/templates/test-package-downloads-action.yml.jinja @@ -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: diff --git a/.github/workflows/templates/test-salt-pkg.yml.jinja b/.github/workflows/templates/test-salt-pkg.yml.jinja index 124beaab517..d42155e552f 100644 --- a/.github/workflows/templates/test-salt-pkg.yml.jinja +++ b/.github/workflows/templates/test-salt-pkg.yml.jinja @@ -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 %> diff --git a/.github/workflows/templates/test-salt.yml.jinja b/.github/workflows/templates/test-salt.yml.jinja index 1f3bbf7960a..c3ea4eee146 100644 --- a/.github/workflows/templates/test-salt.yml.jinja +++ b/.github/workflows/templates/test-salt.yml.jinja @@ -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 %> diff --git a/.github/workflows/test-action-macos.yml b/.github/workflows/test-action-macos.yml index 24465a724c0..6b03a6cb558 100644 --- a/.github/workflows/test-action-macos.yml +++ b/.github/workflows/test-action-macos.yml @@ -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 }} diff --git a/.github/workflows/test-package-downloads-action.yml b/.github/workflows/test-package-downloads-action.yml index dc3fb12a661..e4bd6af0fd8 100644 --- a/.github/workflows/test-package-downloads-action.yml +++ b/.github/workflows/test-package-downloads-action.yml @@ -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 diff --git a/.github/workflows/test-packages-action-macos.yml b/.github/workflows/test-packages-action-macos.yml index 2b6b2e9ca90..611d84e22e7 100644 --- a/.github/workflows/test-packages-action-macos.yml +++ b/.github/workflows/test-packages-action-macos.yml @@ -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 diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 5d338177f40..68821fd8ba5 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -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 diff --git a/cicd/shared-gh-workflows-context.yml b/cicd/shared-gh-workflows-context.yml index 7c562fc0891..2966a250604 100644 --- a/cicd/shared-gh-workflows-context.yml +++ b/cicd/shared-gh-workflows-context.yml @@ -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 diff --git a/tools/ci.py b/tools/ci.py index 491df8019ed..ed1c0416630 100644 --- a/tools/ci.py +++ b/tools/ci.py @@ -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") diff --git a/tools/precommit/workflows.py b/tools/precommit/workflows.py index 14cc98022b6..3c8b032ad05 100644 --- a/tools/precommit/workflows.py +++ b/tools/precommit/workflows.py @@ -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]] = { diff --git a/tools/utils/__init__.py b/tools/utils/__init__.py index 3cac1a88876..3635c82d05b 100644 --- a/tools/utils/__init__.py +++ b/tools/utils/__init__.py @@ -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(