# This workflow will install Python dependencies, run tests and lint with a single version of Python # For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions name: unittests on: push: paths: - '**' - '!docs/**' - '!setup.py' - '!*.iss' - '!.gitignore' - '!.github/workflows/**' - '.github/workflows/unittests.yml' pull_request: paths: - '**' - '!docs/**' - '!setup.py' - '!*.iss' - '!.gitignore' - '!.github/workflows/**' - '.github/workflows/unittests.yml' jobs: unit: runs-on: ${{ matrix.os }} name: Test Python ${{ matrix.python.version }} ${{ matrix.os }} strategy: fail-fast: false matrix: os: [ubuntu-latest] python: - {version: '3.10'} - {version: '3.11'} - {version: '3.12'} include: - python: {version: '3.10'} # old compat os: windows-latest - python: {version: '3.12'} # current os: windows-latest - python: {version: '3.12'} # current os: macos-latest steps: - uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python.version }} uses: actions/setup-python@v5 with: python-version: ${{ matrix.python.version }} - name: Install dependencies run: | python -m pip install --upgrade pip pip install pytest pytest-subtests pytest-xdist python ModuleUpdate.py --yes --force --append "WebHostLib/requirements.txt" python Launcher.py --update_settings # make sure host.yaml exists for tests - name: Unittests run: | pytest -n auto hosting: runs-on: ${{ matrix.os }} name: Test hosting with ${{ matrix.python.version }} on ${{ matrix.os }} strategy: matrix: os: - ubuntu-latest python: - {version: '3.12'} # current steps: - uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python.version }} uses: actions/setup-python@v5 with: python-version: ${{ matrix.python.version }} - name: Install dependencies run: | python -m venv venv source venv/bin/activate python -m pip install --upgrade pip python ModuleUpdate.py --yes --force --append "WebHostLib/requirements.txt" - name: Test hosting run: | source venv/bin/activate export PYTHONPATH=$(pwd) timeout 600 python test/hosting/__main__.py