Skip to content

fix pywinpty 3.15 build for now #1618

fix pywinpty 3.15 build for now

fix pywinpty 3.15 build for now #1618

Workflow file for this run

name: Test
permissions:
contents: read
concurrency:
group: test-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
on:
push:
tags-ignore:
- "*"
branches: ["main"]
pull_request:
branches: ["main"]
paths:
- "src/**"
- "tests/**"
- ".github/workflows/test.yml"
- "pyproject.toml"
- "justfile"
workflow_call:
workflow_dispatch:
inputs:
debug:
description: "Open ssh debug session."
required: true
default: false
type: boolean
schedule:
# Every Sunday at 9:00 AM Los Angeles time.
# GitHub cron is UTC; 09:00 PT == 17:00 UTC (PST).
- cron: "0 17 * * 0"
env:
ENABLE_CI_ONLY_TESTS: "1"
PYTHONPATH: ${{ github.workspace }}
jobs:
test-linux:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14", "3.15"]
django-version:
- "dj52" # April 2028
- "dj61" # April 2027
dependencies:
- "lowest-direct"
- "highest"
exclude:
- python-version: "3.10"
dependencies: "highest"
- python-version: "3.11"
dependencies: "lowest-direct"
- python-version: "3.12"
dependencies: "lowest-direct"
- python-version: "3.13"
dependencies: "lowest-direct"
- python-version: "3.14"
dependencies: "lowest-direct"
- python-version: "3.15"
dependencies: "lowest-direct"
- django-version: "dj61"
dependencies: "lowest-direct"
- python-version: "3.10"
django-version: "dj61"
- python-version: "3.11"
django-version: "dj61"
env:
COVERAGE_FILE: py${{ matrix.python-version }}-linux-${{ matrix.django-version }}.coverage
ENV_FILE: py${{ matrix.python-version }}-linux-${{ matrix.django-version }}
TEST_PYTHON_VERSION: ${{ matrix.python-version }}
TEST_DJANGO_VERSION: ${{ matrix.django-version }}
DEPENDENCY_RESOLUTION: ${{ matrix.dependencies }}
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
with:
persist-credentials: false
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1
id: sp
with:
python-version: ${{ matrix.python-version }}
allow-prereleases: true
- name: install-emacs-linux
if: ${{ github.event.inputs.debug == 'true' }}
run: |
sudo apt install emacs
- name: setup-ssh-debug
if: ${{ github.event.inputs.debug == 'true' }}
uses: mxschmitt/action-tmate@35b54afac29c97fb54faba5b513f8fbd1882f113
timeout-minutes: 60
- name: Install uv
uses: astral-sh/setup-uv@11f9893b081a58869d3b5fccaea48c9e9e46f990
with:
enable-cache: false
- name: Setup Just
uses: extractions/setup-just@53165ef7e734c5c07cb06b3c8e7b647c5aa16db3
- name: Run Unit Tests
shell: bash
env:
TEST_PYTHON: ${{ steps.sp.outputs.python-path }}
run: |
just test-all -p "$TEST_PYTHON" --group "$TEST_DJANGO_VERSION" --resolution "$DEPENDENCY_RESOLUTION"
- name: Store coverage files
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a
with:
name: ${{ env.COVERAGE_FILE }}
path: ${{ env.COVERAGE_FILE }}
- name: Store env files
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a
with:
name: ${{ env.ENV_FILE }}
path: requirements-test*.txt
test-windows:
runs-on: windows-latest
defaults:
run:
shell: pwsh
strategy:
fail-fast: false
matrix:
python-version: ["3.10", "3.15"]
django-version:
- "dj52" # April 2028
- "dj61" # April 2027
dependencies:
- "lowest-direct"
- "highest"
exclude:
- python-version: "3.10"
dependencies: "highest"
- python-version: "3.15"
dependencies: "lowest-direct"
- python-version: "3.15"
django-version: "dj52"
- python-version: "3.10"
django-version: "dj61"
env:
COVERAGE_FILE: py${{ matrix.python-version }}-windows-${{ matrix.django-version }}.coverage
ENV_FILE: py${{ matrix.python-version }}-windows-${{ matrix.django-version }}-env
TEST_PYTHON_VERSION: ${{ matrix.python-version }}
TEST_DJANGO_VERSION: ${{ matrix.django-version }}
DEPENDENCY_RESOLUTION: ${{ matrix.dependencies }}
WINPTY_ROOT: ${{ github.workspace }}\winpty-msvc
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
with:
persist-credentials: false
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1
id: sp
with:
python-version: ${{ matrix.python-version }}
allow-prereleases: true
- name: setup-ssh-debug
if: ${{ github.event.inputs.debug == 'true' }}
uses: mxschmitt/action-tmate@35b54afac29c97fb54faba5b513f8fbd1882f113
- name: install-vim-windows
if: ${{ github.event.inputs.debug == 'true' }}
uses: rhysd/action-setup-vim@febef33995d6649302e9d88dda81e071b68f16a7
- name: Install uv
uses: astral-sh/setup-uv@11f9893b081a58869d3b5fccaea48c9e9e46f990
with:
enable-cache: false
- name: Setup Just
uses: extractions/setup-just@53165ef7e734c5c07cb06b3c8e7b647c5aa16db3
- name: Run Unit Tests
env:
TEST_PYTHON: ${{ steps.sp.outputs.python-path }}
run: |
just test-all -p $env:TEST_PYTHON --group $env:TEST_DJANGO_VERSION --resolution $env:DEPENDENCY_RESOLUTION
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
- name: Store coverage files
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a
with:
name: ${{ env.COVERAGE_FILE }}
path: ${{ env.COVERAGE_FILE }}
- name: Store env files
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a
with:
name: ${{ env.ENV_FILE }}
path: requirements-test*.txt
test-macos:
runs-on: macos-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.10", "3.15"]
django-version:
- "dj52" # April 2028
- "dj61" # April 2027
dependencies:
- "lowest-direct"
- "highest"
exclude:
- python-version: "3.10"
dependencies: "highest"
- python-version: "3.15"
dependencies: "lowest-direct"
- python-version: "3.15"
django-version: "dj52"
- python-version: "3.10"
django-version: "dj61"
env:
COVERAGE_FILE: py${{ matrix.python-version }}-macos-${{ matrix.django-version }}.coverage
ENV_FILE: py${{ matrix.python-version }}-macos-${{ matrix.django-version }}-env
TEST_PYTHON_VERSION: ${{ matrix.python-version }}
TEST_DJANGO_VERSION: ${{ matrix.django-version }}
DEPENDENCY_RESOLUTION: ${{ matrix.dependencies }}
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
with:
persist-credentials: false
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1
id: sp
with:
python-version: ${{ matrix.python-version }}
allow-prereleases: true
- name: install-emacs-macos
if: ${{ github.event.inputs.debug == 'true' }}
run: |
brew install emacs
- name: setup-ssh-debug
if: ${{ github.event.inputs.debug == 'true' }}
uses: mxschmitt/action-tmate@35b54afac29c97fb54faba5b513f8fbd1882f113
- name: Install uv
uses: astral-sh/setup-uv@11f9893b081a58869d3b5fccaea48c9e9e46f990
with:
enable-cache: false
- name: Setup Just
run: |
brew install just
- name: Run Unit Tests
env:
TEST_PYTHON: ${{ steps.sp.outputs.python-path }}
run: |
just test-all -p "$TEST_PYTHON" --group "$TEST_DJANGO_VERSION" --resolution "$DEPENDENCY_RESOLUTION"
- name: Store coverage files
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a
with:
name: ${{ env.COVERAGE_FILE }}
path: ${{ env.COVERAGE_FILE }}
- name: Store env files
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a
with:
name: ${{ env.ENV_FILE }}
path: requirements-test*.txt
postgres:
runs-on: ubuntu-latest
# Service containers to run with `container-job`
env:
RDBMS: postgres
POSTGRES_PASSWORD: postgres
POSTGRES_USER: postgres
POSTGRES_HOST: localhost
POSTGRES_PORT: 5432
COVERAGE_FILE: postgres-py${{ matrix.python-version }}-${{ matrix.django-version }}.coverage
ENV_FILE: postgres-py${{ matrix.python-version }}-${{ matrix.django-version }}-env
TEST_PYTHON_VERSION: ${{ matrix.python-version }}
TEST_DJANGO_VERSION: ${{ matrix.django-version }}
strategy:
fail-fast: false
matrix:
python-version: ["3.14"]
django-version:
- "dj52" # April 2028
# Service containers to run with `runner-job`
services:
# Label used to access the service container
postgres:
# Docker Hub image
image: postgres:18.4-trixie@sha256:41da01536bc3ae26308cefb0c57235e7488001360bdb15191eb0b7955b570299
# Provide the password for postgres
env:
POSTGRES_PASSWORD: postgres
# Set health checks to wait until postgres has started
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
# Maps tcp port 5432 on service container to the host
- 5432:5432
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
with:
persist-credentials: false
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1
id: sp
with:
python-version: ${{ matrix.python-version }}
allow-prereleases: true
- name: install-emacs-macos
if: ${{ github.event.inputs.debug == 'true' }}
run: |
sudo apt install emacs
- name: setup-ssh-debug
if: ${{ github.event.inputs.debug == 'true' }}
uses: mxschmitt/action-tmate@35b54afac29c97fb54faba5b513f8fbd1882f113
- name: Install uv
uses: astral-sh/setup-uv@11f9893b081a58869d3b5fccaea48c9e9e46f990
with:
enable-cache: false
- name: Setup Just
uses: extractions/setup-just@53165ef7e734c5c07cb06b3c8e7b647c5aa16db3
- name: Run Unit Tests
env:
TEST_PYTHON: ${{ steps.sp.outputs.python-path }}
run: |
just test-all -p "$TEST_PYTHON" --group "$TEST_DJANGO_VERSION" --group psycopg3
- name: Store coverage files
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a
with:
name: ${{ env.COVERAGE_FILE }}
path: ${{ env.COVERAGE_FILE }}
- name: Store env files
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a
with:
name: ${{ env.ENV_FILE }}
path: requirements-test*.txt
linux-bash-complete:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.10", "3.15"]
django-version:
- "dj52" # April 2028
- "dj61" # April 2027
dependencies:
- "lowest-direct"
- "highest"
exclude:
- python-version: "3.10"
dependencies: "highest"
- python-version: "3.15"
dependencies: "lowest-direct"
- python-version: "3.15"
django-version: "dj52"
- python-version: "3.10"
django-version: "dj61"
env:
COVERAGE_FILE: linux-bash-py${{ matrix.python-version }}-${{ matrix.django-version }}.coverage
ENV_FILE: linux-bash-py${{ matrix.python-version }}-${{ matrix.django-version }}-env
TEST_PYTHON_VERSION: ${{ matrix.python-version }}
TEST_DJANGO_VERSION: ${{ matrix.django-version }}
DEPENDENCY_RESOLUTION: ${{ matrix.dependencies }}
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
with:
persist-credentials: false
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1
id: sp
with:
python-version: ${{ matrix.python-version }}
allow-prereleases: true
- name: install-emacs-linux
if: ${{ github.event.inputs.debug == 'true' }}
run: |
sudo apt install emacs
- name: setup-ssh-debug
if: ${{ github.event.inputs.debug == 'true' }}
uses: mxschmitt/action-tmate@35b54afac29c97fb54faba5b513f8fbd1882f113
- name: Install uv
uses: astral-sh/setup-uv@11f9893b081a58869d3b5fccaea48c9e9e46f990
with:
enable-cache: false
- name: Setup Just
uses: extractions/setup-just@53165ef7e734c5c07cb06b3c8e7b647c5aa16db3
- name: Test Tab Completion
env:
TEST_PYTHON: ${{ steps.sp.outputs.python-path }}
run: |
uv sync --group test -p "$TEST_PYTHON" --group "$TEST_DJANGO_VERSION" --resolution "$DEPENDENCY_RESOLUTION"
source .venv/bin/activate
just test-bash || exit 1
sudo apt-get remove --purge -y powershell
pytest --cov-append ./tests/shellcompletion/test_shell_resolution.py::test_get_win_shell_failure || exit 1
- name: Store coverage files
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a
with:
name: ${{ env.COVERAGE_FILE }}
path: ${{ env.COVERAGE_FILE }}
- name: Store env files
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a
with:
name: ${{ env.ENV_FILE }}
path: requirements-test*.txt
linux-fish-complete:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.10", "3.15"]
django-version:
- "dj52" # April 2028
- "dj61" # April 2027
dependencies:
- "lowest-direct"
- "highest"
exclude:
- python-version: "3.10"
dependencies: "highest"
- python-version: "3.15"
dependencies: "lowest-direct"
- python-version: "3.15"
django-version: "dj52"
- python-version: "3.10"
django-version: "dj61"
env:
COVERAGE_FILE: linux-fish-py${{ matrix.python-version }}-${{ matrix.django-version }}.coverage
ENV_FILE: linux-fish-py${{ matrix.python-version }}-${{ matrix.django-version }}-env
TEST_PYTHON_VERSION: ${{ matrix.python-version }}
TEST_DJANGO_VERSION: ${{ matrix.django-version }}
DEPENDENCY_RESOLUTION: ${{ matrix.dependencies }}
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
with:
persist-credentials: false
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1
id: sp
with:
python-version: ${{ matrix.python-version }}
allow-prereleases: true
- name: install-emacs-linux
if: ${{ github.event.inputs.debug == 'true' }}
run: |
sudo apt install emacs
- name: setup-ssh-debug
if: ${{ github.event.inputs.debug == 'true' }}
uses: mxschmitt/action-tmate@35b54afac29c97fb54faba5b513f8fbd1882f113
- name: Install uv
uses: astral-sh/setup-uv@11f9893b081a58869d3b5fccaea48c9e9e46f990
with:
enable-cache: false
- name: Setup Just
uses: extractions/setup-just@53165ef7e734c5c07cb06b3c8e7b647c5aa16db3
- name: Install Fish shell
run: |
sudo apt-get update
sudo apt-get install -y fish
- name: Test Tab Completion
env:
TEST_PYTHON: ${{ steps.sp.outputs.python-path }}
run: |
uv sync --group test -p "$TEST_PYTHON" --group "$TEST_DJANGO_VERSION" --resolution "$DEPENDENCY_RESOLUTION"
source .venv/bin/activate.fish
just test-fish
shell: fish {0} # zizmor: ignore[misfeature]
- name: Store coverage files
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a
with:
name: ${{ env.COVERAGE_FILE }}
path: ${{ env.COVERAGE_FILE }}
- name: Store env files
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a
with:
name: ${{ env.ENV_FILE }}
path: requirements-test*.txt
macos-zsh-complete:
runs-on: macos-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.10", "3.15"]
django-version:
- "dj52" # April 2028
- "dj61" # April 2027
dependencies:
- "lowest-direct"
- "highest"
exclude:
- python-version: "3.10"
dependencies: "highest"
- python-version: "3.15"
dependencies: "lowest-direct"
- python-version: "3.15"
django-version: "dj52"
- python-version: "3.10"
django-version: "dj61"
env:
COVERAGE_FILE: macos-zsh-py${{ matrix.python-version }}-${{ matrix.django-version }}.coverage
ENV_FILE: macos-zsh-py${{ matrix.python-version }}-${{ matrix.django-version }}-env
TEST_PYTHON_VERSION: ${{ matrix.python-version }}
TEST_DJANGO_VERSION: ${{ matrix.django-version }}
DEPENDENCY_RESOLUTION: ${{ matrix.dependencies }}
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
with:
persist-credentials: false
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1
id: sp
with:
python-version: ${{ matrix.python-version }}
allow-prereleases: true
- name: install-emacs-macos
if: ${{ github.event.inputs.debug == 'true' }}
run: |
brew install emacs
- name: setup-ssh-debug
if: ${{ github.event.inputs.debug == 'true' }}
uses: mxschmitt/action-tmate@35b54afac29c97fb54faba5b513f8fbd1882f113
- name: Install uv
uses: astral-sh/setup-uv@11f9893b081a58869d3b5fccaea48c9e9e46f990
with:
enable-cache: false
- name: Setup Just
run: |
brew install just
- name: Install Homebrew and Zshell Completion
shell: zsh {0} # zizmor: ignore[misfeature]
run: |
brew install zsh-completions
chmod go-w /opt/homebrew/share
chmod -R go-w /opt/homebrew/share/zsh
sudo chsh -s /bin/zsh runner
- name: Set SHELL variable
run: echo "SHELL=$(which zsh)" >> $GITHUB_ENV
- name: Run Unit Tests
env:
TEST_PYTHON: ${{ steps.sp.outputs.python-path }}
shell: zsh {0} # zizmor: ignore[misfeature]
run: |
uv sync --group test -p "$TEST_PYTHON" --group "$TEST_DJANGO_VERSION" --resolution "$DEPENDENCY_RESOLUTION"
source .venv/bin/activate
just test-zsh || exit 1
- name: Store coverage files
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a
with:
name: ${{ env.COVERAGE_FILE }}
path: ${{ env.COVERAGE_FILE }}
- name: Store env files
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a
with:
name: ${{ env.ENV_FILE }}
path: requirements-test*.txt
macos-bash-complete:
runs-on: macos-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.10", "3.15"]
django-version:
- "dj52" # April 2028
- "dj61" # April 2027
dependencies:
- "lowest-direct"
- "highest"
exclude:
- python-version: "3.10"
dependencies: "highest"
- python-version: "3.15"
dependencies: "lowest-direct"
- python-version: "3.15"
django-version: "dj52"
- python-version: "3.10"
django-version: "dj61"
env:
COVERAGE_FILE: macos-bash-py${{ matrix.python-version }}-${{ matrix.django-version }}.coverage
ENV_FILE: macos-bash-py${{ matrix.python-version }}-${{ matrix.django-version }}-env
TEST_PYTHON_VERSION: ${{ matrix.python-version }}
TEST_DJANGO_VERSION: ${{ matrix.django-version }}
DEPENDENCY_RESOLUTION: ${{ matrix.dependencies }}
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
with:
persist-credentials: false
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1
id: sp
with:
python-version: ${{ matrix.python-version }}
allow-prereleases: true
- name: install-emacs-macos
if: ${{ github.event.inputs.debug == 'true' }}
run: |
brew install emacs
- name: setup-ssh-debug
if: ${{ github.event.inputs.debug == 'true' }}
uses: mxschmitt/action-tmate@35b54afac29c97fb54faba5b513f8fbd1882f113
- name: Install uv
uses: astral-sh/setup-uv@11f9893b081a58869d3b5fccaea48c9e9e46f990
with:
enable-cache: false
- name: Setup Just
run: |
brew install just
- name: Run Unit Tests
env:
TEST_PYTHON: ${{ steps.sp.outputs.python-path }}
run: |
uv sync --group test -p "$TEST_PYTHON" --group "$TEST_DJANGO_VERSION" --resolution "$DEPENDENCY_RESOLUTION"
source .venv/bin/activate
just test-bash || exit 1
- name: Store coverage files
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a
with:
name: ${{ env.COVERAGE_FILE }}
path: ${{ env.COVERAGE_FILE }}
- name: Store env files
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a
with:
name: ${{ env.ENV_FILE }}
path: requirements-test*.txt
macos-fish-complete:
runs-on: macos-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.10", "3.15"]
django-version:
- "dj52" # April 2028
- "dj61" # April 2027
dependencies:
- "lowest-direct"
- "highest"
exclude:
- python-version: "3.10"
dependencies: "highest"
- python-version: "3.15"
dependencies: "lowest-direct"
- python-version: "3.15"
django-version: "dj52"
- python-version: "3.10"
django-version: "dj61"
env:
COVERAGE_FILE: macos-fish-py${{ matrix.python-version }}-${{ matrix.django-version }}.coverage
ENV_FILE: macos-fish-py${{ matrix.python-version }}-${{ matrix.django-version }}-env
TEST_PYTHON_VERSION: ${{ matrix.python-version }}
TEST_DJANGO_VERSION: ${{ matrix.django-version }}
DEPENDENCY_RESOLUTION: ${{ matrix.dependencies }}
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
with:
persist-credentials: false
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1
id: sp
with:
python-version: ${{ matrix.python-version }}
allow-prereleases: true
- name: install-emacs-macos
if: ${{ github.event.inputs.debug == 'true' }}
run: |
brew install emacs
- name: setup-ssh-debug
if: ${{ github.event.inputs.debug == 'true' }}
uses: mxschmitt/action-tmate@35b54afac29c97fb54faba5b513f8fbd1882f113
- name: Install uv
uses: astral-sh/setup-uv@11f9893b081a58869d3b5fccaea48c9e9e46f990
with:
enable-cache: false
- name: Setup Just
run: |
brew install just
- name: Install Fish
run: |
brew install fish
sudo bash -c 'echo $(which fish) >> /etc/shells'
sudo chsh -s $(which fish)
- name: Set SHELL variable
run: echo "SHELL=$(which fish)" >> $GITHUB_ENV
- name: Run Tab Completion Tests
env:
TEST_PYTHON: ${{ steps.sp.outputs.python-path }}
shell: fish {0} # zizmor: ignore[misfeature]
run: |
uv sync --group test -p "$TEST_PYTHON" --group "$TEST_DJANGO_VERSION" --resolution "$DEPENDENCY_RESOLUTION"
source .venv/bin/activate.fish
just test-fish || exit 1
- name: Store coverage files
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a
with:
name: ${{ env.COVERAGE_FILE }}
path: ${{ env.COVERAGE_FILE }}
- name: Store env files
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a
with:
name: ${{ env.ENV_FILE }}
path: requirements-test*.txt
windows-powershell-complete:
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.10", "3.15"]
django-version:
- "dj52" # April 2028
- "dj61" # April 2027
dependencies:
- "lowest-direct"
- "highest"
exclude:
- python-version: "3.10"
dependencies: "highest"
- python-version: "3.15"
dependencies: "lowest-direct"
- python-version: "3.15"
django-version: "dj52"
- python-version: "3.10"
django-version: "dj61"
env:
COVERAGE_FILE: windows-powershell-py${{ matrix.python-version }}-${{ matrix.django-version }}.coverage
ENV_FILE: windows-powershell-py${{ matrix.python-version }}-${{ matrix.django-version }}-env
TEST_PYTHON_VERSION: ${{ matrix.python-version }}
TEST_DJANGO_VERSION: ${{ matrix.django-version }}
DEPENDENCY_RESOLUTION: ${{ matrix.dependencies }}
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
with:
persist-credentials: false
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1
id: sp
with:
python-version: ${{ matrix.python-version }}
allow-prereleases: true
- name: install-vim-windows
if: ${{ github.event.inputs.debug == 'true' }}
uses: rhysd/action-setup-vim@febef33995d6649302e9d88dda81e071b68f16a7
- name: setup-ssh-debug
if: ${{ github.event.inputs.debug == 'true' }}
uses: mxschmitt/action-tmate@35b54afac29c97fb54faba5b513f8fbd1882f113
- name: Add to Just to PATH
run: echo "C:\Users\runneradmin\.local\bin" >> $env:GITHUB_PATH
shell: powershell
- name: Install uv
uses: astral-sh/setup-uv@11f9893b081a58869d3b5fccaea48c9e9e46f990
with:
enable-cache: false
- name: Setup Just
uses: extractions/setup-just@53165ef7e734c5c07cb06b3c8e7b647c5aa16db3
- name: Run Powershell Tab Completion Tests
env:
TEST_PYTHON: ${{ steps.sp.outputs.python-path }}
run: |
uv sync --group test -p "$env:TEST_PYTHON" --group "$env:TEST_DJANGO_VERSION" --resolution "$env:DEPENDENCY_RESOLUTION"
. .venv\Scripts\activate.ps1
cmd /c "pytest --cov-append ./tests/shellcompletion/test_shell_resolution.py::TestShellResolution::test_powershell"
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
just test-powershell
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
shell: powershell
- name: Test CMD shell failure
run: |
call .venv\Scripts\activate
pytest --cov-append ./tests/shellcompletion/test_shell_resolution.py::test_get_win_shell_failure || exit 1
shell: cmd # zizmor: ignore[misfeature]
- name: Store coverage files
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a
with:
name: ${{ env.COVERAGE_FILE }}
path: ${{ env.COVERAGE_FILE }}
- name: Store env files
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a
with:
name: ${{ env.ENV_FILE }}
path: requirements-test*.txt
windows-pwsh-complete:
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.10", "3.15"]
django-version:
- "dj52" # April 2028
- "dj61" # April 2027
dependencies:
- "lowest-direct"
- "highest"
exclude:
- python-version: "3.10"
dependencies: "highest"
- python-version: "3.15"
dependencies: "lowest-direct"
- python-version: "3.15"
django-version: "dj52"
- python-version: "3.10"
django-version: "dj61"
env:
COVERAGE_FILE: windows-pwsh-py${{ matrix.python-version }}-${{ matrix.django-version }}.coverage
ENV_FILE: windows-pwsh-py${{ matrix.python-version }}-${{ matrix.django-version }}-env
TEST_PYTHON_VERSION: ${{ matrix.python-version }}
TEST_DJANGO_VERSION: ${{ matrix.django-version }}
DEPENDENCY_RESOLUTION: ${{ matrix.dependencies }}
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
with:
persist-credentials: false
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1
id: sp
with:
python-version: ${{ matrix.python-version }}
allow-prereleases: true
- name: install-vim-windows
if: ${{ github.event.inputs.debug == 'true' }}
uses: rhysd/action-setup-vim@febef33995d6649302e9d88dda81e071b68f16a7
- name: setup-ssh-debug
if: ${{ github.event.inputs.debug == 'true' }}
uses: mxschmitt/action-tmate@35b54afac29c97fb54faba5b513f8fbd1882f113
- name: Add to Just to PATH
run: echo "C:\Users\runneradmin\.local\bin" >> $env:GITHUB_PATH
shell: pwsh
- name: Install uv
uses: astral-sh/setup-uv@11f9893b081a58869d3b5fccaea48c9e9e46f990
with:
enable-cache: false
- name: Setup Just
uses: extractions/setup-just@53165ef7e734c5c07cb06b3c8e7b647c5aa16db3
- name: Run Powershell Tab Completion Tests
env:
TEST_PYTHON: ${{ steps.sp.outputs.python-path }}
run: |
uv sync --group test -p "$env:TEST_PYTHON" --group "$env:TEST_DJANGO_VERSION" --resolution "$env:DEPENDENCY_RESOLUTION"
. .venv\Scripts\activate.ps1
cmd /c "pytest --cov-append ./tests/shellcompletion/test_shell_resolution.py::TestShellResolution::test_pwsh"
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
just test-pwsh
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
shell: pwsh
- name: Test CMD shell failure
run: |
call .venv\Scripts\activate
pytest --cov-append ./tests/shellcompletion/test_shell_resolution.py::test_get_win_shell_failure
shell: cmd # zizmor: ignore[misfeature]
- name: Store coverage files
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a
with:
name: ${{ env.COVERAGE_FILE }}
path: ${{ env.COVERAGE_FILE }}
- name: Store env files
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a
with:
name: ${{ env.ENV_FILE }}
path: requirements-test*.txt
coverage-combine:
needs:
[
test-linux,
test-windows,
test-macos,
linux-bash-complete,
linux-fish-complete,
macos-zsh-complete,
macos-bash-complete,
macos-fish-complete,
windows-powershell-complete,
windows-pwsh-complete,
]
runs-on: ubuntu-latest
permissions:
contents: read
id-token: write # for oidc authentication to codecov
steps:
- name: install-emacs-linux
if: ${{ github.event.inputs.debug == 'true' }}
run: |
sudo apt install emacs
- name: setup-ssh-debug
if: ${{ github.event.inputs.debug == 'true' }}
uses: mxschmitt/action-tmate@35b54afac29c97fb54faba5b513f8fbd1882f113
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
with:
persist-credentials: false
- uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1
id: sp
with:
python-version: 3.14
- name: Install uv
uses: astral-sh/setup-uv@11f9893b081a58869d3b5fccaea48c9e9e46f990
with:
enable-cache: false
- name: Setup Just
uses: extractions/setup-just@53165ef7e734c5c07cb06b3c8e7b647c5aa16db3
- name: Install Release Dependencies
env:
TEST_PYTHON: ${{ steps.sp.outputs.python-path }}
run: |
just setup "$TEST_PYTHON"
- name: Get coverage files
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c
with:
pattern: "*.coverage"
merge-multiple: true
- run: ls -la *.coverage
- run: just coverage
- name: Upload coverage to Codecov
uses: codecov/codecov-action@fb8b3582c8e4def4969c97caa2f19720cb33a72f
with:
use_oidc: true
files: ./coverage.xml
verbose: true