Skip to content

Bump cargo deps and drop Python 3.9 from CI #46

Bump cargo deps and drop Python 3.9 from CI

Bump cargo deps and drop Python 3.9 from CI #46

name: Windows arm64 tests
on:
push:
branches:
- main
pull_request:
branches:
- main
jobs:
windows:
name: Windows Py${{ matrix.PYTHON_VERSION }} arm64
runs-on: windows-11-arm
timeout-minutes: 10
env:
PYTHON_VERSION: ${{ matrix.PYTHON_VERSION }}
RUNNER_OS: "windows"
PYWINPTY_BLOCK: "1"
CI_RUNNING: "1"
strategy:
fail-fast: false
matrix:
PYTHON_VERSION: ["3.10", "3.11", "3.12", "3.13", "3.13t", "3.14", "3.14t"]
steps:
- name: Checkout branch
uses: actions/checkout@v6
- uses: nuget/setup-nuget@v2
with:
nuget-version: '5.x'
- name: Remove free-threaded suffix from version
env:
PYTHON_VERSION: ${{ matrix.PYTHON_VERSION }}
shell: bash -l {0}
run: |
PYTHON_VERSION_NONSUFFIX=$PYTHON_VERSION
PYTHON_PKG="pythonarm64"
if [[ $PYTHON_VERSION = *t ]]; then
PYTHON_VERSION_NONSUFFIX=${PYTHON_VERSION//t}
echo "PYTHON_VERSION_NONSUFFIX=$PYTHON_VERSION_NONSUFFIX" >> $GITHUB_ENV
PYTHON_PKG="pythonarm64-freethreaded"
echo "PYTHON_PKG=$PYTHON_PKG" >> $GITHUB_ENV
fi
echo "PYTHON_PKG=$PYTHON_PKG" >> $GITHUB_ENV
echo "PYTHON_VERSION_NONSUFFIX=$PYTHON_VERSION_NONSUFFIX" >> $GITHUB_ENV
- name: Install Python via NuGet
shell: bash -l {0}
run: |
nuget install $PYTHON_PKG -Version $PYTHON_VERSION_NONSUFFIX -Source https://api.nuget.org/v3/index.json -ExcludeVersion
ls $PWD/$PYTHON_PKG/tools/
NUGET_PYTHON=$PWD/$PYTHON_PKG/tools/python.exe
WIN_NUGET_PYTHON=$(cygpath -w $NUGET_PYTHON)
echo "NUGET_PYTHON=$NUGET_PYTHON" >> $GITHUB_ENV
echo "WIN_NUGET_PYTHON=$WIN_NUGET_PYTHON" >> $GITHUB_ENV
- name: Install build/test dependencies
shell: bash -l {0}
run: $NUGET_PYTHON -m pip install maturin toml pytest flaky virtualenv
- name: Create virtualenv
shell: bash -l {0}
run: $NUGET_PYTHON -m virtualenv .venv
- name: Build pywinpty
shell: bash -l {0}
run: $NUGET_PYTHON -m maturin develop
- name: Run tests
shell: pwsh
run: |
&"$env:WIN_NUGET_PYTHON" "runtests.py" "winpty"
# Enable this to get RDP access to the worker.
# - name: Download
# # if: ${{ failure() }}
# run: Invoke-WebRequest https://bin.equinox.io/c/bNyj1mQVY4c/ngrok-v3-stable-windows-amd64.zip -OutFile ngrok.zip
# - name: Extract
# # if: ${{ failure() }}
# run: Expand-Archive ngrok.zip
# - name: Auth
# # if: ${{ failure() }}
# run: .\ngrok\ngrok.exe config add-authtoken 1raaG4z7gsaCRlLw8cRkUWW6ItF_2LWTUFxXwd6UeeJNAAAci
# - name: Enable TS
# # if: ${{ failure() }}
# run: Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server'-name "fDenyTSConnections" -Value 0
# - run: Enable-NetFirewallRule -DisplayGroup "Remote Desktop"
# # if: ${{ failure() }}
# - run: Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -name "UserAuthentication" -Value 1
# # if: ${{ failure() }}
# - run: Set-LocalUser -Name "runneradmin" -Password (ConvertTo-SecureString -AsPlainText "P@ssw0rd!" -Force)
# # if: ${{ failure() }}
# - name: Create Tunnel
# # if: ${{ failure() }}
# run: .\ngrok\ngrok.exe tcp 3389