name: CI on: push: pull_request: release: types: [published] schedule: # Daily at 3:21 - cron: '21 3 * * *' jobs: ci: runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: [macos-latest, ubuntu-latest, windows-latest] python-version: - name: pypy3 toxenv: pypy3-noextra-build - name: pypy3 toxenv: pypy3-noextra-tests - name: pypy3 toxenv: pypy3-format-build - name: pypy3 toxenv: pypy3-format-tests - name: pypy3 toxenv: pypy3-format_nongpl-build - name: pypy3 toxenv: pypy3-format_nongpl-tests - name: pypy3 toxenv: readme - name: pypy3 toxenv: safety - name: pypy3 toxenv: secrets - name: pypy3 toxenv: style - name: pypy3 toxenv: docs-html - name: pypy3 toxenv: docs-doctest - name: pypy3 toxenv: docs-linkcheck - name: pypy3 toxenv: docs-spelling - name: pypy3 toxenv: docs-style - name: 3.6 toxenv: py36-noextra-build - name: 3.6 toxenv: py36-noextra-tests - name: 3.6 toxenv: py36-format-build - name: 3.6 toxenv: py36-format-tests - name: 3.6 toxenv: py36-format_nongpl-build - name: 3.6 toxenv: py36-format_nongpl-tests - name: 3.7 toxenv: py37-noextra-build - name: 3.7 toxenv: py37-noextra-tests - name: 3.7 toxenv: py37-format-build - name: 3.7 toxenv: py37-format-tests - name: 3.7 toxenv: py37-format_nongpl-build - name: 3.7 toxenv: py37-format_nongpl-tests - name: 3.8 toxenv: py38-noextra-build - name: 3.8 toxenv: py38-noextra-tests - name: 3.8 toxenv: py38-format-build - name: 3.8 toxenv: py38-format-tests - name: 3.8 toxenv: py38-format_nongpl-build - name: 3.8 toxenv: py38-format_nongpl-tests exclude: - os: windows-latest python-version: name: pypy3 toxenv: pypy3-noextra-build - os: windows-latest python-version: name: pypy3 toxenv: pypy3-format-build - os: windows-latest python-version: name: pypy3 toxenv: pypy3-format_nongpl-build - os: windows-latest python-version: name: pypy3 toxenv: pypy3-noextra-tests - os: windows-latest python-version: name: pypy3 toxenv: pypy3-format-tests - os: windows-latest python-version: name: pypy3 toxenv: pypy3-format_nongpl-tests - os: windows-latest python-version: name: pypy3 toxenv: safety - os: windows-latest python-version: name: pypy3 toxenv: secrets - os: windows-latest python-version: name: pypy3 toxenv: style - os: windows-latest python-version: name: 3.6 toxenv: py36-noextra-build - os: windows-latest python-version: name: 3.6 toxenv: py36-format-build - os: windows-latest python-version: name: 3.6 toxenv: py36-format_nongpl-build - os: windows-latest python-version: name: 3.6 toxenv: py36-noextra-tests - os: windows-latest python-version: name: 3.6 toxenv: py36-format-tests - os: windows-latest python-version: name: 3.6 toxenv: py36-format_nongpl-tests - os: windows-latest python-version: name: 3.7 toxenv: py37-noextra-tests - os: windows-latest python-version: name: 3.7 toxenv: py37-format-tests - os: windows-latest python-version: name: 3.7 toxenv: py37-format_nongpl-tests - os: windows-latest python-version: name: 3.8 toxenv: py38-noextra-tests - os: windows-latest python-version: name: 3.8 toxenv: py38-format-tests - os: windows-latest python-version: name: 3.8 toxenv: py38-format_nongpl-tests - os: windows-latest python-version: name: pypy3 toxenv: readme - os: windows-latest python-version: name: pypy3 toxenv: docs-html - os: windows-latest python-version: name: pypy3 toxenv: docs-doctest - os: windows-latest python-version: name: pypy3 toxenv: docs-linkcheck - os: windows-latest python-version: name: pypy3 toxenv: docs-spelling - os: windows-latest python-version: name: pypy3 toxenv: docs-style steps: - uses: actions/checkout@v2 - name: Set up Python ${{ matrix.python-version.name }} uses: actions/setup-python@v2 with: python-version: ${{ matrix.python-version.name }} - name: Ensure we have new enough versions to respect python_version run: python -m pip install -U pip setuptools - name: Install dependencies run: > sudo apt-get update && sudo apt-get install -y libenchant-dev libxml2-dev libxslt-dev if: runner.os == 'Linux' && startsWith(matrix.python-version.toxenv, 'docs-') - name: Install dependencies run: brew install enchant if: runner.os == 'macOS' && startsWith(matrix.python-version.toxenv, 'docs-') - name: Install tox run: python -m pip install tox - name: Use venv on Windows run: python -m pip install tox-venv if: runner.os == 'Windows' - name: Run tox run: python -m tox -e "${{ matrix.python-version.toxenv }}"