Merge pull request #2668 from jpmsousa03/search_feature #6840
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: Run tests | |
on: [push, pull_request] | |
permissions: {} | |
jobs: | |
test-latest: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [macos-13, ubuntu-latest, windows-2022] | |
python-version: ['3.10', '3.11', '3.12', '>=3.13.5 <3.14', '3.14.0-beta.2'] | |
exclude: | |
# FIXME: Python 3.14 builds on Windows and macOS excluded until | |
# pywin32 and pyobjc add support for this new version. | |
- os: macos-13 | |
python-version: '3.14.0-beta.2' | |
- os: windows-2022 | |
python-version: '3.14.0-beta.2' | |
env: | |
CODACY_PROJECT_TOKEN: ${{ secrets.CODACY_PROJECT_TOKEN }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
cache: 'pip' | |
- name: Install dependencies (Linux) | |
if: runner.os == 'linux' | |
run: | | |
sudo apt-get update | |
sudo apt-get install libegl1 | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install --upgrade setuptools | |
pip install -r requirements.txt | |
- name: Install gettext (Linux) | |
if: runner.os == 'Linux' | |
run: | | |
sudo apt-get update | |
sudo apt-get install gettext | |
- name: Test with pytest | |
if: always() | |
timeout-minutes: 30 | |
run: | | |
python setup.py build_locales | |
pip install pytest pytest-randomly pytest-cov | |
pytest --verbose --cov=picard --cov-report xml:coverage.xml test | |
- name: Submit code coverage to Codacy | |
if: env.CODACY_PROJECT_TOKEN | |
run: | | |
pip install codacy-coverage | |
python-codacy-coverage -r coverage.xml | |
test-requirements: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ubuntu-latest] | |
python-version: ['3.10'] | |
dependencies: [ | |
"PyQt6==6.5.3 PyQt6-Qt6==6.5.3 mutagen==1.45 python-dateutil==2.7 PyYAML==5.1", # minimal versions, minimum dependencies | |
"PyQt6>=6.5.3 mutagen~=1.45 python-dateutil~=2.7 PyYAML~=6.0 discid==1.0", | |
"PyQt6>=6.5.3 mutagen~=1.45 python-dateutil~=2.7 PyYAML~=6.0 python-libdiscid", | |
"PyQt6>=6.5.3 mutagen~=1.45 python-dateutil~=2.7 PyYAML~=6.0 charset-normalizer==2.0.6", | |
"PyQt6>=6.5.3 mutagen~=1.45 python-dateutil~=2.7 PyYAML~=6.0 chardet==3.0.4", | |
] | |
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 dependencies (Linux) | |
if: runner.os == 'linux' | |
run: | | |
sudo apt-get update | |
sudo apt-get install libdiscid-dev libegl1 | |
- name: Install dependencies | |
run: | | |
python -m pip install --upgrade pip | |
pip install $DEPENDENCIES | |
env: | |
DEPENDENCIES: ${{ matrix.dependencies }} | |
- name: Test with pytest | |
timeout-minutes: 30 | |
run: | | |
pip install pytest pytest-randomly pytest-cov | |
pytest --verbose test | |
pip-install: # Test whether a clean pip install from source works | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [macos-13, ubuntu-latest, windows-latest] | |
python-version: ['3.10', '>=3.13.5 <3.14'] | |
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 gettext and libegl1 (Linux) | |
if: runner.os == 'Linux' | |
run: | | |
sudo apt-get update | |
sudo apt-get install gettext libegl1 | |
- name: Install gettext (Windows) | |
if: runner.os == 'Windows' | |
run: | | |
& .\scripts\package\win-setup-gettext.ps1 ` | |
-GettextVersion $Env:GETTEXT_VERSION -GettextSha256Sum $Env:GETTEXT_SHA256SUM | |
Add-Content $env:GITHUB_PATH (Join-Path -Path (Resolve-Path .) -ChildPath gettext\bin) | |
env: | |
GETTEXT_VERSION: 0.22.4 | |
GETTEXT_SHA256SUM: 220068ac0b9e7aedda03534a3088e584640ac1e639800b3a0baa9410aa6d012a | |
- name: Run pip install . | |
run: | | |
python -m pip install --upgrade pip | |
pip install --verbose . | |
- name: Test running installed package | |
if: runner.os != 'Windows' | |
run: picard --long-version --no-crash-dialog | |
- name: Verify sdist package | |
if: runner.os != 'Windows' | |
timeout-minutes: 30 | |
run: | | |
pip install build pytest | |
scripts/package/run-sdist-test.sh |