name: Validate AppStream

on:
  push:
    paths:
    - '.github/workflows/validate-appstream.yml'
    - 'org.musicbrainz.Picard.appdata.xml.in'
    - 'po/appstream/*.po'
    - 'NEWS.md'
    - 'setup.py'
  pull_request:

jobs:
  validate-appstream:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3
    - name: Set up Python
      uses: actions/setup-python@v4
      with:
        python-version: '3.11'
    - name: Install appstream-util
      run: |
        sudo apt-get update
        sudo apt-get install appstream-util gettext
    - name: Validate AppStream metadata
      run: |
        python setup.py build_appdata
        appstream-util validate-relax org.musicbrainz.Picard.appdata.xml
        # TODO: Consider using appstreamcli once ubuntu-latest provides
        #       appstreamcli>=0.16, as this tool catches more issues.
        #appstreamcli validate --pedantic --explain org.musicbrainz.Picard.appdata.xml
