# This workflow will install Python dependencies, run tests and lint with a variety of Python versions
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions

name: continuous-integration

on:
  push:
    branches: [master]
    tags:
      - 'v*'
  pull_request:

jobs:

  pre-commit:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2
    - name: Set up Python 3.8
      uses: actions/setup-python@v2
      with:
        python-version: 3.8
    - uses: pre-commit/action@v2.0.0

  tests:

    runs-on: ubuntu-latest
    strategy:
      matrix:
        python-version: [pypy3, 3.6, 3.7, 3.8, 3.9]

    steps:
    - uses: actions/checkout@v2
    - name: Set up Python ${{ matrix.python-version }}
      uses: actions/setup-python@v2
      with:
        python-version: ${{ matrix.python-version }}
    - name: Install dependencies
      run: |
        python -m pip install --upgrade pip
        pip install .[testing,linkify]
    - name: Run pytest
      run: |
        pytest --cov=markdown_it --cov-report=xml --cov-report=term-missing
    - name: Upload to Codecov
      if: matrix.python-version == 3.7 && github.repository == 'executablebooks/markdown-it-py'
      uses: codecov/codecov-action@v1
      with:
        name: markdown-it-py-pytests-py3.7
        flags: pytests
        file: ./coverage.xml
        fail_ci_if_error: true

  benchmark:

    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2

    - name: Set up Python 3.8
      uses: actions/setup-python@v2
      with:
        python-version: 3.8

    - name: Install tox
      run: |
        python -m pip install --upgrade pip
        pip install tox

    - name: Run benchmark
      run: tox -e py38-bench-core -- --benchmark-json bench-core.json

    - name: Upload data
      uses: actions/upload-artifact@v2
      with:
        name: bench-core
        path: bench-core.json
        if-no-files-found: error

  publish:

    name: Publish to PyPi
    needs: [pre-commit, tests]
    if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags')
    runs-on: ubuntu-latest
    steps:
    - name: Checkout source
      uses: actions/checkout@v2
    - name: Set up Python 3.7
      uses: actions/setup-python@v2
      with:
        python-version: 3.7
    - name: Build package
      run: |
        pip install wheel
        python setup.py sdist bdist_wheel
    - name: Publish
      uses: pypa/gh-action-pypi-publish@v1.1.0
      with:
        user: __token__
        password: ${{ secrets.PYPI_KEY }}
