on: workflow_call: inputs: python-version: required: false type: string default: '["3.11", "3.12", "3.13"]' pytorch-version: required: false type: string default: '["2.9.1"]' os: required: false type: string default: ubuntu-latest pytorch-dtype: required: false type: string default: float32 pytest-extra: required: false type: string default: "" fail-fast: required: false type: boolean default: false runslow: required: false type: boolean default: false ref: required: false type: string default: ${{ github.sha }} cache-path: required: false type: string cache-key: required: false type: string cache-restore-keys: required: false type: string permissions: contents: read jobs: tests: runs-on: ${{ inputs.os }} strategy: fail-fast: ${{ inputs.fail-fast }} matrix: python-version: ${{ fromJSON(inputs.python-version) }} pytorch-version: ${{ fromJSON(inputs.pytorch-version) }} steps: - name: Checkout repository uses: actions/checkout@v6 with: ref: ${{ inputs.ref }} - name: Restore cache if: inputs.cache-path != '' uses: actions/cache/restore@v5 with: path: ${{ inputs.cache-path }} key: ${{ inputs.cache-key }} restore-keys: ${{ inputs.cache-restore-keys }} - name: Set pixi environment name id: pixi-env shell: bash run: echo "name=py$(echo '${{ matrix.python-version }}' | tr -d '.')" >> $GITHUB_OUTPUT - name: Setup pixi uses: prefix-dev/setup-pixi@v0.9.6 with: pixi-version: v0.40.0 cache: true environments: ${{ steps.pixi-env.outputs.name }} - name: Install dependencies run: pixi run -e ${{ steps.pixi-env.outputs.name }} install - name: Run tests env: KORNIA_TEST_DEVICE: cpu KORNIA_TEST_DTYPE: ${{ inputs.pytorch-dtype }} KORNIA_TEST_RUNSLOW: ${{ inputs.runslow }} KORNIA_TEST_OPTIMIZER: "" run: pixi run -e ${{ steps.pixi-env.outputs.name }} test ${{ inputs.pytest-extra }}