summaryrefslogtreecommitdiffstats
path: root/.github/workflows/test.yaml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/test.yaml')
-rw-r--r--.github/workflows/test.yaml54
1 files changed, 54 insertions, 0 deletions
diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml
new file mode 100644
index 0000000..eedbdd8
--- /dev/null
+++ b/.github/workflows/test.yaml
@@ -0,0 +1,54 @@
+name: test
+
+on:
+ push: # any branch
+ pull_request:
+ branches: [master]
+
+env:
+ FORCE_COLOR: 1
+
+jobs:
+ test-ubuntu:
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ matrix:
+ python-version: ["3.7", "3.8", "3.9", "3.10", "3.11", "3.12"]
+
+ steps:
+ - uses: actions/checkout@v4
+ - name: Setup Python ${{ matrix.python-version }}
+ uses: actions/setup-python@v4
+ with:
+ python-version: ${{ matrix.python-version }}
+ allow-prereleases: true
+ - name: Install Dependencies
+ run: |
+ sudo apt remove python3-pip
+ python -m pip install --upgrade pip
+ python -m pip install . ruff typos coverage codecov mypy pytest readme_renderer types-contextvars asyncssh
+ pip list
+ - name: Ruff
+ run: |
+ ruff .
+ ruff format --check .
+ typos .
+ - name: Tests
+ run: |
+ coverage run -m pytest
+ - if: "matrix.python-version != '3.7'"
+ name: Mypy
+ # Check whether the imports were sorted correctly.
+ # When this fails, please run ./tools/sort-imports.sh
+ run: |
+ mypy --strict src/prompt_toolkit --platform win32
+ mypy --strict src/prompt_toolkit --platform linux
+ mypy --strict src/prompt_toolkit --platform darwin
+ - name: Validate README.md
+ # Ensure that the README renders correctly (required for uploading to PyPI).
+ run: |
+ python -m readme_renderer README.rst > /dev/null
+ - name: Run codecov
+ run: |
+ codecov