Refactor lyrics tests, do not search for empty metadata #4081
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: Test | |
on: | |
pull_request: | |
push: | |
branches: | |
- master | |
env: | |
PY_COLORS: 1 | |
jobs: | |
test: | |
name: Run tests | |
strategy: | |
fail-fast: false | |
matrix: | |
platform: [ubuntu-latest, windows-latest] | |
python-version: ["3.9"] | |
runs-on: ${{ matrix.platform }} | |
env: | |
IS_MAIN_PYTHON: ${{ matrix.python-version == '3.9' && matrix.platform == 'ubuntu-latest' }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Python tools | |
uses: BrandonLWhite/[email protected] | |
- name: Setup Python with poetry caching | |
# poetry cache requires poetry to already be installed, weirdly | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
cache: poetry | |
- name: Install PyGobject and release script dependencies on Ubuntu | |
if: matrix.platform == 'ubuntu-latest' | |
run: | | |
sudo apt update | |
sudo apt install ffmpeg gobject-introspection libcairo2-dev libgirepository1.0-dev pandoc | |
- name: Get changed lyrics files | |
id: lyrics-update | |
uses: tj-actions/changed-files@v45 | |
with: | |
files: | | |
beetsplug/lyrics.py | |
test/plugins/test_lyrics.py | |
- name: Add pytest annotator | |
uses: liskin/gh-problem-matcher-wrap@v3 | |
with: | |
linters: pytest | |
action: add | |
- if: ${{ env.IS_MAIN_PYTHON != 'true' }} | |
name: Test without coverage | |
run: | | |
poetry install --extras=autobpm --extras=lyrics | |
poe test | |
- if: ${{ env.IS_MAIN_PYTHON == 'true' }} | |
name: Test with coverage | |
env: | |
LYRICS_UPDATED: ${{ steps.lyrics-update.outputs.any_changed }} | |
run: | | |
poetry install --extras=autobpm --extras=lyrics --extras=docs --extras=replaygain --extras=reflink | |
poe docs | |
poe test-with-coverage | |
- if: ${{ env.IS_MAIN_PYTHON == 'true' }} | |
name: Store the coverage report | |
uses: actions/upload-artifact@v4 | |
with: | |
name: coverage-report | |
path: .reports/coverage.xml | |
upload-coverage: | |
name: Upload coverage report | |
needs: test | |
runs-on: ubuntu-latest | |
permissions: | |
id-token: write | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Get the coverage report | |
uses: actions/download-artifact@v4 | |
with: | |
name: coverage-report | |
- name: Upload code coverage | |
uses: codecov/codecov-action@v4 | |
with: | |
files: ./coverage.xml | |
use_oidc: ${{ !(github.event_name == 'pull_request' && github.event.pull_request.head.repo.fork) }} |