melexis/sphinx-coverity-extension

View on GitHub
.github/workflows/python-package.yml

Summary

Maintainability
Test Coverage
name: Test and deploy on tag

on: push

env:
  COVERITY_PASSWORD: dummy
  COVERITY_STREAM: dummy
  COVERITY_USERNAME: dummy

jobs:
  test:

    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        python-version: ["3.7", "3.8", "3.9", "3.10", "3.11"]
    steps:
    - uses: actions/checkout@v3
    - name: Set up Python ${{ matrix.python-version }}
      uses: actions/setup-python@v4
      with:
        python-version: ${{ matrix.python-version }}
    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
        python -m pip install tox tox-gh-actions
        sudo apt-get update -y
        sudo apt-get install -y latexmk texlive-latex-extra
    - name: Run test
      run: tox -e test
    - name: Build HTML documentation
      run: tox -e html
    - name: Build PDF documentation
      run: tox -e latexpdf
    - name: Calculate coverage
      run: tox -e coverage
    - name: Codecov uploader
      if: matrix.python-version == 3.9
      uses: codecov/codecov-action@v2
    - name: Static checks
      if: matrix.python-version == 3.9
      run: tox -e check
    - name: Upload HTML documentation
      if: matrix.python-version == 3.9
      uses: actions/upload-artifact@v3
      with:
        name: html-doc
        path: example/_build/html

  deploy:

    if: github.event_name == 'push' && contains(github.ref, 'refs/tags/')
    needs: test
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3
    - name: Download HTML documentation from job 'test'
      uses: actions/download-artifact@v3
      with:
        name: html-doc
        path: example/_build/html
    - name: Disable jekyll
      run: touch example/_build/html/.nojekyll
    - name: Deploy documentation
      uses: JamesIves/github-pages-deploy-action@v4
      with:
        branch: gh-pages
        folder: example/_build/html
    - name: Set up Python
      uses: actions/setup-python@v4
      with:
        python-version: '3.9'
    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
        pip install setuptools wheel twine
    - name: Build and publish
      env:
        TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }}
        TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
      run: |
        python setup.py sdist bdist_wheel
        twine upload dist/*