diff --git a/.github/workflows/test_gpu.yml b/.github/workflows/test_gpu.yml new file mode 100644 index 0000000..ee2f966 --- /dev/null +++ b/.github/workflows/test_gpu.yml @@ -0,0 +1,74 @@ +name: PopV + +on: + push: + branches: [main] + pull_request: + branches: [main] + types: [labeled, synchronize, opened] + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + test: + # if PR has label "cuda tests" + if: >- + ( + contains(github.event.pull_request.labels.*.name, 'cuda tests') + ) + runs-on: [self-hosted, Linux, X64, CUDA] + timeout-minutes: 40 + defaults: + run: + shell: bash -e {0} # -e to fail on error + + strategy: + fail-fast: false + matrix: + include: + - os: ubuntu-latest + python: "3.9" + - os: ubuntu-latest + python: "3.10" + - os: ubuntu-latest + python: "3.11" + + name: ${{ matrix.name }} Python ${{ matrix.python }} + + env: + OS: ${{ matrix.os }} + PYTHON: ${{ matrix.python }} + + steps: + - uses: actions/checkout@v3 + - name: Set up Python ${{ matrix.python }} + uses: actions/setup-python@v4 + with: + python-version: ${{ matrix.python }} + cache: "pip" + cache-dependency-path: "**/pyproject.toml" + + - name: Install test dependencies + run: | + python -m pip install --upgrade pip wheel + + - name: Install dependencies + run: | + pip install ${{ matrix.pip-flags }} ".[dev,test]" + + - name: Test + env: + MPLBACKEND: agg + PLATFORM: ${{ matrix.os }} + DISPLAY: :42 + run: | + coverage run -m pytest -v --color=yes + + - name: Report coverage + run: | + coverage report + + - name: Upload coverage + uses: codecov/codecov-action@v3