Tests #880
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Tests | |
on: | |
push: | |
branches: ["main"] | |
pull_request: | |
schedule: | |
- cron: "0 8 * * *" | |
env: | |
JUPYTER_PLATFORM_DIRS: "1" | |
jobs: | |
pytest: | |
name: Pytest | |
runs-on: ${{ matrix.os }} | |
timeout-minutes: 20 | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- ubuntu-latest | |
- windows-latest | |
- macos-latest | |
python-version: ["3.7", "3.10"] | |
include: | |
- os: windows-latest | |
python-version: "3.9" | |
# - os: ubuntu-latest | |
# python-version: "pypy-3.8" | |
- os: macos-latest | |
python-version: "3.8" | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Base Setup | |
uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 | |
- name: Install Python dependencies | |
run: | | |
pip install -e ".[test]" codecov | |
- name: List and check the Python dependencies | |
run: | | |
pip list | |
pip check | |
- name: Run tests | |
if: ${{ !startsWith(matrix.python-version, 'pypy') && !startsWith(matrix.os, 'windows') }} | |
run: | | |
args="-vv --cov jupyter_server_fileid --cov-branch --cov-report term-missing:skip-covered --cov-report xml" | |
python -m pytest $args --cov-fail-under 88 || python -m pytest $args --lf | |
- name: Run the tests on pypy and windows | |
if: ${{ startsWith(matrix.python-version, 'pypy') || startsWith(matrix.os, 'windows') }} | |
run: | | |
python -m pytest -vv || python -m pytest -vv --lf | |
- name: Coverage | |
run: | | |
codecov | |
pre-commit: | |
name: pre-commit | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: actions/setup-python@v2 | |
- uses: pre-commit/[email protected] | |
with: | |
extra_args: --all-files | |
- name: Help message if pre-commit fail | |
if: ${{ failure() }} | |
run: | | |
echo "You can install pre-commit hooks to automatically run formatting" | |
echo "on each commit with:" | |
echo " pre-commit install" | |
echo "or you can run by hand on staged files with" | |
echo " pre-commit run" | |
echo "or after-the-fact on already committed files with" | |
echo " pre-commit run --all-files" | |
test_minimum_versions: | |
name: Test Minimum Versions | |
timeout-minutes: 20 | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Base Setup | |
uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 | |
with: | |
python_version: "3.7" | |
dependency_type: minimum | |
- name: Install | |
run: pip install -e ".[test]" | |
- name: Run the unit tests | |
run: | | |
pytest -vv -W default || pytest -vv -W default --lf | |
test_prereleases: | |
name: Test Prereleases | |
runs-on: ubuntu-latest | |
timeout-minutes: 20 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Base Setup | |
uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 | |
- name: Install the Python dependencies | |
run: | | |
pip install --no-deps -e . | |
pip install --pre --upgrade "jupyter_server_fileid[test]" | |
- name: List installed packages | |
run: | | |
pip freeze | |
pip check | |
- name: Run the tests | |
run: | | |
pytest -vv || pytest -vv --lf | |
make_sdist: | |
name: Make SDist | |
runs-on: ubuntu-latest | |
timeout-minutes: 10 | |
steps: | |
- uses: actions/checkout@v2 | |
- uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 | |
- uses: jupyterlab/maintainer-tools/.github/actions/make-sdist@v1 | |
test_sdist: | |
name: Install from SDist and Test | |
runs-on: ubuntu-latest | |
needs: [make_sdist] | |
timeout-minutes: 20 | |
steps: | |
- uses: jupyterlab/maintainer-tools/.github/actions/base-setup@v1 | |
- uses: jupyterlab/maintainer-tools/.github/actions/test-sdist@v1 | |
with: | |
test_command: pytest -vv || pytest -vv --lf | |
python_tests_check: # This job does nothing and is only used for the branch protection | |
if: always() | |
needs: | |
- pytest | |
- pre-commit | |
- test_prereleases | |
- make_sdist | |
- test_sdist | |
runs-on: ubuntu-latest | |
steps: | |
- name: Decide whether the needed jobs succeeded or failed | |
uses: re-actors/alls-green@release/v1 | |
with: | |
jobs: ${{ toJSON(needs) }} |