name: Test Textual module on: pull_request: paths: - '.github/workflows/pythonpackage.yml' - '**.py' - '**.pyi' - '**.css' - '**.ambr' - '**.lock' - 'Makefile' jobs: build: runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-latest, macos-latest, windows-latest] python-version: ["3.7", "3.8", "3.9", "3.10", "3.11"] defaults: run: shell: bash steps: - uses: actions/checkout@v3.5.2 - name: Install and configure Poetry # This could be cached, too... uses: snok/install-poetry@v1.3.3 with: version: 1.4.2 virtualenvs-in-project: true - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v4.6.0 with: python-version: ${{ matrix.python-version }} architecture: x64 - name: Load cached venv id: cached-poetry-dependencies uses: actions/cache@v3 with: path: .venv key: venv-${{ runner.os }}-${{ matrix.python-version }}-${{ hashFiles('**/poetry.lock') }} - name: Install dependencies run: poetry install --extras "dev" if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true' # - name: Typecheck with mypy # run: | # make typecheck - name: Test with pytest run: | source $VENV pytest tests -v --cov=./src/textual --cov-report=xml:./coverage.xml --cov-report term-missing - name: Upload snapshot report if: always() uses: actions/upload-artifact@v3 with: name: snapshot-report-textual path: tests/snapshot_tests/output/snapshot_report.html