Add CI on windows-latest, for Python 3.14 only #1747
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: Inspect MySQL installation | |
| shell: cmd | |
| run: | | |
| dir "C:\Program Files\MySQL" | |
| dir "C:\Program Files\MySQL\MySQL Server 8.0" | |
| "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld" --help --verbose | |
| - name: Inspect home directory | |
| run: | | |
| $HOME | |
| - name: Initialize MySQL | |
| shell: cmd | |
| run: | | |
| mkdir "C:\Users\runneradmin\mysql_data" | |
| "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld" --initialize-insecure --user=root --datadir=C:\Users\runneradmin\mysql_data | |
| - name: Start MySQL | |
| shell: cmd | |
| run: | | |
| "C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld" --port=3306 --datadir=C:\Users\runneradmin\mysql_data | |
| - 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 | |
| shell: cmd | |
| run: | | |
| "C:\Program Files\MySQL\MySQL Server 8.0\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 }} | |
| 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 |