beets/.github/workflows/ci.yaml
Šarūnas Nejus d716475f3d
Do not skip any replaygain tests
This means that the dependencies must be installed for the tests to
work. Otherwise, why do we have these tests that aren't being run?
2024-07-18 12:26:16 +01:00

83 lines
2.2 KiB
YAML

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.8", "3.9"]
runs-on: ${{ matrix.platform }}
env:
IS_MAIN_PYTHON: ${{ matrix.python-version == '3.8' && matrix.platform == 'ubuntu-latest' }}
steps:
- uses: actions/checkout@v4
- name: Install Python tools
uses: BrandonLWhite/pipx-install-action@v0.1.1
- 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 dependencies on Ubuntu
if: matrix.platform == 'ubuntu-latest'
run: |
sudo apt update
sudo apt install \
ffmpeg \
gobject-introspection \
gstreamer1.0-plugins-good \
libgirepository1.0-dev \
mp3gain
poetry install --extras replaygain
- name: Install Python dependencies
run: poetry install --only=main,test
- if: ${{ env.IS_MAIN_PYTHON != 'true' }}
name: Test without coverage
run: poe test
- if: ${{ env.IS_MAIN_PYTHON == 'true' }}
name: Test with coverage
uses: liskin/gh-problem-matcher-wrap@v3
with:
linters: pytest
run: 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: true