name: Reusable Windows on: workflow_call: inputs: os: description: OS to run on required: true type: string 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 permissions: contents: read env: FORCE_COLOR: 1 IncludeUwp: >- true jobs: build: name: ${{ inputs.arch == 'arm64' && 'build' || 'build and test' }} (${{ inputs.arch }}) runs-on: ${{ inputs.os }} timeout-minutes: 60 env: ARCH: ${{ inputs.arch }} steps: - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 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 -v -p "${ARCH}" ${{ fromJSON(inputs.free-threading) && '--disable-gil' || '' }} shell: bash - name: Display build info # FIXME(diegorusso): remove the `if` if: inputs.arch != 'arm64' run: .\\python.bat -m test.pythoninfo - name: Tests # FIXME(diegorusso): remove the `if` if: inputs.arch != 'arm64' run: >- .\\PCbuild\\rt.bat -p "${ARCH}" -d -q --fast-ci ${{ fromJSON(inputs.free-threading) && '--disable-gil' || '' }} shell: bash