Skip to content

Ability to complete partial enum values #2215

Ability to complete partial enum values

Ability to complete partial enum values #2215

Workflow file for this run

name: CI
on:
pull_request:
paths-ignore:
- '**.md'
- '**.rst'
- 'LICENSE.txt'
- 'doc/**/*.txt'
- '**/AUTHORS'
- '**/SPONSORS'
- '**/TIPS'
jobs:
tests:
name: Tests
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.11", "3.12", "3.13", "3.14"]
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: astral-sh/setup-uv@bec219d24cd3e171d82865faccec33120bb574f4 # v10.1.0
with:
version: "latest"
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
with:
python-version: ${{ matrix.python-version }}
- name: Start MySQL
run: |
sudo /etc/init.d/mysql start
- name: Install dependencies
run: uv sync --all-extras -p ${{ matrix.python-version }}
- name: Wait for MySQL connection
run: |
while ! mysqladmin ping --host=localhost --port=3306 --user=root --password=root --silent; do
sleep 5
done
- name: Pytest / behave
env:
PYTEST_PASSWORD: root
PYTEST_HOST: 127.0.0.1
TERM: xterm
run: |
uv run tox -e py${{ matrix.python-version }}
tests-macos:
name: Tests macOS
runs-on: macos-latest
strategy:
fail-fast: false
matrix:
python-version: ["3.14"]
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: astral-sh/setup-uv@bec219d24cd3e171d82865faccec33120bb574f4 # v10.1.0
with:
version: "latest"
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
with:
python-version: ${{ matrix.python-version }}
- name: Set up MySQL
run: |
brew install mysql
- name: Start MySQL
run: |
brew services start mysql
- name: Install dependencies
run: uv sync --all-extras -p ${{ matrix.python-version }}
- name: Wait for MySQL connection
run: |
while ! mysqladmin ping --host=localhost --port=3306 --user=root --silent; do
sleep 5
done
- name: Set MySQL test credentials
run: |
$(brew --prefix mysql)/bin/mysqladmin --host=localhost --port=3306 --user=root password root
- name: Pytest / behave
env:
PYTEST_PASSWORD: root
PYTEST_HOST: 127.0.0.1
TERM: xterm
run: |
uv run tox -e py${{ matrix.python-version }}
tests-windows:
name: Tests Windows
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
python-version: ['3.14']
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: astral-sh/setup-uv@bec219d24cd3e171d82865faccec33120bb574f4 # v10.1.0
with:
version: 'latest'
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
shell: cmd
run: uv sync --all-extras -p ${{ matrix.python-version }}
- name: Set up MySQL
uses: shogo82148/actions-setup-mysql@083ec148d28e62f2b24b8f4541693dfe1d50488d # v1.54.0
with:
mysql-version: '9.7'
root-password: root
- name: Run pytest
env:
PYTEST_PASSWORD: root
PYTEST_HOST: 127.0.0.1
run: |
uv run -- coverage run -m pytest
uv run -- coverage report -m --sort=Miss --skip-covered --skip-empty
tests-wsl:
name: Tests WSL (3.14)
runs-on: windows-latest
steps:
- uses: vampire/setup-wsl@d1da7f2c0322a5ee4f24975344f67fc0f5baf364 # v7.0.0
with:
distribution: Ubuntu-24.04
use-cache: 'true'
update: 'false'
additional-packages: |
curl
git
mysql-server
pkg-config
build-essential
python3-pip
- name: Create working directory
shell: wsl-bash {0}
run: |
mkdir -p /root/mycli
- uses: ubuntu/wsl/.github/actions/wsl-checkout@3b7a6b2a43af18aa541eeee1669ac27656630097
with:
distro: Ubuntu-24.04
working-dir: /root/mycli
- name: Install uv
shell: wsl-bash {0}
run: |
export PATH="$HOME/.local/bin:$PATH"
env PYTHONPATH=/usr/local/lib/python3.14/site-packages pip install --upgrade --break-system-packages --prefix=/usr uv
- name: Install dependencies
shell: wsl-bash {0}
run: |
export PATH="$HOME/.local/bin:$PATH"
cd /root/mycli
uv sync --all-extras --python 3.14
- name: Start MySQL in WSL
shell: wsl-bash {0}
run: |
sudo service mysql start
- name: Wait for MySQL connection
shell: wsl-bash {0}
run: |
while ! mysqladmin ping --host=localhost --port=3306 --user=root --silent; do
sleep 5
done
- name: Set up MySQL
shell: wsl-bash {0}
run: |
mysqladmin -u root password root
- name: Run pytest
shell: wsl-bash {0}
env:
PYTEST_HOST: 127.0.0.1
PYTEST_USER: root
PYTEST_PASSWORD: root
run: |
export PATH="$HOME/.local/bin:$PATH"
cd /root/mycli
uv run --python 3.14 -- coverage run -m pytest
uv run --python 3.14 -- coverage report -m --sort=Miss --skip-covered --skip-empty
test-no-extras:
name: Tests Without Extras (3.14)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: astral-sh/setup-uv@bec219d24cd3e171d82865faccec33120bb574f4 # v10.1.0
with:
version: "latest"
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
with:
python-version: '3.14'
- name: Start MySQL
run: |
sudo /etc/init.d/mysql start
- name: Install dependencies
run: uv sync --extra dev -p python3.14
- name: Wait for MySQL connection
run: |
while ! mysqladmin ping --host=localhost --port=3306 --user=root --password=root --silent; do
sleep 5
done
- name: Pytest / behave
env:
PYTEST_PASSWORD: root
PYTEST_HOST: 127.0.0.1
TERM: xterm
run: |
uv run tox -e py3.14
docker-x86-build:
name: Build x86 Docker Image
runs-on: ubuntu-latest
permissions:
contents: read
# simpler than the steps in publish.yml, because we don't do the slow buildx multiarch
steps:
- name: Checkout repository
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Build Docker image
id: build
uses: docker/build-push-action@c3c9e263c25d99ce0380d002d59b67737d91b0dc # v7.4.0
with:
context: .
file: docker/Dockerfile
push: false
docker-arm-build:
name: Build ARM Docker Image
runs-on: ubuntu-24.04-arm
permissions:
contents: read
# simpler than the steps in publish.yml, because we don't do the slow buildx multiarch
steps:
- name: Checkout repository
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: Build Docker image
id: build
uses: docker/build-push-action@c3c9e263c25d99ce0380d002d59b67737d91b0dc # v7.4.0
with:
context: .
file: docker/Dockerfile
push: false