diff options
Diffstat (limited to '.github/workflows/tests.yml')
-rw-r--r-- | .github/workflows/tests.yml | 136 |
1 files changed, 136 insertions, 0 deletions
diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml new file mode 100644 index 0000000..e46c084 --- /dev/null +++ b/.github/workflows/tests.yml @@ -0,0 +1,136 @@ +# 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[0-9]+.[0-9]+.[0-9]+*" + pull_request: + schedule: + - cron: '0 0 * * 0' # every week + +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: ['pypy-3.7', '3.7', '3.8', '3.9', '3.10'] + + 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 tests/ --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 + + test-plugins: + + runs-on: ubuntu-latest + strategy: + matrix: + python-version: ['3.8'] + 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 markdown-it-py + run: | + python -m pip install --upgrade pip + pip install .[testing] + - name: clone and install mdit-py-plugins + run: | + git clone https://github.com/executablebooks/mdit-py-plugins.git + pip install --no-deps -e mdit-py-plugins + - name: Run pytest for unit tests of mdit-py-plugins + run: cd mdit-py-plugins; pytest + + 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.8 + uses: actions/setup-python@v2 + with: + python-version: '3.8' + - name: install flit + run: | + pip install flit~=3.4 + - name: Build and publish + run: | + flit publish + env: + FLIT_USERNAME: __token__ + FLIT_PASSWORD: ${{ secrets.PYPI_KEY }} + + allgood: + runs-on: ubuntu-latest + needs: + - pre-commit + - tests + steps: + - run: echo "Great success!" |