Skip to content

[CI] Use Python 3.12 as default for tests #2421

[CI] Use Python 3.12 as default for tests

[CI] Use Python 3.12 as default for tests #2421

Workflow file for this run

name: Tests
on:
workflow_dispatch:
pull_request:
branches:
- 'master'
push:
branches:
- 'master'
create:
branches:
- 'master'
tags:
- '**'
jobs:
linux:
runs-on: ubuntu-latest
if: "!contains(github.event.head_commit.message, 'no ci')"
strategy:
max-parallel: 4
matrix:
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install POT
run: |
pip install -e .
- name: Install dependencies
run: |
python -m pip install --upgrade pip setuptools
pip install -r requirements_all.txt
pip install pytest pytest-cov
- name: Run tests
run: |
python -m pytest --durations=20 -v test/ ot/ --doctest-modules --color=yes --cov=./ --cov-report=xml
- name: Upload coverage reports to Codecov with GitHub Action
uses: codecov/codecov-action@v3
pep8:
runs-on: ubuntu-latest
if: "!contains(github.event.head_commit.message, 'no pep8')"
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.x"
- name: Install dependencies
run: |
python -m pip install --upgrade pip setuptools
pip install flake8
- name: Lint with flake8
run: |
# stop the build if there are Python syntax errors or undefined names
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
flake8 examples/ ot/ test/ --count --max-line-length=127 --statistics
linux-minimal-deps:
runs-on: ubuntu-latest
if: "!contains(github.event.head_commit.message, 'no ci')"
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Install dependencies
run: |
python -m pip install --upgrade pip setuptools
pip install pytest pytest-cov
- name: Install POT
run: |
pip install -e .
- name: Run tests
run: |
python -m pytest --durations=20 -v test/ ot/ --color=yes --cov=./ --cov-report=xml
- name: Upload coverage reports to Codecov with GitHub Action
uses: codecov/codecov-action@v3
macos:
runs-on: ${{ matrix.os }}
if: "!contains(github.event.head_commit.message, 'no ci')"
strategy:
max-parallel: 4
matrix:
os: [macos-latest, macos-13]
python-version: ["3.12"]
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install POT
run: |
pip install -e .
- name: Install dependencies
run: |
python -m pip install --upgrade pip setuptools
pip install -r requirements_all.txt
pip install pytest
- name: Run tests
run: |
python -m pytest --durations=20 -v test/ ot/ --color=yes
windows:
runs-on: windows-latest
if: "!contains(github.event.head_commit.message, 'no ci')"
strategy:
max-parallel: 4
matrix:
python-version: ["3.12"]
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: RC.exe
run: |
function Invoke-VSDevEnvironment {
$vswhere = "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe"
$installationPath = & $vswhere -prerelease -legacy -latest -property installationPath
$Command = Join-Path $installationPath "Common7\Tools\vsdevcmd.bat"
& "${env:COMSPEC}" /s /c "`"$Command`" -no_logo && set" | Foreach-Object {
if ($_ -match '^([^=]+)=(.*)') {
[System.Environment]::SetEnvironmentVariable($matches[1], $matches[2])
}
}
}
Invoke-VSDevEnvironment
Get-Command rc.exe | Format-Table -AutoSize
- name: Update pip
run : |
python -m pip install --upgrade pip setuptools
python -m pip install cython
- name: Install POT
run: |
python -m pip install -e .
- name: Install dependencies
run: |
python -m pip install -r .github/requirements_test_windows.txt
python -m pip3 install torch torchvision torchaudio
python -m pip install pytest
- name: Run tests
run: |
python -m pytest --durations=20 -v test/ ot/ --color=yes