diff --git a/.cirun.yml b/.cirun.yml new file mode 100644 index 000000000..f58c2e866 --- /dev/null +++ b/.cirun.yml @@ -0,0 +1,9 @@ +runners: + - name: "zarr-gpu-runner" + cloud: "gcp" + gpu: "nvidia-tesla-t4" + instance_type: "n1-standard-1" + machine_image: "common-cu123-v20240730-ubuntu-2204-py310" + preemptible: true + labels: + - "cirun-gpu-runner" diff --git a/.github/workflows/gpu_test.yml b/.github/workflows/gpu_test.yml new file mode 100644 index 000000000..f552dca8c --- /dev/null +++ b/.github/workflows/gpu_test.yml @@ -0,0 +1,48 @@ +# This workflow will install Python dependencies, run tests and lint with a variety of Python versions +# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions + +name: Test V3 + +on: + push: + branches: [ v3 ] + pull_request: + branches: [ v3 ] + workflow_dispatch: + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + test: + name: py=${{ matrix.python-version }}, np=${{ matrix.numpy-version }}, deps=${{ matrix.dependency-set }} + + runs-on: "cirun-gpu-runner--${{ github.run_id }}" + strategy: + matrix: + python-version: ['3.10', '3.11', '3.12'] + numpy-version: ['1.24', '1.26', '2.0'] + dependency-set: ["minimal", "optional"] + + steps: + - uses: actions/checkout@v4 + - name: GPU check + run: | + nvidia-smi + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + cache: 'pip' + - name: Install Hatch + run: | + python -m pip install --upgrade pip + pip install hatch + - name: Set Up Hatch Env + run: | + hatch env create test.py${{ matrix.python-version }}-${{ matrix.numpy-version }}-${{ matrix.dependency-set }} + hatch env run -e test.py${{ matrix.python-version }}-${{ matrix.numpy-version }}-${{ matrix.dependency-set }} list-env + - name: Run Tests + run: | + hatch env run --env test.py${{ matrix.python-version }}-${{ matrix.numpy-version }}-${{ matrix.dependency-set }} run