|
|
|
|
|
|
|
|
|
|
|
name: 'python tests' |
|
|
|
on: |
|
push: |
|
branches: |
|
- 'main' |
|
pull_request: |
|
types: |
|
- 'ready_for_review' |
|
- 'opened' |
|
- 'synchronize' |
|
merge_group: |
|
workflow_dispatch: |
|
inputs: |
|
always_run: |
|
description: 'Always run the tests' |
|
required: true |
|
type: boolean |
|
default: true |
|
workflow_call: |
|
inputs: |
|
always_run: |
|
description: 'Always run the tests' |
|
required: true |
|
type: boolean |
|
default: true |
|
|
|
concurrency: |
|
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} |
|
cancel-in-progress: true |
|
|
|
jobs: |
|
matrix: |
|
strategy: |
|
matrix: |
|
python-version: |
|
- '3.10' |
|
- '3.11' |
|
platform: |
|
- linux-cuda-11_7 |
|
- linux-rocm-5_2 |
|
- linux-cpu |
|
- macos-default |
|
- windows-cpu |
|
include: |
|
- platform: linux-cuda-11_7 |
|
os: ubuntu-22.04 |
|
github-env: $GITHUB_ENV |
|
- platform: linux-rocm-5_2 |
|
os: ubuntu-22.04 |
|
extra-index-url: 'https://download.pytorch.org/whl/rocm5.2' |
|
github-env: $GITHUB_ENV |
|
- platform: linux-cpu |
|
os: ubuntu-22.04 |
|
extra-index-url: 'https://download.pytorch.org/whl/cpu' |
|
github-env: $GITHUB_ENV |
|
- platform: macos-default |
|
os: macOS-14 |
|
github-env: $GITHUB_ENV |
|
- platform: windows-cpu |
|
os: windows-2022 |
|
github-env: $env:GITHUB_ENV |
|
name: 'py${{ matrix.python-version }}: ${{ matrix.platform }}' |
|
runs-on: ${{ matrix.os }} |
|
timeout-minutes: 15 |
|
env: |
|
PIP_USE_PEP517: '1' |
|
steps: |
|
- name: checkout |
|
uses: actions/checkout@v4 |
|
|
|
- name: check for changed python files |
|
if: ${{ inputs.always_run != true }} |
|
id: changed-files |
|
uses: tj-actions/changed-files@v42 |
|
with: |
|
files_yaml: | |
|
python: |
|
- 'pyproject.toml' |
|
- 'invokeai/**' |
|
- '!invokeai/frontend/web/**' |
|
- 'tests/**' |
|
|
|
- name: setup python |
|
if: ${{ steps.changed-files.outputs.python_any_changed == 'true' || inputs.always_run == true }} |
|
uses: actions/setup-python@v5 |
|
with: |
|
python-version: ${{ matrix.python-version }} |
|
cache: pip |
|
cache-dependency-path: pyproject.toml |
|
|
|
- name: install dependencies |
|
if: ${{ steps.changed-files.outputs.python_any_changed == 'true' || inputs.always_run == true }} |
|
env: |
|
PIP_EXTRA_INDEX_URL: ${{ matrix.extra-index-url }} |
|
run: > |
|
pip3 install --editable=".[test]" |
|
|
|
- name: run pytest |
|
if: ${{ steps.changed-files.outputs.python_any_changed == 'true' || inputs.always_run == true }} |
|
run: pytest |
|
|