Merge pull request #126 from odrling/ci-mpv-0.38 #53
This file contains 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: Tests | |
on: | |
pull_request: | |
push: | |
branches: | |
- master | |
- develop | |
jobs: | |
unit-tests: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: | |
- ubuntu-latest | |
# MacOS disabled for now | |
- windows-latest | |
python-version: | |
- "3.8" | |
- "3.9" | |
- "3.10" | |
- "3.11" | |
- "3.12" | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
cache: "pip" | |
- name: Install python tests dependencies | |
run: pip install -e ".[dev]" | |
- name: Run tests | |
run: python -m pytest -v --cov-report xml:coverage.xml --cov src tests/unit | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ matrix.os }}-${{ matrix.python-version }}-unit-tests-coverage | |
path: ./coverage.xml | |
integration-tests: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: | |
- ubuntu-20.04 # FIXME release this lock when possible | |
# MacOS disabled for now | |
- windows-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: "3.12" | |
cache: "pip" | |
- name: Install native dependencies (Ubuntu) | |
run: sudo apt-get update && sudo apt-get install -y vlc mpv | |
if: matrix.os == 'ubuntu-20.04' | |
- name: Install native dependencies (MacOS) | |
run: brew install vlc mpv | |
if: matrix.os == 'macos-latest' | |
- name: Install native dependencies (Windows) | |
run: | | |
choco install --no-progress vlc | |
choco install mpvio.install --no-progress | |
# update the PATH variable (because shims are not possible for vlc/mpv) | |
Import-Module $env:ChocolateyInstall\helpers\chocolateyProfile.psm1 | |
refreshenv | |
$splitPath = $Env:PATH -split ";" | |
echo $splitPath | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append | |
if: matrix.os == 'windows-latest' | |
- name: Print VLC version (Ubuntu, MacOS) | |
run: vlc --version | |
if: matrix.os != 'windows-latest' | |
- name: Print VLC version (Windows) | |
# it seems impossible to obtain VLC version through the command line interface on Windows | |
run: echo "Please check Chocolatey logs" | |
if: matrix.os == 'windows-latest' | |
- name: Print Mpv version | |
run: mpv --version | |
- name: Install python tests dependencies | |
run: pip install -e ".[dev]" | |
- name: Run tests | |
run: python -m pytest -v --cov-report xml:coverage.xml --cov src tests/integration | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ matrix.os }}-integration-tests-coverage | |
path: ./coverage.xml | |
static-tests: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: "3.12" | |
cache: "pip" | |
- name: Install dependencies | |
run: pip install -e ".[dev]" | |
- name: Run import order checks | |
run: python -m isort . --check | |
- name: Run style checks | |
run: python -m black . --check | |
- name: Run ruff linter | |
run: python -m ruff check . | |
upload-codecov-reports: | |
needs: | |
- unit-tests | |
- integration-tests | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Download artifacts | |
uses: actions/download-artifact@v4 | |
- name: Upload to Codecov | |
uses: codecov/codecov-action@v4 | |
env: | |
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} |