name: Reusable Windows on: workflow_call: inputs: arch: description: CPU architecture required: true type: string free-threading: description: Whether to compile CPython in free-threading mode required: false type: boolean default: false env: FORCE_COLOR: 1 IncludeUwp: >- true jobs: build: name: ${{ inputs.arch == 'arm64' && 'build' || 'build and test' }} (${{ inputs.arch }}) runs-on: windows-2022 timeout-minutes: 60 env: ARCH: ${{ inputs.arch }} steps: - uses: actions/checkout@v6 with: persist-credentials: false - name: Register MSVC problem matcher if: inputs.arch != 'Win32' run: echo "::add-matcher::.github/problem-matchers/msvc.json" - name: Build CPython run: >- .\\PCbuild\\build.bat -e -d -p "${ARCH}" ${{ fromJSON(inputs.free-threading) && '--disable-gil' || '' }} shell: bash - name: Display build info if: inputs.arch != 'arm64' run: .\python.bat -m test.pythoninfo - name: Tests if: inputs.arch != 'arm64' run: >- .\\PCbuild\\rt.bat -p "${ARCH}" -d -q -uall -u-cpu -rwW --slowest --timeout=1200 -j0 shell: bash