name: Linux pip tests

on:
  push:
    branches:
    - master
    - 3.*
  pull_request:
    branches:
    - master
    - 3.*

concurrency:
  group: linux-pip-tests-${{ github.ref }}
  cancel-in-progress: true

jobs:
  linux:
    name: Linux (pip) - Py${{ matrix.PYTHON_VERSION }}
    runs-on: ubuntu-latest
    env:
      CI: True
      PYTHON_VERSION: ${{ matrix.PYTHON_VERSION }}
      RUNNER_OS: 'ubuntu'
      USE_CONDA: 'false'
    strategy:
      fail-fast: false
      matrix:
        PYTHON_VERSION: ['3.8', '3.9', '3.10']
    timeout-minutes: 20
    steps:
      - name: Checkout branch
        uses: actions/checkout@v1
      - name: Install System Packages
        run: |
          sudo apt-get update
          sudo apt-get install libegl1-mesa libopengl0
      - name: Install Conda
        uses: conda-incubator/setup-miniconda@v3
        with:
           activate-environment: test
           auto-update-conda: false
           auto-activate-base: false
           python-version: ${{ matrix.PYTHON_VERSION }}
      - name: Install package and dependencies
        shell: bash -l {0}
        run: |
          pip install -e .[test]
      - name: Show environment information
        shell: bash -l {0}
        run: |
          conda info
          conda list
      # - name: Setup Remote SSH Connection
      #   uses: mxschmitt/action-tmate@v3
      #   timeout-minutes: 60
      - name: Run tests
        shell: bash -l {0}
        run: |
          xvfb-run --auto-servernum pytest spyder_kernels --color=yes --cov=spyder_kernels -vv || \
          xvfb-run --auto-servernum pytest spyder_kernels --color=yes --cov=spyder_kernels -vv || \
          xvfb-run --auto-servernum pytest spyder_kernels --color=yes --cov=spyder_kernels -vv
      - name: Upload coverage to Codecov
        uses: codecov/codecov-action@v4
        with:
          fail_ci_if_error: false
          verbose: true
