[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/goodcpp/moabb/develop/.github/workflows/test.yml [Back]  [Original]

name: Test
concurrency:
  group: ${{ github.workflow }}-${{ github.event.number }}-${{ github.event.ref }}
  cancel-in-progress: true

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.9", "3.10" ]
    defaults:
      run:
        shell: bash
    steps:
      - uses: actions/checkout@v4

      - name: Create local data folder
        if: runner.os != 'Windows'
        run: |
          mkdir ~/mne_data

      - name: Create/Restore MNE Data Cache
        if: runner.os != 'Windows'
        id: cache-mne_data
        uses: actions/cache@v3
        with:
          path: ~/mne_data
          key: ${{ runner.os }}-mne_data

      - name: Setup Python
        uses: actions/setup-python@v5
        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:
            testvenv-${{ matrix.os }}-py${{matrix.python-version}}-${{
            hashFiles('**/pyproject.toml') }}

      - name: Install dependencies
        if: |
          (runner.os != 'Windows') &&
          (steps.cached-poetry-dependencies.outputs.cache-hit != 'true')
        run: poetry install --no-interaction --no-root --extras deeplearning --extras optuna

      - name: Install library (Linux/OSX)
        if: ${{ runner.os != 'Windows' }}
        run: poetry install --no-interaction --extras deeplearning --extras optuna

      - name: Install library (Windows)
        if: ${{ runner.os == 'Windows' }}
        run: poetry install --no-interaction --extras optuna

      - name: Run tests
        run: |
          source $VENV
          poetry run coverage run -m pytest 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

Web Proxy Viewer  |  New URL  |  Original Page