Add CI on windows-latest, for Python 3.14 only #1760
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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.10", "3.11", "3.12", "3.13", "3.14"] | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 | |
| with: | |
| version: "latest" | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.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@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 | |
| with: | |
| version: "latest" | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.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@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 | |
| with: | |
| version: 'latest' | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Start MySQL | |
| uses: shogo82148/actions-setup-mysql@c80f44ab210a360ef966c5b9f48a2ae21123b533 # v1.51.0 | |
| with: | |
| mysql-version: '8.0' | |
| root-password: root | |
| - name: Install dependencies | |
| shell: cmd | |
| run: uv sync --all-extras -p ${{ matrix.python-version }} | |
| - name: Pytest / behave | |
| 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 | |
| test-no-extras: | |
| name: Tests Without Extras | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| - uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0 | |
| with: | |
| version: "latest" | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.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 |