diff --git a/.github/actionlint.yaml b/.github/actionlint.yaml index af125266ae7..68aae196357 100644 --- a/.github/actionlint.yaml +++ b/.github/actionlint.yaml @@ -1,5 +1,6 @@ self-hosted-runner: - labels: ["windows-aarch64"] + # Pending https://github.com/rhysd/actionlint/issues/533 + labels: ["windows-11-arm"] config-variables: null diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c8fc5cff28b..dcd5060d7cf 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -156,28 +156,18 @@ jobs: strategy: fail-fast: false matrix: - os: - - windows-latest arch: - x64 + - Win32 + - arm64 free-threading: - false - true - include: - # Forks don't have access to Windows on Arm runners. These jobs are skipped below: - - os: ${{ github.repository_owner == 'python' && 'windows-aarch64' || 'windows-latest' }} - arch: arm64 - free-threading: false - # Forks don't have access to Windows on Arm runners. These jobs are skipped below: - - os: ${{ github.repository_owner == 'python' && 'windows-aarch64' || 'windows-latest' }} - arch: arm64 - free-threading: true - - os: windows-latest - arch: Win32 - free-threading: false + exclude: + # Skip Win32 on free-threaded builds + - { arch: Win32, free-threading: true } uses: ./.github/workflows/reusable-windows.yml with: - os: ${{ matrix.os }} arch: ${{ matrix.arch }} free-threading: ${{ matrix.free-threading }} @@ -189,18 +179,12 @@ jobs: strategy: fail-fast: false matrix: - os: - - windows-latest arch: - x86 - x64 - include: - # Forks don't have access to Windows on Arm runners. These jobs are skipped below: - - os: ${{ github.repository_owner == 'python' && 'windows-aarch64' || 'windows-latest' }} - arch: arm64 + - arm64 uses: ./.github/workflows/reusable-windows-msi.yml with: - os: ${{ matrix.os }} arch: ${{ matrix.arch }} build-macos: diff --git a/.github/workflows/jit.yml b/.github/workflows/jit.yml index 4f5ba84d48e..e08d3c8bfd6 100644 --- a/.github/workflows/jit.yml +++ b/.github/workflows/jit.yml @@ -74,8 +74,7 @@ jobs: runner: windows-latest - target: aarch64-pc-windows-msvc/msvc architecture: ARM64 - # Forks don't have access to Windows on Arm runners. These jobs are skipped below: - runner: ${{ github.repository_owner == 'python' && 'windows-aarch64' || 'windows-latest' }} + runner: windows-11-arm - target: x86_64-apple-darwin/clang architecture: x86_64 runner: macos-13 @@ -97,8 +96,7 @@ jobs: python-version: '3.11' - name: Windows - # Forks don't have access to Windows on Arm runners. Skip those: - if: runner.os == 'Windows' && (matrix.architecture != 'ARM64' || github.repository_owner == 'python') + if: runner.os == 'Windows' run: | choco install llvm --allow-downgrade --no-progress --version ${{ matrix.llvm }}.1.0 ./PCbuild/build.bat --experimental-jit ${{ matrix.debug && '-d' || '' }} -p ${{ matrix.architecture }} diff --git a/.github/workflows/reusable-windows-msi.yml b/.github/workflows/reusable-windows-msi.yml index 6213c903c5a..a50de344bba 100644 --- a/.github/workflows/reusable-windows-msi.yml +++ b/.github/workflows/reusable-windows-msi.yml @@ -3,10 +3,6 @@ name: Reusable Windows MSI on: workflow_call: inputs: - os: - description: OS to run on - required: true - type: string arch: description: CPU architecture required: true @@ -21,7 +17,7 @@ env: jobs: build: name: installer for ${{ inputs.arch }} - runs-on: ${{ inputs.os }} + runs-on: ${{ inputs.arch == 'arm64' && 'windows-11-arm' || 'windows-latest' }} timeout-minutes: 60 env: ARCH: ${{ inputs.arch }} @@ -31,7 +27,5 @@ jobs: with: persist-credentials: false - name: Build CPython installer - # Forks don't have access to Windows on Arm runners. Skip those: - if: inputs.arch != 'arm64' || github.repository_owner == 'python' run: ./Tools/msi/build.bat --doc -"${ARCH}" shell: bash diff --git a/.github/workflows/reusable-windows.yml b/.github/workflows/reusable-windows.yml index deb1f41640e..37c802095b0 100644 --- a/.github/workflows/reusable-windows.yml +++ b/.github/workflows/reusable-windows.yml @@ -3,10 +3,6 @@ name: Reusable Windows on: workflow_call: inputs: - os: - description: OS to run on - required: true - type: string arch: description: CPU architecture required: true @@ -25,7 +21,7 @@ env: jobs: build: name: Build and test (${{ inputs.arch }}) - runs-on: ${{ inputs.os }} + runs-on: ${{ inputs.arch == 'arm64' && 'windows-11-arm' || 'windows-latest' }} timeout-minutes: 60 env: ARCH: ${{ inputs.arch }} @@ -37,8 +33,6 @@ jobs: if: inputs.arch != 'Win32' run: echo "::add-matcher::.github/problem-matchers/msvc.json" - name: Build CPython - # Forks don't have access to Windows on Arm runners. Skip those: - if: inputs.arch != 'arm64' || github.repository_owner == 'python' run: >- .\\PCbuild\\build.bat -e -d -v @@ -46,12 +40,8 @@ jobs: ${{ fromJSON(inputs.free-threading) && '--disable-gil' || '' }} shell: bash - name: Display build info - # Forks don't have access to Windows on Arm runners. Skip those: - if: inputs.arch != 'arm64' || github.repository_owner == 'python' run: .\\python.bat -m test.pythoninfo - name: Tests - # Forks don't have access to Windows on Arm runners. Skip those: - if: inputs.arch != 'arm64' || github.repository_owner == 'python' run: >- .\\PCbuild\\rt.bat -p "${ARCH}"