# 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!"