mirror of
https://github.com/beetbox/beets.git
synced 2026-02-19 05:45:33 +01:00
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?
83 lines
2.2 KiB
YAML
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
|