name: Test on: push: branches: [master] pull_request: branches: [master] jobs: test: name: ${{ matrix.os }}, py-${{ matrix.python-version }} runs-on: ${{ matrix.os }} strategy: fail-fast: true matrix: os: [ubuntu-latest, windows-latest, macOS-latest] python-version: ["3.8", "3.9"] defaults: run: shell: bash steps: - uses: actions/checkout@v3 - name: Setup Python uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} - name: Install Poetry uses: snok/install-poetry@v1 with: virtualenvs-create: true virtualenvs-in-project: true - name: Load cached venv if: runner.os != 'Windows' id: cached-poetry-dependencies uses: actions/cache@v3 with: path: .venv key: venv-${{ matrix.os }}-py${{matrix.python-version}}-${{ hashFiles('**/poetry.lock') }} - name: Install dependencies if: | (runner.os != 'Windows') && (steps.cached-poetry-dependencies.outputs.cache-hit != 'true') run: poetry install --no-interaction --no-root --with deeplearning - name: Install dependencies if: | (runner.os != 'Windows') && (steps.cached-poetry-dependencies.outputs.cache-hit != 'true') run: poetry install --no-interaction --no-root --with deeplearning - name: Install library run: poetry install --no-interaction --with deeplearning - name: Run tests run: | source $VENV poetry run coverage run -m unittest moabb.tests poetry run coverage xml - name: Run pipelines run: | source $VENV poetry run python -m moabb.run --pipelines=./moabb/tests/test_pipelines/ --verbose - name: Upload Coverage to Codecov uses: codecov/codecov-action@v3 if: success() with: verbose: true directory: /home/runner/work/moabb/moabb files: ./.coverage,coverage.xml env_vars: OS,PYTHON