| # 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 }} |